|
System | : | Linux MiraNet 3.0.0-14-generic-pae #23-Ubuntu SMP Mon Nov 21 22:07:10 UTC 2011 i686 |
Software | : | Apache. PHP/5.3.6-13ubuntu3.10 |
ID | : | uid=65534(nobody) gid=65534(nogroup) groups=65534(nogroup)
|
|
Safe Mode | : | OFF |
Open_Basedir | : | OFF |
Freespace | : | 23.94 GB of 70.42 GB (34%) |
|
MySQL: ON MSSQL: OFF Oracle: OFF PostgreSQL: OFF Curl: OFF Sockets: ON Fetch: OFF Wget: ON Perl: ON |
Disabled Functions: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,
|
[ System Info ]
[ Processes ]
[ SQL Manager ]
[ Eval ]
[ Encoder ]
[ Mailer ]
[ Back Connection ]
[ Backdoor Server ]
[ Kernel Exploit Search ]
[ MD5 Decrypter ]
[ Reverse IP ]
[ Kill Shell ]
[ FTP Brute-Force ]
|
|
/
usr/
src/
courier-0.66.1/
waitlib/
- drwxrwxrwx
|
Viewing file: waitlib.c (1.54 KB) -rw-rw-rw-Select action/file-type:  ( +) |  ( +) |  ( +) | Code ( +) | Session ( +) |  ( +) | SDB ( +) |  ( +) |  ( +) |  ( +) |  ( +) |  ( +) |
/* ** Copyright 1998 - 2005 Double Precision, Inc. ** See COPYING for distribution information. */
#ifndef INCLUDED_FROM_CONFIGURE #include "waitlib.h" #endif #include <signal.h> #include <stdio.h>
#if HAVE_SIGPROCMASK
#define HOLD_CHILDREN {\ sigset_t ss; sigemptyset(&ss); sigaddset(&ss, SIGCHLD); \ sigprocmask(SIG_BLOCK, &ss, NULL);\ }
#define RELEASE_CHILDREN {\ sigset_t ss; sigemptyset(&ss); sigaddset(&ss, SIGCHLD); \ sigprocmask(SIG_UNBLOCK, &ss, NULL);\ }
#else #if HAVE_SIGHOLD
#define HOLD_CHILDREN sighold(SIGCHLD) #define RELEASE_CHILDREN sigrelse(SIGCHLD)
#else
#define HOLD_CHILDREN sigblock(sigmask(SIGCHLD)) #define RELEASE_CHILDREN sigsetmask(0)
#endif #endif
#if USE_WAIT3
void wait_block() { HOLD_CHILDREN; }
void wait_clear(RETSIGTYPE (*func)(int)) { RELEASE_CHILDREN; }
void wait_restore() { signal(SIGCHLD, SIG_DFL); RELEASE_CHILDREN; }
#else
void wait_block() { signal(SIGCHLD, SIG_DFL); }
void wait_clear(RETSIGTYPE (*func)(int)) { signal(SIGCHLD, func); }
void wait_restore() { signal(SIGCHLD, SIG_DFL); }
#endif
void wait_reap( void (*func)(pid_t, int), RETSIGTYPE (*handler)(int)) { int dummy; pid_t p;
#if USE_WAIT3
HOLD_CHILDREN;
while ((p=wait3(&dummy, WNOHANG, 0)) > 0) #else if ((p=wait(&dummy)) > 0) #endif { (*func)(p, dummy); }
signal(SIGCHLD, handler);
#if USE_WAIT3 RELEASE_CHILDREN; #endif
}
void wait_forchild( void (*reap)(pid_t, int), RETSIGTYPE (*func)(int)) { pid_t p; int wait_stat;
signal(SIGCHLD, SIG_DFL); p=wait(&wait_stat); signal(SIGCHLD, func); (*reap)(p, wait_stat); }
|