adm_network.c (setup_network): Use sigaction() instead of
authorTheodore Tso <tytso@mit.edu>
Sat, 29 Apr 1995 04:30:45 +0000 (04:30 +0000)
committerTheodore Tso <tytso@mit.edu>
Sat, 29 Apr 1995 04:30:45 +0000 (04:30 +0000)
signal() to setup the signal handlers.  This means we
don't need to worry about System V signal semantics.

adm_server.c (kdc_com_err_proc): Free nfmt after done using it.

Makefile.in (kadmind): Use $(LD) instead of $(CC) so that we can
do purify checking.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@5652 dc483132-0cff-0310-8789-dd5450dbe970

src/kadmin.old/server/ChangeLog
src/kadmin.old/server/Makefile.in
src/kadmin.old/server/adm_network.c
src/kadmin.old/server/adm_server.c

index d904524a584d2915ef37392a4c2e971a1fe6afd0..d91fcf20976634e5357d7dfec698fc62338be50c 100644 (file)
@@ -1,3 +1,16 @@
+Sat Apr 29 00:24:48 1995  Theodore Y. Ts'o  <tytso@dcl>
+
+       * adm_network.c (setup_network): Use sigaction() instead of
+               signal() to setup the signal handlers.  This means we
+               don't need to worry about System V signal semantics.
+
+Fri Apr 28 21:16:10 1995  Theodore Y. Ts'o  <tytso@dcl>
+
+       * adm_server.c (kdc_com_err_proc): Free nfmt after done using it.
+
+       * Makefile.in (kadmind): Use $(LD) instead of $(CC) so that we can
+               do purify checking.
+
 Thu Apr 27 12:21:38 1995  Mark Eichin  <eichin@cygnus.com>
 
        * Makefile.in (kadmind): don't reference K4LIB since we don't set
index 8a3b022d1f0b2fabb70067d91965dcde23f5c50e..99a422d76abe8799a8e4fb23a97b702408b593c7 100644 (file)
@@ -51,7 +51,7 @@ OBJS = \
 all::  kadmind
 
 kadmind: $(KDBDEPLIB) $(OBJS) $(DEPLIBS)
-       $(CC) $(CFLAGS) -o kadmind $(OBJS) $(KDBLIB) $(KLIB) $(LIBS)
+       $(LD) $(CFLAGS) -o kadmind $(OBJS) $(KDBLIB) $(KLIB) $(LIBS)
 
 install::
        $(INSTALL_PROGRAM) kadmind ${DESTDIR}$(SERVER_BINDIR)/kadmind
index 545784f73cde8ef26d7a9bcaa599cbdb984e6636..84c250ff6880f460f2074713cc3d7efd34ffc0e2 100644 (file)
@@ -89,7 +89,9 @@ do_child()
 #endif
     int pid, i, j;
 
+#ifndef OLD_SIGNALS
     signal(SIGCHLD, do_child);
+#endif
     
     pid = wait(&status);
     if (pid < 0)
@@ -129,7 +131,22 @@ setup_network(context, prog)
     krb5_sigtype     doexit(), do_child();
     struct servent *service_servent;
     struct hostent *service_hostent;
-
+    int on = 1;
+#ifndef OLD_SIGNALS
+    struct sigaction new_act;
+
+    new_act.sa_handler = doexit;
+    sigemptyset(&new_act.sa_mask);
+    sigaction(SIGINT, &new_act, 0);
+    sigaction(SIGTERM, &new_act, 0);
+    sigaction(SIGHUP, &new_act, 0);
+    sigaction(SIGQUIT, &new_act, 0);
+    sigaction(SIGALRM, &new_act, 0);
+    new_act.sa_handler = SIG_IGN;
+    sigaction(SIGPIPE, &new_act, 0);
+    new_act.sa_handler = do_child;
+    sigaction(SIGCHLD, &new_act, 0);
+#else
     signal(SIGINT, doexit);
     signal(SIGTERM, doexit);
     signal(SIGHUP, doexit);
@@ -137,6 +154,7 @@ setup_network(context, prog)
     signal(SIGPIPE, SIG_IGN); /* get errors on write() */
     signal(SIGALRM, doexit);
     signal(SIGCHLD, do_child);
+#endif
  
     client_server_info.name_of_service = malloc(768);
     if (!client_server_info.name_of_service) {
@@ -242,6 +260,11 @@ setup_network(context, prog)
                inet_ntoa( client_server_info.server_name.sin_addr ));
 #endif /* DEBUG */
 
+    if (admin_port && admin_port != htons(ADM5_DEFAULT_PORT)) {
+        (void) setsockopt(client_server_info.server_socket, SOL_SOCKET, 
+                          SO_REUSEADDR, (char *)&on, sizeof(on));
+     }
+
     if (bind(client_server_info.server_socket,
                &client_server_info.server_name, 
                sizeof(client_server_info.server_name)) < 0) {
index 0b490519159b613d6c0829b5b3c29dd27101ab36..31a0cd833d3f6314a3c91764cac8294c47b29d0b 100644 (file)
@@ -427,6 +427,7 @@ kdc_com_err_proc(whoami, code, format, pvar)
                strcat(nfmt, " ");
                strcat(nfmt, format);
                vsyslog(LOG_ERR, nfmt, pvar);
+               free(nfmt);
        } else {
                vsyslog(LOG_ERR, format, pvar);
        }