X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=server.c;h=95ff25cf77afb9f772a4336626e2bf340a2da868;hp=9bf6c3f88004fb3c4a00a2d892b58a53e7a3df89;hb=4d5a9b90c3e9cbdff019776d05792beb57fbfa31;hpb=52e437d1054c5f62f0538b3934419a3b71aa3d83 diff --git a/server.c b/server.c index 9bf6c3f8..95ff25cf 100644 --- a/server.c +++ b/server.c @@ -59,7 +59,7 @@ * - Ring buffer: \ref ringbuffer.c, \ref ringbuffer.h, * - Hashing: \ref hash.h, \ref sha1.h, \ref sha1.c, * - Crypto: \ref crypt.c. - * + * - Forward error correction: \ref fec.c */ #include @@ -470,18 +470,20 @@ err: static int init_afs(void) { int ret, afs_server_socket[2]; + pid_t afs_pid; ret = socketpair(PF_UNIX, SOCK_DGRAM, 0, afs_server_socket); if (ret < 0) exit(EXIT_FAILURE); afs_socket_cookie = para_random((uint32_t)-1); - mmd->afs_pid = fork(); - if (mmd->afs_pid < 0) + afs_pid = fork(); + if (afs_pid < 0) exit(EXIT_FAILURE); - if (!mmd->afs_pid) { /* child (afs) */ + if (afs_pid == 0) { /* child (afs) */ close(afs_server_socket[0]); afs_init(afs_socket_cookie, afs_server_socket[1]); } + mmd->afs_pid = afs_pid; close(afs_server_socket[1]); ret = mark_fd_nonblocking(afs_server_socket[0]); if (ret < 0)