diff options
author | Tom Yu <tlyu@mit.edu> | 2000-02-15 05:13:30 +0000 |
---|---|---|
committer | Tom Yu <tlyu@mit.edu> | 2000-02-15 05:13:30 +0000 |
commit | 9d303e49229bd9c8782c538f15684fde4dcc3e88 (patch) | |
tree | d739d2e374d85f3e058fc0e98b76d8b2b934f6b6 | |
parent | 9d0c85dfe2d5fbe2449f67014217f8c3e05c865f (diff) | |
download | krb5-9d303e49229bd9c8782c538f15684fde4dcc3e88.tar.gz krb5-9d303e49229bd9c8782c538f15684fde4dcc3e88.tar.xz krb5-9d303e49229bd9c8782c538f15684fde4dcc3e88.zip |
* server.c: Add code to set a signal handler for SIGHUP and a few
others so that purify will actually generate memory leak reports.
* configure.in: Add CHECK_SIGNALS.
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@12042 dc483132-0cff-0310-8789-dd5450dbe970
-rw-r--r-- | src/lib/rpc/unit-test/ChangeLog | 7 | ||||
-rw-r--r-- | src/lib/rpc/unit-test/configure.in | 1 | ||||
-rw-r--r-- | src/lib/rpc/unit-test/server.c | 21 |
3 files changed, 29 insertions, 0 deletions
diff --git a/src/lib/rpc/unit-test/ChangeLog b/src/lib/rpc/unit-test/ChangeLog index 344713e43..1c3d40186 100644 --- a/src/lib/rpc/unit-test/ChangeLog +++ b/src/lib/rpc/unit-test/ChangeLog @@ -1,3 +1,10 @@ +2000-02-15 Tom Yu <tlyu@mit.edu> + + * server.c: Add code to set a signal handler for SIGHUP and a few + others so that purify will actually generate memory leak reports. + + * configure.in: Add CHECK_SIGNALS. + 2000-02-07 Tom Yu <tlyu@mit.edu> * config/unix.exp: Call send_error instead of fail to prevent diff --git a/src/lib/rpc/unit-test/configure.in b/src/lib/rpc/unit-test/configure.in index 95f719fbd..70dec1213 100644 --- a/src/lib/rpc/unit-test/configure.in +++ b/src/lib/rpc/unit-test/configure.in @@ -22,5 +22,6 @@ esac changequote([, ]) AC_SUBST(UDP_TEST) dnl +CHECK_SIGNALS KRB5_BUILD_PROGRAM V5_AC_OUTPUT_MAKEFILE diff --git a/src/lib/rpc/unit-test/server.c b/src/lib/rpc/unit-test/server.c index 02537ff04..7270ea40d 100644 --- a/src/lib/rpc/unit-test/server.c +++ b/src/lib/rpc/unit-test/server.c @@ -12,6 +12,7 @@ static char *rcsid = "$Header$"; #include <stdio.h> #include <stdlib.h> #include <string.h> +#include <signal.h> #include <gssrpc/rpc.h> #include <arpa/inet.h> /* inet_ntoa */ #include <gssapi/gssapi.h> @@ -44,12 +45,20 @@ void usage() exit(1); } +void handlesig(void) +{ + exit(0); +} + main(int argc, char **argv) { int c, prot; auth_gssapi_name names[2]; register SVCXPRT *transp; extern int optind; +#ifdef POSIX_SIGNALS + struct sigaction sa; +#endif names[0].name = SERVICE_NAME; names[0].type = (gss_OID) gss_nt_service_name; @@ -115,6 +124,18 @@ main(int argc, char **argv) _svcauth_gssapi_set_log_badverf_func(rpc_test_badverf, NULL); _svcauth_gssapi_set_log_miscerr_func(log_miscerr, NULL); +#ifdef POSIX_SIGNALS + (void) sigemptyset(&sa.sa_mask); + sa.sa_flags = 0; + sa.sa_handler = handlesig; + (void) sigaction(SIGHUP, &sa, NULL); + (void) sigaction(SIGINT, &sa, NULL); + (void) sigaction(SIGTERM, &sa, NULL); +#else + signal(SIGHUP, handlesig); + signal(SIGINT, handlesig); + signal(SIGTERM, handlesig); +#endif printf("running\n"); svc_run(); |