summaryrefslogtreecommitdiff
path: root/networking/inetd.c
diff options
context:
space:
mode:
author"Vladimir N. Oleynik" <dzo@simtreas.ru>2005-10-05 14:01:13 +0000
committer"Vladimir N. Oleynik" <dzo@simtreas.ru>2005-10-05 14:01:13 +0000
commitf382c0236e986c4982da3ff2a85f446395f9ff06 (patch)
tree331d9238b3a1353d9ac7f3df3cb0dde2f2f0a0b4 /networking/inetd.c
parent4a5ce08688bc22d5b66363bfad4628b0b57d60f4 (diff)
downloadbusybox-w32-f382c0236e986c4982da3ff2a85f446395f9ff06.tar.gz
busybox-w32-f382c0236e986c4982da3ff2a85f446395f9ff06.tar.bz2
busybox-w32-f382c0236e986c4982da3ff2a85f446395f9ff06.zip
BSD signals -> SysV signals, int->socklet_t. Noticed by Bernhard
Diffstat (limited to 'networking/inetd.c')
-rw-r--r--networking/inetd.c45
1 files changed, 28 insertions, 17 deletions
diff --git a/networking/inetd.c b/networking/inetd.c
index f9f380fa1..0924c5bbc 100644
--- a/networking/inetd.c
+++ b/networking/inetd.c
@@ -372,13 +372,14 @@ static void register_rpc (servtab_t *sep)
372 int n; 372 int n;
373 struct sockaddr_in ir_sin; 373 struct sockaddr_in ir_sin;
374 struct protoent *pp; 374 struct protoent *pp;
375 socklen_t size;
375 376
376 if ((pp = getprotobyname (sep->se_proto + 4)) == NULL) { 377 if ((pp = getprotobyname (sep->se_proto + 4)) == NULL) {
377 syslog (LOG_ERR, "%s: getproto: %m", sep->se_proto); 378 syslog (LOG_ERR, "%s: getproto: %m", sep->se_proto);
378 return; 379 return;
379 } 380 }
380 n = sizeof ir_sin; 381 size = sizeof ir_sin;
381 if (getsockname (sep->se_fd, (struct sockaddr *) &ir_sin, &n) < 0) { 382 if (getsockname (sep->se_fd, (struct sockaddr *) &ir_sin, &size) < 0) {
382 syslog (LOG_ERR, "%s/%s: getsockname: %m", 383 syslog (LOG_ERR, "%s/%s: getsockname: %m",
383 sep->se_service, sep->se_proto); 384 sep->se_service, sep->se_proto);
384 return; 385 return;
@@ -479,7 +480,7 @@ setsockopt(fd, SOL_SOCKET, opt, (char *)&on, sizeof (on))
479 else { 480 else {
480 r = bind (sep->se_fd, &sep->se_ctrladdr, sep->se_ctrladdr_size); 481 r = bind (sep->se_fd, &sep->se_ctrladdr, sep->se_ctrladdr_size);
481 if (r == 0) { 482 if (r == 0) {
482 int len = sep->se_ctrladdr_size; 483 socklen_t len = sep->se_ctrladdr_size;
483 int saveerrno = errno; 484 int saveerrno = errno;
484 485
485 /* update se_ctrladdr_in.sin_port */ 486 /* update se_ctrladdr_in.sin_port */
@@ -870,10 +871,18 @@ more:
870 return (sep); 871 return (sep);
871} 872}
872 873
874#define Block_Using_Signals(m) do { sigemptyset(&m); \
875 sigaddset(&m, SIGCHLD); \
876 sigaddset(&m, SIGHUP); \
877 sigaddset(&m, SIGALRM); \
878 sigprocmask(SIG_BLOCK, &m, NULL); \
879 } while(0)
880
881
873static servtab_t *enter (servtab_t *cp) 882static servtab_t *enter (servtab_t *cp)
874{ 883{
875 servtab_t *sep; 884 servtab_t *sep;
876 int omask; 885 sigset_t omask;
877 886
878 sep = new_servtab(); 887 sep = new_servtab();
879 *sep = *cp; 888 *sep = *cp;
@@ -881,10 +890,10 @@ static servtab_t *enter (servtab_t *cp)
881#ifdef CONFIG_FEATURE_INETD_RPC 890#ifdef CONFIG_FEATURE_INETD_RPC
882 sep->se_rpcprog = -1; 891 sep->se_rpcprog = -1;
883#endif 892#endif
884 omask = sigblock (SIGBLOCK); 893 Block_Using_Signals(omask);
885 sep->se_next = servtab; 894 sep->se_next = servtab;
886 servtab = sep; 895 servtab = sep;
887 sigsetmask (omask); 896 sigprocmask(SIG_UNBLOCK, &omask, NULL);
888 return (sep); 897 return (sep);
889} 898}
890 899
@@ -925,7 +934,7 @@ static int matchconf (servtab_t *old, servtab_t *new)
925static void config (int sig __attribute__((unused))) 934static void config (int sig __attribute__((unused)))
926{ 935{
927 servtab_t *sep, *cp, **sepp; 936 servtab_t *sep, *cp, **sepp;
928 int omask; 937 sigset_t omask;
929 int add; 938 int add;
930 size_t n; 939 size_t n;
931 char protoname[10]; 940 char protoname[10];
@@ -947,7 +956,7 @@ static void config (int sig __attribute__((unused)))
947 956
948#define SWAP(type, a, b) do {type c=(type)a; a=(type)b; b=(type)c;} while (0) 957#define SWAP(type, a, b) do {type c=(type)a; a=(type)b; b=(type)c;} while (0)
949 958
950 omask = sigblock (SIGBLOCK); 959 Block_Using_Signals(omask);
951 /* 960 /*
952 * sep->se_wait may be holding the pid of a daemon 961 * sep->se_wait may be holding the pid of a daemon
953 * that we're waiting for. If so, don't overwrite 962 * that we're waiting for. If so, don't overwrite
@@ -974,7 +983,7 @@ static void config (int sig __attribute__((unused)))
974 sep->se_rpcversl = cp->se_rpcversl; 983 sep->se_rpcversl = cp->se_rpcversl;
975 sep->se_rpcversh = cp->se_rpcversh; 984 sep->se_rpcversh = cp->se_rpcversh;
976#endif 985#endif
977 sigsetmask (omask); 986 sigprocmask(SIG_UNBLOCK, &omask, NULL);
978 freeconfig (cp); 987 freeconfig (cp);
979 add = 1; 988 add = 1;
980 } else { 989 } else {
@@ -1117,7 +1126,7 @@ static void config (int sig __attribute__((unused)))
1117 /* 1126 /*
1118 * Purge anything not looked at above. 1127 * Purge anything not looked at above.
1119 */ 1128 */
1120 omask = sigblock (SIGBLOCK); 1129 Block_Using_Signals(omask);
1121 sepp = &servtab; 1130 sepp = &servtab;
1122 while ((sep = *sepp)) { 1131 while ((sep = *sepp)) {
1123 if (sep->se_checked) { 1132 if (sep->se_checked) {
@@ -1139,7 +1148,7 @@ static void config (int sig __attribute__((unused)))
1139 freeconfig (sep); 1148 freeconfig (sep);
1140 free (sep); 1149 free (sep);
1141 } 1150 }
1142 (void) sigsetmask (omask); 1151 sigprocmask(SIG_UNBLOCK, &omask, NULL);
1143} 1152}
1144 1153
1145 1154
@@ -1231,7 +1240,7 @@ static char *LastArg;
1231static void 1240static void
1232inetd_setproctitle (char *a, int s) 1241inetd_setproctitle (char *a, int s)
1233{ 1242{
1234 int size; 1243 socklen_t size;
1235 char *cp; 1244 char *cp;
1236 struct sockaddr_in prt_sin; 1245 struct sockaddr_in prt_sin;
1237 char buf[80]; 1246 char buf[80];
@@ -1401,7 +1410,7 @@ inetd_main (int argc, char *argv[])
1401 } 1410 }
1402 if (sep->se_family == AF_INET && sep->se_socktype == SOCK_STREAM) { 1411 if (sep->se_family == AF_INET && sep->se_socktype == SOCK_STREAM) {
1403 struct sockaddr_in peer; 1412 struct sockaddr_in peer;
1404 int plen = sizeof (peer); 1413 socklen_t plen = sizeof (peer);
1405 1414
1406 if (getpeername (ctrl, (struct sockaddr *) &peer, &plen) < 0) { 1415 if (getpeername (ctrl, (struct sockaddr *) &peer, &plen) < 0) {
1407 syslog (LOG_WARNING, "could not getpeername"); 1416 syslog (LOG_WARNING, "could not getpeername");
@@ -1578,7 +1587,8 @@ static void
1578echo_dg (int s, servtab_t *sep __attribute__((unused))) 1587echo_dg (int s, servtab_t *sep __attribute__((unused)))
1579{ 1588{
1580 char buffer[BUFSIZE]; 1589 char buffer[BUFSIZE];
1581 int i, size; 1590 int i;
1591 socklen_t size;
1582 /* struct sockaddr_storage ss; */ 1592 /* struct sockaddr_storage ss; */
1583 struct sockaddr sa; 1593 struct sockaddr sa;
1584 1594
@@ -1675,8 +1685,9 @@ chargen_dg (int s, servtab_t *sep __attribute__((unused)))
1675 /* struct sockaddr_storage ss; */ 1685 /* struct sockaddr_storage ss; */
1676 struct sockaddr sa; 1686 struct sockaddr sa;
1677 static char *rs; 1687 static char *rs;
1678 int len, size; 1688 int len;
1679 char text[LINESIZ + 2]; 1689 char text[LINESIZ + 2];
1690 socklen_t size;
1680 1691
1681 if (endring == 0) { 1692 if (endring == 0) {
1682 initring (); 1693 initring ();
@@ -1742,7 +1753,7 @@ machtime_dg (int s, servtab_t *sep __attribute__((unused)))
1742 /* struct sockaddr_storage ss; */ 1753 /* struct sockaddr_storage ss; */
1743 struct sockaddr sa; 1754 struct sockaddr sa;
1744 struct sockaddr_in *dg_sin; 1755 struct sockaddr_in *dg_sin;
1745 int size; 1756 socklen_t size;
1746 1757
1747 size = sizeof (sa); 1758 size = sizeof (sa);
1748 if (recvfrom (s, (char *) &result, sizeof (result), 0, &sa, &size) < 0) 1759 if (recvfrom (s, (char *) &result, sizeof (result), 0, &sa, &size) < 0)
@@ -1781,7 +1792,7 @@ daytime_dg (int s, servtab_t *sep __attribute__((unused)))
1781 time_t t; 1792 time_t t;
1782 /* struct sockaddr_storage ss; */ 1793 /* struct sockaddr_storage ss; */
1783 struct sockaddr sa; 1794 struct sockaddr sa;
1784 int size; 1795 socklen_t size;
1785 1796
1786 t = time ((time_t *) 0); 1797 t = time ((time_t *) 0);
1787 1798