16c3755
--- vsftpd-2.0.2/standalone.c.signal	2004-07-02 13:25:37.000000000 +0200
16c3755
+++ vsftpd-2.0.2/standalone.c	2005-03-14 09:37:12.937643960 +0100
16c3755
@@ -134,12 +134,8 @@
16c3755
     void* p_raw_addr;
16c3755
     int new_child;
16c3755
     int new_client_sock;
16c3755
-    vsf_sysutil_unblock_sig(kVSFSysUtilSigCHLD);
16c3755
-    vsf_sysutil_unblock_sig(kVSFSysUtilSigHUP);
16c3755
     new_client_sock = vsf_sysutil_accept_timeout(
16c3755
         listen_sock, p_accept_addr, 0);
16c3755
-    vsf_sysutil_block_sig(kVSFSysUtilSigCHLD);
16c3755
-    vsf_sysutil_block_sig(kVSFSysUtilSigHUP);
16c3755
     if (vsf_sysutil_retval_is_error(new_client_sock))
16c3755
     {
16c3755
       continue;
16c3755
--- vsftpd-2.0.2/sysutil.c.signal	2005-03-03 00:48:02.000000000 +0100
16c3755
+++ vsftpd-2.0.2/sysutil.c	2005-03-14 09:41:34.992805520 +0100
16c3755
@@ -1623,7 +1623,11 @@
16c3755
     timeout.tv_usec = 0;
16c3755
     do
16c3755
     {
16c3755
+      vsf_sysutil_unblock_sig(kVSFSysUtilSigCHLD);
16c3755
+      vsf_sysutil_unblock_sig(kVSFSysUtilSigHUP);
16c3755
       retval = select(fd + 1, &accept_fdset, NULL, NULL, &timeout);
16c3755
+      vsf_sysutil_block_sig(kVSFSysUtilSigCHLD);
16c3755
+      vsf_sysutil_block_sig(kVSFSysUtilSigHUP);
16c3755
       saved_errno = errno;
16c3755
       vsf_sysutil_check_pending_actions(kVSFSysUtilUnknown, 0, 0);
16c3755
     } while (retval < 0 && saved_errno == EINTR);
16c3755
@@ -1633,7 +1637,11 @@
16c3755
       return -1;
16c3755
     }
16c3755
   }
16c3755
+  vsf_sysutil_unblock_sig(kVSFSysUtilSigCHLD);
16c3755
+  vsf_sysutil_unblock_sig(kVSFSysUtilSigHUP);
16c3755
   retval = accept(fd, &remote_addr.u.u_sockaddr, &socklen);
16c3755
+  vsf_sysutil_block_sig(kVSFSysUtilSigCHLD);
16c3755
+  vsf_sysutil_block_sig(kVSFSysUtilSigHUP);
16c3755
   vsf_sysutil_check_pending_actions(kVSFSysUtilUnknown, 0, 0);
16c3755
   if (retval < 0)
16c3755
   {