1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-28 07:21:54 +03:00

namedbname.c: Fixed *nasty* bug that caused nmbd to spin and eat memory

and CPU whilst trying to become a master browser. Don't ask,
              you don't want to know :-).
nameresp.c: Tidied formating of code.
nameservresp.c: Added debug value of IP address that is rejecting our
                registration.
jallison@whistle.com
(This used to be commit c0bae276a9)
This commit is contained in:
Samba Release Account 1997-05-15 23:47:34 +00:00
parent e896730fe7
commit 5495a3446d
3 changed files with 29 additions and 22 deletions

View File

@ -421,6 +421,12 @@ struct name_record *add_netbios_entry(struct subnet_record *d,
/* add the name to the WINS list if the name comes from a directed query */
search |= wins ? FIND_WINS : FIND_LOCAL;
/* If it's a local search then we need to set the subnet
we are looking at. */
if(search & FIND_LOCAL)
found_subnet = d;
/* search for SELF names only */
search |= self ? FIND_SELF : 0;

View File

@ -210,33 +210,33 @@ void expire_netbios_response_entries(time_t t)
for (n = d->responselist; n; n = nextn)
{
nextn = n->next;
nextn = n->next;
if (n->repeat_time <= t)
{
if (n->repeat_count > 0)
{
/* resend the entry */
initiate_netbios_packet(&n->response_id, n->fd, n->quest_type,
n->name.name, n->name.name_type,
n->nb_flags, n->bcast, n->recurse, n->send_ip);
{
if (n->repeat_count > 0)
{
/* resend the entry */
initiate_netbios_packet(&n->response_id, n->fd, n->quest_type,
n->name.name, n->name.name_type,
n->nb_flags, n->bcast, n->recurse, n->send_ip);
n->repeat_time += n->repeat_interval; /* XXXX ms needed */
n->repeat_count--;
n->repeat_time += n->repeat_interval; /* XXXX ms needed */
n->repeat_count--;
}
else
{
DEBUG(4,("timeout response %d for %s %s\n",
n->response_id, namestr(&n->name),
inet_ntoa(n->send_ip)));
}
else
{
DEBUG(4,("timeout response %d for %s %s\n",
n->response_id, namestr(&n->name),
inet_ntoa(n->send_ip)));
dead_netbios_entry (d,n); /* process the non-response */
remove_response_record(d,n); /* remove the non-response */
dead_netbios_entry(d,n); /* process the non-response */
remove_response_record(d,n); /* remove the non-response */
continue;
}
}
continue;
}
}
}
}
}

View File

@ -113,7 +113,8 @@ static void response_name_reg(struct nmb_name *ans_name,
}
else
{
DEBUG(2,("name registration for %s rejected!\n", namestr(ans_name)));
DEBUG(2,("name registration for %s rejected by ip %s!\n",
namestr(ans_name), inet_ntoa(p->ip)));
/* oh dear. we have problems. possibly unbecome a master browser. */
name_unregister_work(d,name,type);