diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2008-03-17 08:29:08 +0000 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2008-03-17 08:29:08 +0000 |
commit | 3f165fa5b3b38fa4b321be94a97f06927f636fb1 (patch) | |
tree | d5e2d1045e714823c2e9a3ef912dcafeffcc9ebd /networking | |
parent | 8e2cfec1cdf34068f2378aae9fe8f5ec0f821e21 (diff) | |
download | busybox-w32-3f165fa5b3b38fa4b321be94a97f06927f636fb1.tar.gz busybox-w32-3f165fa5b3b38fa4b321be94a97f06927f636fb1.tar.bz2 busybox-w32-3f165fa5b3b38fa4b321be94a97f06927f636fb1.zip |
libbb: introduce and use sigprocmask_allsigs and sigaction_set.
libbb: rename sig_pause to wait_for_any_sig.
Diffstat (limited to 'networking')
-rw-r--r-- | networking/inetd.c | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/networking/inetd.c b/networking/inetd.c index 196f6d29d..0620188d6 100644 --- a/networking/inetd.c +++ b/networking/inetd.c | |||
@@ -378,12 +378,12 @@ static void block_CHLD_HUP_ALRM(sigset_t *m) | |||
378 | sigaddset(m, SIGCHLD); | 378 | sigaddset(m, SIGCHLD); |
379 | sigaddset(m, SIGHUP); | 379 | sigaddset(m, SIGHUP); |
380 | sigaddset(m, SIGALRM); | 380 | sigaddset(m, SIGALRM); |
381 | sigprocmask(SIG_BLOCK, m, NULL); | 381 | sigprocmask(SIG_BLOCK, m, m); /* old sigmask is stored in m */ |
382 | } | 382 | } |
383 | 383 | ||
384 | static void unblock_sigs(sigset_t *m) | 384 | static void restore_sigmask(sigset_t *m) |
385 | { | 385 | { |
386 | sigprocmask(SIG_UNBLOCK, m, NULL); | 386 | sigprocmask(SIG_SETMASK, m, NULL); |
387 | } | 387 | } |
388 | 388 | ||
389 | #if ENABLE_FEATURE_INETD_RPC | 389 | #if ENABLE_FEATURE_INETD_RPC |
@@ -870,7 +870,7 @@ static servtab_t *insert_in_servlist(servtab_t *cp) | |||
870 | block_CHLD_HUP_ALRM(&omask); | 870 | block_CHLD_HUP_ALRM(&omask); |
871 | sep->se_next = serv_list; | 871 | sep->se_next = serv_list; |
872 | serv_list = sep; | 872 | serv_list = sep; |
873 | unblock_sigs(&omask); | 873 | restore_sigmask(&omask); |
874 | return sep; | 874 | return sep; |
875 | } | 875 | } |
876 | 876 | ||
@@ -941,7 +941,7 @@ static void reread_config_file(int sig ATTRIBUTE_UNUSED) | |||
941 | for (i = 0; i < MAXARGV; i++) | 941 | for (i = 0; i < MAXARGV; i++) |
942 | SWAP(char*, sep->se_argv[i], cp->se_argv[i]); | 942 | SWAP(char*, sep->se_argv[i], cp->se_argv[i]); |
943 | #undef SWAP | 943 | #undef SWAP |
944 | unblock_sigs(&omask); | 944 | restore_sigmask(&omask); |
945 | free_servtab_strings(cp); | 945 | free_servtab_strings(cp); |
946 | } | 946 | } |
947 | after_check: | 947 | after_check: |
@@ -1052,7 +1052,7 @@ static void reread_config_file(int sig ATTRIBUTE_UNUSED) | |||
1052 | free_servtab_strings(sep); | 1052 | free_servtab_strings(sep); |
1053 | free(sep); | 1053 | free(sep); |
1054 | } | 1054 | } |
1055 | unblock_sigs(&omask); | 1055 | restore_sigmask(&omask); |
1056 | } | 1056 | } |
1057 | 1057 | ||
1058 | static void reap_child(int sig ATTRIBUTE_UNUSED) | 1058 | static void reap_child(int sig ATTRIBUTE_UNUSED) |
@@ -1252,7 +1252,7 @@ int inetd_main(int argc, char **argv) | |||
1252 | sep->se_fd = -1; | 1252 | sep->se_fd = -1; |
1253 | sep->se_count = 0; | 1253 | sep->se_count = 0; |
1254 | rearm_alarm(); /* will revive it in RETRYTIME sec */ | 1254 | rearm_alarm(); /* will revive it in RETRYTIME sec */ |
1255 | unblock_sigs(&omask); | 1255 | restore_sigmask(&omask); |
1256 | maybe_close(accepted_fd); | 1256 | maybe_close(accepted_fd); |
1257 | continue; /* -> check next fd in fd set */ | 1257 | continue; /* -> check next fd in fd set */ |
1258 | } | 1258 | } |
@@ -1272,7 +1272,7 @@ int inetd_main(int argc, char **argv) | |||
1272 | if (pid < 0) { /* fork error */ | 1272 | if (pid < 0) { /* fork error */ |
1273 | bb_perror_msg("fork"); | 1273 | bb_perror_msg("fork"); |
1274 | sleep(1); | 1274 | sleep(1); |
1275 | unblock_sigs(&omask); | 1275 | restore_sigmask(&omask); |
1276 | maybe_close(accepted_fd); | 1276 | maybe_close(accepted_fd); |
1277 | continue; /* -> check next fd in fd set */ | 1277 | continue; /* -> check next fd in fd set */ |
1278 | } | 1278 | } |
@@ -1288,7 +1288,7 @@ int inetd_main(int argc, char **argv) | |||
1288 | /* we passed listening socket to child, | 1288 | /* we passed listening socket to child, |
1289 | * will wait for child to terminate */ | 1289 | * will wait for child to terminate */ |
1290 | } | 1290 | } |
1291 | unblock_sigs(&omask); | 1291 | restore_sigmask(&omask); |
1292 | maybe_close(accepted_fd); | 1292 | maybe_close(accepted_fd); |
1293 | continue; /* -> check next fd in fd set */ | 1293 | continue; /* -> check next fd in fd set */ |
1294 | } | 1294 | } |
@@ -1300,7 +1300,7 @@ int inetd_main(int argc, char **argv) | |||
1300 | close(sep->se_fd); /* listening socket */ | 1300 | close(sep->se_fd); /* listening socket */ |
1301 | logmode = 0; /* make xwrite etc silent */ | 1301 | logmode = 0; /* make xwrite etc silent */ |
1302 | } | 1302 | } |
1303 | unblock_sigs(&omask); | 1303 | restore_sigmask(&omask); |
1304 | if (sep->se_socktype == SOCK_STREAM) | 1304 | if (sep->se_socktype == SOCK_STREAM) |
1305 | sep->se_builtin->bi_stream_fn(ctrl, sep); | 1305 | sep->se_builtin->bi_stream_fn(ctrl, sep); |
1306 | else | 1306 | else |
@@ -1383,7 +1383,7 @@ int inetd_main(int argc, char **argv) | |||
1383 | for (sep2 = serv_list; sep2; sep2 = sep2->se_next) | 1383 | for (sep2 = serv_list; sep2; sep2 = sep2->se_next) |
1384 | maybe_close(sep2->se_fd); | 1384 | maybe_close(sep2->se_fd); |
1385 | sigaction_set(SIGPIPE, &saved_pipe_handler); | 1385 | sigaction_set(SIGPIPE, &saved_pipe_handler); |
1386 | unblock_sigs(&omask); | 1386 | restore_sigmask(&omask); |
1387 | BB_EXECVP(sep->se_program, sep->se_argv); | 1387 | BB_EXECVP(sep->se_program, sep->se_argv); |
1388 | bb_perror_msg("exec %s", sep->se_program); | 1388 | bb_perror_msg("exec %s", sep->se_program); |
1389 | do_exit1: | 1389 | do_exit1: |