* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
* AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
* OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Copyright (c) 1999-2004 Paul Mackerras. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. The name(s) of the authors of this software must not be used to
+ * endorse or promote products derived from this software without
+ * prior written permission.
+ *
+ * 3. Redistributions of any form whatsoever must retain the following
+ * acknowledgment:
+ * "This product includes software developed by Paul Mackerras
+ * <paulus@samba.org>".
+ *
+ * THE AUTHORS OF THIS SOFTWARE DISCLAIM ALL WARRANTIES WITH REGARD TO
+ * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS, IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
+ * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
+ * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
+ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
-#define RCSID "$Id: main.c,v 1.139 2004/11/04 09:46:50 paulus Exp $"
+#define RCSID "$Id: main.c,v 1.141 2004/11/04 10:02:26 paulus Exp $"
#include <stdio.h>
#include <ctype.h>
waiting = 0;
calltimeout();
if (got_sighup) {
+ info("Hangup (SIGHUP)");
kill_link = 1;
got_sighup = 0;
if (status != EXIT_HANGUP)
status = EXIT_USER_REQUEST;
}
if (got_sigterm) {
+ info("Terminating on signal %d", got_sigterm);
kill_link = 1;
persist = 0;
status = EXIT_USER_REQUEST;
hup(sig)
int sig;
{
- info("Hangup (SIGHUP)");
+ /* can't log a message here, it can deadlock */
got_sighup = 1;
if (conn_running)
/* Send the signal to the [dis]connector process(es) also */
term(sig)
int sig;
{
- info("Terminating on signal %d.", sig);
- got_sigterm = 1;
+ /* can't log a message here, it can deadlock */
+ got_sigterm = sig;
if (conn_running)
/* Send the signal to the [dis]connector process(es) also */
kill_my_pg(sig);