bug fix, internals had to be last
authorMike Karels <karels@ucbvax.Berkeley.EDU>
Wed, 20 Aug 1986 00:27:21 +0000 (16:27 -0800)
committerMike Karels <karels@ucbvax.Berkeley.EDU>
Wed, 20 Aug 1986 00:27:21 +0000 (16:27 -0800)
SCCS-vsn: usr.sbin/inetd/inetd.c 5.7

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

index 99fe5c1..b25990c 100644 (file)
@@ -11,7 +11,7 @@ char copyright[] =
 #endif not lint
 
 #ifndef lint
 #endif not lint
 
 #ifndef lint
-static char sccsid[] = "@(#)inetd.c    5.6 (Berkeley) %G%";
+static char sccsid[] = "@(#)inetd.c    5.7 (Berkeley) %G%";
 #endif not lint
 
 /*
 #endif not lint
 
 /*
@@ -394,8 +394,13 @@ config()
                                SWAP(sep->se_argv[i], cp->se_argv[i]);
                        sigsetmask(omask);
                        freeconfig(cp);
                                SWAP(sep->se_argv[i], cp->se_argv[i]);
                        sigsetmask(omask);
                        freeconfig(cp);
-               } else
+                       if (debug)
+                               print_service("REDO", sep);
+               } else {
                        sep = enter(cp);
                        sep = enter(cp);
+                       if (debug)
+                               print_service("ADD ", sep);
+               }
                sep->se_checked = 1;
                sp = getservbyname(sep->se_service, sep->se_proto);
                if (sp == 0) {
                sep->se_checked = 1;
                sp = getservbyname(sep->se_service, sep->se_proto);
                if (sp == 0) {
@@ -429,6 +434,8 @@ config()
                        nsock--;
                        (void) close(sep->se_fd);
                }
                        nsock--;
                        (void) close(sep->se_fd);
                }
+               if (debug)
+                       print_service("FREE", sep);
                freeconfig(sep);
                free((char *)sep);
        }
                freeconfig(sep);
                free((char *)sep);
        }
@@ -575,7 +582,8 @@ more:
                }
                sep->se_bi = bi;
                sep->se_wait = bi->bi_wait;
                }
                sep->se_bi = bi;
                sep->se_wait = bi->bi_wait;
-       }
+       } else
+               sep->se_bi = NULL;
        argc = 0;
        for (arg = skip(&cp); cp; arg = skip(&cp))
                if (argc < MAXARGV)
        argc = 0;
        for (arg = skip(&cp); cp; arg = skip(&cp))
                if (argc < MAXARGV)
@@ -918,3 +926,17 @@ daytime_dg(s, sep)         /* Return human-readable time of day */
        sprintf(buffer, "%s\r", ctime(&clock));
        (void) sendto(s, buffer, strlen(buffer), 0, &sa, sizeof(sa));
 }
        sprintf(buffer, "%s\r", ctime(&clock));
        (void) sendto(s, buffer, strlen(buffer), 0, &sa, sizeof(sa));
 }
+
+/*
+ * print_service:
+ *     Dump relevant information to stderr
+ */
+print_service(action, sep)
+       char *action;
+       struct servtab *sep;
+{
+       fprintf(stderr,
+           "%s: %s proto=%s, wait=%d, user=%s builtin=%x server=%s\n",
+           action, sep->se_service, sep->se_proto,
+           sep->se_wait, sep->se_user, sep->se_bi, sep->se_server);
+}