- added FAST_SHARE_MODES code
[kai/samba.git] / source3 / lib / util.c
index 413f1c648e091c9a13d191c56c16605f95c6abbb..5b765e0ac6f7c1071bb1d140509ecb1e06736bb2 100644 (file)
@@ -3118,16 +3118,20 @@ char *gidtoname(int gid)
 /*******************************************************************
 block sigs
 ********************************************************************/
-void BlockSignals(BOOL block)
+void BlockSignals(BOOL block,int signum)
 {
 #ifdef USE_SIGBLOCK
-  int block_mask = (sigmask(SIGTERM)|sigmask(SIGQUIT)|sigmask(SIGSEGV)
-                   |sigmask(SIGCHLD)|sigmask(SIGQUIT)|sigmask(SIGBUS)|
-                   sigmask(SIGINT));
+  int block_mask = sigmask(signum);
+  static int oldmask = 0;
   if (block) 
-    sigblock(block_mask);
+    oldmask = sigblock(block_mask);
   else
-    sigsetmask(0);
+    sigsetmask(oldmask);
+#elif defined(USE_SIGPROCMASK)
+  sigset_t set;
+  sigemptyset(&set);
+  sigaddset(&set,signum);
+  sigprocmask(block?SIG_BLOCK:SIG_UNBLOCK,&set,NULL);
 #endif
 }