tcpsvd: new applet
It's a GPL-ed 'clone' of Dan Bernstein's tcpserver. Author: Gerrit Pape <pape@smarden.org> http://smarden.sunsite.dk/ipsvd/ size tcpsvd.o text data bss dec hex filename 2571 4 16 2591 a1f tcpsvd.o
This commit is contained in:
@ -385,56 +385,9 @@ int seek_set(int fd,seek_pos pos)
|
||||
#endif
|
||||
|
||||
|
||||
/*** sig_block.c ***/
|
||||
|
||||
void sig_block(int sig)
|
||||
{
|
||||
sigset_t ss;
|
||||
sigemptyset(&ss);
|
||||
sigaddset(&ss, sig);
|
||||
sigprocmask(SIG_BLOCK, &ss, NULL);
|
||||
}
|
||||
|
||||
void sig_unblock(int sig)
|
||||
{
|
||||
sigset_t ss;
|
||||
sigemptyset(&ss);
|
||||
sigaddset(&ss, sig);
|
||||
sigprocmask(SIG_UNBLOCK, &ss, NULL);
|
||||
}
|
||||
|
||||
void sig_blocknone(void)
|
||||
{
|
||||
sigset_t ss;
|
||||
sigemptyset(&ss);
|
||||
sigprocmask(SIG_SETMASK, &ss, NULL);
|
||||
}
|
||||
|
||||
|
||||
/*** sig_catch.c ***/
|
||||
|
||||
void sig_catch(int sig,void (*f)(int))
|
||||
{
|
||||
struct sigaction sa;
|
||||
sa.sa_handler = f;
|
||||
sa.sa_flags = 0;
|
||||
sigemptyset(&sa.sa_mask);
|
||||
sigaction(sig,&sa, NULL);
|
||||
}
|
||||
|
||||
|
||||
/*** sig_pause.c ***/
|
||||
|
||||
void sig_pause(void)
|
||||
{
|
||||
sigset_t ss;
|
||||
sigemptyset(&ss);
|
||||
sigsuspend(&ss);
|
||||
}
|
||||
|
||||
|
||||
/*** str_chr.c ***/
|
||||
|
||||
// strchrnul?
|
||||
unsigned str_chr(const char *s,int c)
|
||||
{
|
||||
char ch;
|
||||
@ -449,24 +402,3 @@ unsigned str_chr(const char *s,int c)
|
||||
}
|
||||
return t - s;
|
||||
}
|
||||
|
||||
|
||||
/*** wait_nohang.c ***/
|
||||
|
||||
int wait_nohang(int *wstat)
|
||||
{
|
||||
return waitpid(-1, wstat, WNOHANG);
|
||||
}
|
||||
|
||||
|
||||
/*** wait_pid.c ***/
|
||||
|
||||
int wait_pid(int *wstat, int pid)
|
||||
{
|
||||
int r;
|
||||
|
||||
do
|
||||
r = waitpid(pid, wstat, 0);
|
||||
while ((r == -1) && (errno == EINTR));
|
||||
return r;
|
||||
}
|
||||
|
Reference in New Issue
Block a user