svn commit: samba r23349 - in branches: SAMBA_3_0/source/nmbd
SAMBA_3_0_25/source/nmbd SAMBA_3_0_26/source/nmbd
jra at samba.org
jra at samba.org
Tue Jun 5 01:59:38 GMT 2007
Author: jra
Date: 2007-06-05 01:59:37 +0000 (Tue, 05 Jun 2007)
New Revision: 23349
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=23349
Log:
Fix from Steve Langasek <vorlon at debian.org> to
allow SIGTERM to cause nmbd to exit on awaiting
an interface to come up. Debian bug #168079
Jeremy.
Modified:
branches/SAMBA_3_0/source/nmbd/nmbd_subnetdb.c
branches/SAMBA_3_0_25/source/nmbd/nmbd_subnetdb.c
branches/SAMBA_3_0_26/source/nmbd/nmbd_subnetdb.c
Changeset:
Modified: branches/SAMBA_3_0/source/nmbd/nmbd_subnetdb.c
===================================================================
--- branches/SAMBA_3_0/source/nmbd/nmbd_subnetdb.c 2007-06-04 23:51:19 UTC (rev 23348)
+++ branches/SAMBA_3_0/source/nmbd/nmbd_subnetdb.c 2007-06-05 01:59:37 UTC (rev 23349)
@@ -185,12 +185,28 @@
struct in_addr unicast_ip, ipzero;
if(num_interfaces == 0) {
+ void (*saved_handler)(int);
+
DEBUG(0,("create_subnets: No local interfaces !\n"));
DEBUG(0,("create_subnets: Waiting for an interface to appear ...\n"));
+
+ /*
+ * Whilst we're waiting for an interface, allow SIGTERM to
+ * cause us to exit.
+ */
+
+ saved_handler = CatchSignal( SIGTERM, SIGNAL_CAST SIG_DFL );
+
while (iface_count() == 0) {
sleep(5);
load_interfaces();
}
+
+ /*
+ * We got an interface, restore our normal term handler.
+ */
+
+ CatchSignal( SIGTERM, SIGNAL_CAST saved_handler );
}
num_interfaces = iface_count();
Modified: branches/SAMBA_3_0_25/source/nmbd/nmbd_subnetdb.c
===================================================================
--- branches/SAMBA_3_0_25/source/nmbd/nmbd_subnetdb.c 2007-06-04 23:51:19 UTC (rev 23348)
+++ branches/SAMBA_3_0_25/source/nmbd/nmbd_subnetdb.c 2007-06-05 01:59:37 UTC (rev 23349)
@@ -185,12 +185,28 @@
struct in_addr unicast_ip, ipzero;
if(num_interfaces == 0) {
+ void (*saved_handler)(int);
+
DEBUG(0,("create_subnets: No local interfaces !\n"));
DEBUG(0,("create_subnets: Waiting for an interface to appear ...\n"));
+
+ /*
+ * Whilst we're waiting for an interface, allow SIGTERM to
+ * cause us to exit.
+ */
+
+ saved_handler = CatchSignal( SIGTERM, SIGNAL_CAST SIG_DFL );
+
while (iface_count() == 0) {
sleep(5);
load_interfaces();
}
+
+ /*
+ * We got an interface, restore our normal term handler.
+ */
+
+ CatchSignal( SIGTERM, SIGNAL_CAST saved_handler );
}
num_interfaces = iface_count();
Modified: branches/SAMBA_3_0_26/source/nmbd/nmbd_subnetdb.c
===================================================================
--- branches/SAMBA_3_0_26/source/nmbd/nmbd_subnetdb.c 2007-06-04 23:51:19 UTC (rev 23348)
+++ branches/SAMBA_3_0_26/source/nmbd/nmbd_subnetdb.c 2007-06-05 01:59:37 UTC (rev 23349)
@@ -185,12 +185,28 @@
struct in_addr unicast_ip, ipzero;
if(num_interfaces == 0) {
+ void (*saved_handler)(int);
+
DEBUG(0,("create_subnets: No local interfaces !\n"));
DEBUG(0,("create_subnets: Waiting for an interface to appear ...\n"));
+
+ /*
+ * Whilst we're waiting for an interface, allow SIGTERM to
+ * cause us to exit.
+ */
+
+ saved_handler = CatchSignal( SIGTERM, SIGNAL_CAST SIG_DFL );
+
while (iface_count() == 0) {
sleep(5);
load_interfaces();
}
+
+ /*
+ * We got an interface, restore our normal term handler.
+ */
+
+ CatchSignal( SIGTERM, SIGNAL_CAST saved_handler );
}
num_interfaces = iface_count();
More information about the samba-cvs
mailing list