/* -*-c-*-
*
- * $Id: peer.c,v 1.2 2001/02/03 22:40:29 mdw Exp $
+ * $Id: peer.c,v 1.3 2001/02/04 17:10:58 mdw Exp $
*
* Communication with the peer
*
/*----- Revision history --------------------------------------------------*
*
* $Log: peer.c,v $
+ * Revision 1.3 2001/02/04 17:10:58 mdw
+ * Make file descriptors be nonblocking and close-on-exec.
+ *
* Revision 1.2 2001/02/03 22:40:29 mdw
* Put timer information into the entropy pool when packets are received
* and on similar events. Reseed the generator on the interval timer.
sin.sin_port = htons(port);
if (bind(fd, (struct sockaddr *)&sin, sizeof(sin)))
die(EXIT_FAILURE, "bind failed: %s", strerror(errno));
+ fdflags(fd, O_NONBLOCK, O_NONBLOCK, FD_CLOEXEC, FD_CLOEXEC);
sel_initfile(&sel, &sock, fd, SEL_READ, p_read, 0);
sel_addfile(&sock);
T( trace(T_PEER, "peer: created socket"); )
/* -*-c-*-
*
- * $Id: tun-unet.c,v 1.1 2001/02/03 20:26:37 mdw Exp $
+ * $Id: tun-unet.c,v 1.2 2001/02/04 17:10:58 mdw Exp $
*
* Tunnel interface based on Linux Usernet
*
/*----- Revision history --------------------------------------------------*
*
* $Log: tun-unet.c,v $
+ * Revision 1.2 2001/02/04 17:10:58 mdw
+ * Make file descriptors be nonblocking and close-on-exec.
+ *
* Revision 1.1 2001/02/03 20:26:37 mdw
* Initial checkin.
*
a_warn("open `/dev/unet' failed: %s", strerror(errno));
return (-1);
}
+ fdflags(fd, O_NONBLOCK, O_NONBLOCK, FD_CLOEXEC, FD_CLOEXEC);
t->p = p;
sel_initfile(&sel, &t->f, fd, SEL_READ, t_read, t);
sel_addfile(&t->f);