Inetd believes that datagram servers are either wait/nowait but that
authorKeith Bostic <bostic@ucbvax.Berkeley.EDU>
Sat, 23 Jun 1990 09:45:33 +0000 (01:45 -0800)
committerKeith Bostic <bostic@ucbvax.Berkeley.EDU>
Sat, 23 Jun 1990 09:45:33 +0000 (01:45 -0800)
stream servers are always nowait.  It refuses to believe in a `wait' stream
server.  Removing these tests allows wait/nowait to work for stream servers
too.  -- from Chris Torek.

SCCS-vsn: usr.sbin/inetd/inetd.c 5.24

usr/src/usr.sbin/inetd/inetd.c

index 6039963..abac458 100644 (file)
@@ -12,7 +12,7 @@ char copyright[] =
 #endif /* not lint */
 
 #ifndef lint
 #endif /* not lint */
 
 #ifndef lint
-static char sccsid[] = "@(#)inetd.c    5.23 (Berkeley) %G%";
+static char sccsid[] = "@(#)inetd.c    5.24 (Berkeley) %G%";
 #endif /* not lint */
 
 /*
 #endif /* not lint */
 
 /*
@@ -244,7 +244,7 @@ main(argc, argv, envp)
                n--;
                if (debug)
                        fprintf(stderr, "someone wants %s\n", sep->se_service);
                n--;
                if (debug)
                        fprintf(stderr, "someone wants %s\n", sep->se_service);
-               if (!sep->se_wait && sep->se_socktype == SOCK_STREAM) {
+               if (sep->se_socktype == SOCK_STREAM) {
                        ctrl = accept(sep->se_fd, (struct sockaddr *)0,
                            (int *)0);
                        if (debug)
                        ctrl = accept(sep->se_fd, (struct sockaddr *)0,
                            (int *)0);
                        if (debug)
@@ -252,7 +252,8 @@ main(argc, argv, envp)
                        if (ctrl < 0) {
                                if (errno == EINTR)
                                        continue;
                        if (ctrl < 0) {
                                if (errno == EINTR)
                                        continue;
-                               syslog(LOG_WARNING, "accept: %m");
+                               syslog(LOG_WARNING, "accept (for %s): %m",
+                                       sep->se_service);
                                continue;
                        }
                } else
                                continue;
                        }
                } else
@@ -292,7 +293,7 @@ main(argc, argv, envp)
                        pid = fork();
                }
                if (pid < 0) {
                        pid = fork();
                }
                if (pid < 0) {
-                       if (!sep->se_wait && sep->se_socktype == SOCK_STREAM)
+                       if (sep->se_socktype == SOCK_STREAM)
                                close(ctrl);
                        sigsetmask(0L);
                        sleep(1);
                                close(ctrl);
                        sigsetmask(0L);
                        sleep(1);
@@ -350,7 +351,7 @@ main(argc, argv, envp)
                                _exit(1);
                        }
                }
                                _exit(1);
                        }
                }
-               if (!sep->se_wait && sep->se_socktype == SOCK_STREAM)
+               if (sep->se_socktype == SOCK_STREAM)
                        close(ctrl);
            }
        }
                        close(ctrl);
            }
        }