X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/c46ded46212c2ea55e43ec661b5a724718a63ec2..c6b81a9865b49f39f7d388ac64a8d74ce414081e:/socket.c diff --git a/socket.c b/socket.c index 674e3d7f..6551df43 100644 --- a/socket.c +++ b/socket.c @@ -54,6 +54,8 @@ int open_socket_out(char *host, int port) return -1; } + set_nonblocking(res); + return res; } @@ -110,9 +112,9 @@ determine if a file descriptor is in fact a socket ****************************************************************************/ int is_a_socket(int fd) { - int v,l; - l = sizeof(int); - return(getsockopt(fd, SOL_SOCKET, SO_TYPE, (char *)&v, &l) == 0); + int v,l; + l = sizeof(int); + return(getsockopt(fd, SOL_SOCKET, SO_TYPE, (char *)&v, &l) == 0); } @@ -165,6 +167,8 @@ void start_accept_loop(int port, int (*fn)(int )) if (fork()==0) { close(s); + set_nonblocking(fd); + _exit(fn(fd)); }