From: Andre Noll Date: Sat, 15 Sep 2007 22:36:13 +0000 (+0200) Subject: server/afs: Close an unused file descriptor. X-Git-Tag: v0.3.0~390 X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=commitdiff_plain;h=12197992573eb1314424deaedc677e0d42703e1d server/afs: Close an unused file descriptor. And mark file descriptors used for select() as non-blocking. --- diff --git a/afs.c b/afs.c index 0efb6991..a40948f2 100644 --- a/afs.c +++ b/afs.c @@ -795,6 +795,9 @@ __noreturn int afs_init(uint32_t cookie, int socket_fd) exit(EXIT_FAILURE); } server_socket = socket_fd; + ret = mark_fd_nonblock(server_socket); + if (ret < 0) + exit(EXIT_FAILURE); PARA_INFO_LOG("server_socket: %d, afs_socket_cookie: %u\n", server_socket, (unsigned) cookie); current_play_mode = init_admissible_files(); diff --git a/server.c b/server.c index 90f8cd53..e94de736 100644 --- a/server.c +++ b/server.c @@ -363,10 +363,16 @@ static void init_afs(void) afs_pid = fork(); if (afs_pid < 0) exit(EXIT_FAILURE); - if (!afs_pid) /* child (afs) */ + if (!afs_pid) { /* child (afs) */ + close(afs_server_socket[0]); afs_init(afs_socket_cookie, afs_server_socket[1]); + } close(afs_server_socket[1]); afs_socket = afs_server_socket[0]; + ret = mark_fd_nonblock(afs_socket); + if (ret < 0) + exit(EXIT_FAILURE); + add_close_on_fork_list(afs_socket); PARA_INFO_LOG("afs_socket: %d, afs_socket_cookie: %u\n", afs_socket, (unsigned) afs_socket_cookie); }