aboutsummaryrefslogtreecommitdiff
path: root/networking
diff options
context:
space:
mode:
authorDenis Vlasenko <vda.linux@googlemail.com>2008-03-17 08:29:08 +0000
committerDenis Vlasenko <vda.linux@googlemail.com>2008-03-17 08:29:08 +0000
commit3f165fa5b3b38fa4b321be94a97f06927f636fb1 (patch)
treed5e2d1045e714823c2e9a3ef912dcafeffcc9ebd /networking
parent8e2cfec1cdf34068f2378aae9fe8f5ec0f821e21 (diff)
downloadbusybox-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.c22
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
384static void unblock_sigs(sigset_t *m) 384static 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
1058static void reap_child(int sig ATTRIBUTE_UNUSED) 1058static 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: