mirror of
https://github.com/samba-team/samba.git
synced 2024-12-23 17:34:34 +03:00
Have nmbd check all available interfaces for WINS before failing
When nmbd is acting as WINS, it picks the first interface's IP as WINS server's IP. If the first interface's IP is zero, we will just quit (even though we might have other interfaces with valid IPs). This patch makes nmbd look at all interfaces and pick the first interface with a valid IP as the WINS server's IP.
This commit is contained in:
parent
7435b877c7
commit
83cf98f113
@ -151,7 +151,8 @@ int iface_count_v4_nl(void)
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
Return a pointer to the in_addr of the first IPv4 interface.
|
||||
Return a pointer to the in_addr of the first IPv4 interface that's
|
||||
not 0.0.0.0.
|
||||
**************************************************************************/
|
||||
|
||||
const struct in_addr *first_ipv4_iface(void)
|
||||
@ -159,7 +160,9 @@ const struct in_addr *first_ipv4_iface(void)
|
||||
struct interface *i;
|
||||
|
||||
for (i=local_interfaces;i ;i=i->next) {
|
||||
if (i->ip.ss_family == AF_INET) {
|
||||
if ((i->ip.ss_family == AF_INET) &&
|
||||
(!is_zero_ip_v4(((struct sockaddr_in *)&i->ip)->sin_addr)))
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -128,7 +128,8 @@ in workgroup %s on subnet %s\n",
|
||||
|
||||
work->dmb_name = nmbname;
|
||||
|
||||
/* Pick the first interface IPv4 address as the domain master browser ip. */
|
||||
/* Pick the first interface IPv4 address as the domain master
|
||||
* browser ip. */
|
||||
nip = first_ipv4_iface();
|
||||
if (!nip) {
|
||||
DEBUG(0,("become_domain_master_stage2: "
|
||||
|
@ -287,7 +287,8 @@ bool create_subnets(void)
|
||||
}
|
||||
|
||||
if (lp_we_are_a_wins_server()) {
|
||||
/* Pick the first interface IPv4 address as the WINS server ip. */
|
||||
/* Pick the first interface IPv4 address as the WINS server
|
||||
* ip. */
|
||||
const struct in_addr *nip = first_ipv4_iface();
|
||||
|
||||
if (!nip) {
|
||||
|
Loading…
Reference in New Issue
Block a user