diff options
author | Theodore Tso <tytso@mit.edu> | 1995-04-29 04:30:45 +0000 |
---|---|---|
committer | Theodore Tso <tytso@mit.edu> | 1995-04-29 04:30:45 +0000 |
commit | b45dead41a10f87d5a9ad20df211ccbc1c4b6f11 (patch) | |
tree | fec8ff6dde67927439cdf214b2fc9b0193a45a91 /src/kadmin.old | |
parent | 56a3f3fe547ed6ff4334e3ca00f99fc5aa58907a (diff) | |
download | krb5-b45dead41a10f87d5a9ad20df211ccbc1c4b6f11.tar.gz krb5-b45dead41a10f87d5a9ad20df211ccbc1c4b6f11.tar.xz krb5-b45dead41a10f87d5a9ad20df211ccbc1c4b6f11.zip |
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.
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
Diffstat (limited to 'src/kadmin.old')
-rw-r--r-- | src/kadmin.old/server/ChangeLog | 13 | ||||
-rw-r--r-- | src/kadmin.old/server/Makefile.in | 2 | ||||
-rw-r--r-- | src/kadmin.old/server/adm_network.c | 25 | ||||
-rw-r--r-- | src/kadmin.old/server/adm_server.c | 1 |
4 files changed, 39 insertions, 2 deletions
diff --git a/src/kadmin.old/server/ChangeLog b/src/kadmin.old/server/ChangeLog index d904524a5..d91fcf209 100644 --- a/src/kadmin.old/server/ChangeLog +++ b/src/kadmin.old/server/ChangeLog @@ -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 diff --git a/src/kadmin.old/server/Makefile.in b/src/kadmin.old/server/Makefile.in index 8a3b022d1..99a422d76 100644 --- a/src/kadmin.old/server/Makefile.in +++ b/src/kadmin.old/server/Makefile.in @@ -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 diff --git a/src/kadmin.old/server/adm_network.c b/src/kadmin.old/server/adm_network.c index 545784f73..84c250ff6 100644 --- a/src/kadmin.old/server/adm_network.c +++ b/src/kadmin.old/server/adm_network.c @@ -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) { diff --git a/src/kadmin.old/server/adm_server.c b/src/kadmin.old/server/adm_server.c index 0b4905191..31a0cd833 100644 --- a/src/kadmin.old/server/adm_server.c +++ b/src/kadmin.old/server/adm_server.c @@ -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); } |