summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarolin Seeger <kseeger@samba.org>2008-08-27 10:38:35 +0200
committerKarolin Seeger <kseeger@samba.org>2008-08-27 10:38:35 +0200
commit42f7808a92c3b73ffc7f967e9157a970c2316e9b (patch)
tree5159e53e5a42bf60f6ebb8a9d5b6525ca79c6140
parent0682464774e2bdc838e08bdf77b22e6df16980bc (diff)
downloadsamba-42f7808a92c3b73ffc7f967e9157a970c2316e9b.tar.gz
Revert "Fix bug 5697 nmbd spins in reload_interfaces when only loopback has an IPv4 address"
This reverts commit 435c10268bb6987ab7e8206cd6c45bd9961c5632.
-rw-r--r--source/lib/interface.c7
-rw-r--r--source/nmbd/nmbd.c4
-rw-r--r--source/nmbd/nmbd_subnetdb.c11
3 files changed, 9 insertions, 13 deletions
diff --git a/source/lib/interface.c b/source/lib/interface.c
index 2e7c2706a06..eb0af9ef341 100644
--- a/source/lib/interface.c
+++ b/source/lib/interface.c
@@ -131,18 +131,15 @@ int iface_count(void)
}
/****************************************************************************
- How many non-loopback IPv4 interfaces do we have ?
+ How many interfaces do we have (v4 only) ?
**************************************************************************/
-int iface_count_v4_nl(void)
+int iface_count_v4(void)
{
int ret = 0;
struct interface *i;
for (i=local_interfaces;i;i=i->next) {
- if (is_loopback_addr(&i->ip)) {
- continue;
- }
if (i->ip.ss_family == AF_INET) {
ret++;
}
diff --git a/source/nmbd/nmbd.c b/source/nmbd/nmbd.c
index b72be2b482d..af4acc84d07 100644
--- a/source/nmbd/nmbd.c
+++ b/source/nmbd/nmbd.c
@@ -293,8 +293,8 @@ static void reload_interfaces(time_t t)
BlockSignals(false, SIGTERM);
- /* We only count IPv4, non-loopback interfaces here. */
- while (iface_count_v4_nl() == 0 && !got_sig_term) {
+ /* We only count IPv4 interfaces here. */
+ while (iface_count_v4() == 0 && !got_sig_term) {
sleep(5);
load_interfaces();
}
diff --git a/source/nmbd/nmbd_subnetdb.c b/source/nmbd/nmbd_subnetdb.c
index 225def52cce..a4422d27d57 100644
--- a/source/nmbd/nmbd_subnetdb.c
+++ b/source/nmbd/nmbd_subnetdb.c
@@ -195,20 +195,19 @@ struct subnet_record *make_normal_subnet(const struct interface *iface)
bool create_subnets(void)
{
/* We only count IPv4 interfaces whilst we're waiting. */
- int num_interfaces;
+ int num_interfaces = iface_count_v4();
int i;
struct in_addr unicast_ip, ipzero;
try_interfaces_again:
- /* Only count IPv4, non-loopback interfaces. */
- if (iface_count_v4_nl() == 0) {
- DEBUG(0,("create_subnets: No local IPv4 non-loopback interfaces !\n"));
+ if (iface_count_v4() == 0) {
+ DEBUG(0,("create_subnets: No local interfaces !\n"));
DEBUG(0,("create_subnets: Waiting for an interface to appear ...\n"));
}
- /* We only count IPv4, non-loopback interfaces here. */
- while (iface_count_v4_nl() == 0) {
+ /* We only count IPv4 interfaces here. */
+ while (iface_count_v4() == 0) {
void (*saved_handler)(int);
/*