mirror of
https://github.com/samba-team/samba.git
synced 2025-03-20 22:50:26 +03:00
namedbname.c: Added 'S' or 'R' flags to wins.dat to aid debugging. Forced all type 1e
names to be added as 255.255.255.255. namedbsubnet.c: Fixed bug I intruduced - register 1e name on WINS subnet also. (thanks to Luke for pointing this one out). Jeremy (jallison@whistle.com) (This used to be commit fbeaf146c0903f0939d1128af01cff8ea18a2546)
This commit is contained in:
parent
3ab97ebe6d
commit
5c4776f496
@ -249,7 +249,7 @@ void dump_names(void)
|
||||
}
|
||||
DEBUG(4,("\n"));
|
||||
|
||||
if (f && n->source == REGISTER)
|
||||
if (f && ((n->source == REGISTER) || (n->source == SELF)))
|
||||
{
|
||||
/* XXXX i have little imagination as to how to output nb_flags as
|
||||
anything other than as a hexadecimal number :-) */
|
||||
@ -260,11 +260,11 @@ void dump_names(void)
|
||||
|
||||
for (i = 0; i < n->num_ips; i++)
|
||||
{
|
||||
fprintf(f, "%s %2x ",
|
||||
inet_ntoa(n->ip_flgs[i].ip),
|
||||
n->ip_flgs[i].nb_flags);
|
||||
fprintf(f, "%s %2x%c ",
|
||||
inet_ntoa(n->ip_flgs[i].ip),
|
||||
n->ip_flgs[i].nb_flags, (n->source == REGISTER ? 'R' : 'S'));
|
||||
}
|
||||
fprintf(f, "\n");
|
||||
fprintf(f, "\n");
|
||||
}
|
||||
|
||||
}
|
||||
@ -341,6 +341,17 @@ void load_netbios_names(void)
|
||||
continue;
|
||||
}
|
||||
|
||||
/* Deal with SELF or REGISTER name encoding. Default is REGISTER
|
||||
for compatibility with old nmbds. */
|
||||
if(nb_flags_str[strlen(nb_flags_str)-1] == 'S')
|
||||
{
|
||||
DEBUG(5,("Ignoring SELF name %s\n", line));
|
||||
continue;
|
||||
}
|
||||
|
||||
if(nb_flags_str[strlen(nb_flags_str)-1] == 'R')
|
||||
nb_flags_str[strlen(nb_flags_str)-1] = '\0';
|
||||
|
||||
/* netbios name. # divides the name from the type (hex): netbios#xx */
|
||||
strcpy(name,name_str);
|
||||
|
||||
@ -449,6 +460,12 @@ struct name_record *add_netbios_entry(struct subnet_record *d,
|
||||
}
|
||||
}
|
||||
|
||||
if(type == 0x1e)
|
||||
{
|
||||
/* Add all 1e names as address 255.255.255.255 */
|
||||
ip = *interpret_addr2("255.255.255.255");
|
||||
}
|
||||
|
||||
n = (struct name_record *)malloc(sizeof(*n));
|
||||
if (!n) return(NULL);
|
||||
|
||||
|
@ -211,14 +211,11 @@ void add_workgroup_to_subnet( struct subnet_record *d, char *group)
|
||||
|
||||
/* add WORKGROUP(00) entries into name database
|
||||
or register with WINS server, if it's our workgroup.
|
||||
Don't register WORKGROUP(0x1e) on the WINS subnet - this is a broadcast
|
||||
only name.
|
||||
*/
|
||||
if (strequal(myworkgroup, group))
|
||||
{
|
||||
add_my_name_entry(d,group,0x0 ,nb_type|NB_ACTIVE|NB_GROUP,False);
|
||||
if((d != wins_subnet))
|
||||
add_my_name_entry(d,group,0x1e,nb_type|NB_ACTIVE|NB_GROUP,False);
|
||||
add_my_name_entry(d,group,0x1e,nb_type|NB_ACTIVE|NB_GROUP,False);
|
||||
/* add samba server name to workgroup list. */
|
||||
add_server_entry(d,w,myname,w->ServerType,0,lp_serverstring(),True);
|
||||
DEBUG(3,("add_workgroup_to_subnet: Added server name entry %s to subnet %s\n",
|
||||
|
Loading…
x
Reference in New Issue
Block a user