aboutsummaryrefslogtreecommitdiff
path: root/runit
diff options
context:
space:
mode:
authorGravatar Denis Vlasenko <vda.linux@googlemail.com>2007-04-01 01:18:20 +0000
committerGravatar Denis Vlasenko <vda.linux@googlemail.com>2007-04-01 01:18:20 +0000
commit2856dab4770e521a87c18b04ae8ebc209a9b95f9 (patch)
treed4f6495339702c0b6d79816d0bb07ba4b6679ce8 /runit
parentf443bffd3c24c4b7fcbc0472c75e747e26c24fef (diff)
downloadbusybox-2856dab4770e521a87c18b04ae8ebc209a9b95f9.tar.gz
busybox-2856dab4770e521a87c18b04ae8ebc209a9b95f9.tar.bz2
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
Diffstat (limited to 'runit')
-rw-r--r--runit/runit_lib.c70
-rw-r--r--runit/runit_lib.h23
-rw-r--r--runit/runsv.c6
-rw-r--r--runit/runsvdir.c7
-rw-r--r--runit/svlogd.c6
5 files changed, 11 insertions, 101 deletions
diff --git a/runit/runit_lib.c b/runit/runit_lib.c
index 4762096b4..fcb66c3db 100644
--- a/runit/runit_lib.c
+++ b/runit/runit_lib.c
@@ -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;
-}
diff --git a/runit/runit_lib.h b/runit/runit_lib.h
index 9fe4166bc..25aeeaf70 100644
--- a/runit/runit_lib.h
+++ b/runit/runit_lib.h
@@ -123,32 +123,9 @@ extern int open_write(const char *);
extern unsigned pmatch(const char *, const char *, unsigned);
-/*** sig.h ***/
-
-extern void sig_catch(int,void (*)(int));
-#define sig_ignore(s) (sig_catch((s), SIG_IGN))
-#define sig_uncatch(s) (sig_catch((s), SIG_DFL))
-
-extern void sig_block(int);
-extern void sig_unblock(int);
-extern void sig_blocknone(void);
-extern void sig_pause(void);
-
-
/*** str.h ***/
extern unsigned str_chr(const char *,int); /* never returns NULL */
#define str_diff(s,t) strcmp((s), (t))
#define str_equal(s,t) (!strcmp((s), (t)))
-
-
-/*** wait.h ***/
-
-extern int wait_pid(int *wstat, int pid);
-extern int wait_nohang(int *wstat);
-
-#define wait_crashed(w) ((w) & 127)
-#define wait_exitcode(w) ((w) >> 8)
-#define wait_stopsig(w) ((w) >> 8)
-#define wait_stopped(w) (((w) & 127) == 127)
diff --git a/runit/runsv.c b/runit/runsv.c
index 018456847..61eb02e64 100644
--- a/runit/runsv.c
+++ b/runit/runsv.c
@@ -323,11 +323,11 @@ static void startservice(struct svdir *s)
close(logpipe[0]);
}
}
- sig_uncatch(SIGCHLD);
+ signal(SIGCHLD, SIG_DFL);
+ signal(SIGTERM, SIG_DFL);
sig_unblock(SIGCHLD);
- sig_uncatch(SIGTERM);
sig_unblock(SIGTERM);
- execve(*run, run, environ);
+ execvp(*run, run);
fatal2_cannot(s->islog ? "start log/" : "start ", *run);
}
if (s->state != S_FINISH) {
diff --git a/runit/runsvdir.c b/runit/runsvdir.c
index cce2c5d9c..39929fc49 100644
--- a/runit/runsvdir.c
+++ b/runit/runsvdir.c
@@ -97,9 +97,10 @@ static void runsv(int no, const char *name)
prog[0] = (char*)"runsv";
prog[1] = (char*)name;
prog[2] = NULL;
- sig_uncatch(SIGHUP);
- sig_uncatch(SIGTERM);
- if (pgrp) setsid();
+ if (pgrp)
+ setsid();
+ signal(SIGHUP, SIG_DFL);
+ signal(SIGTERM, SIG_DFL);
BB_EXECVP(prog[0], prog);
//pathexec_run(*prog, prog, (char* const*)environ);
fatal2_cannot("start runsv ", name);
diff --git a/runit/svlogd.c b/runit/svlogd.c
index fb834a403..1d6625561 100644
--- a/runit/svlogd.c
+++ b/runit/svlogd.c
@@ -143,9 +143,9 @@ static unsigned processorstart(struct logdir *ld)
int fd;
/* child */
- sig_uncatch(SIGTERM);
- sig_uncatch(SIGALRM);
- sig_uncatch(SIGHUP);
+ signal(SIGTERM, SIG_DFL);
+ signal(SIGALRM, SIG_DFL);
+ signal(SIGHUP, SIG_DFL);
sig_unblock(SIGTERM);
sig_unblock(SIGALRM);
sig_unblock(SIGHUP);