util_str.c and Problems with wins
Heinreichsberger Helmut
helmut.heinreichsberger at sbs.at
Mon Feb 14 00:25:57 GMT 2000
Hi,
By reading this part of code from samba 2.0.6 I found 2 possible problems.
1) Function next_token:
...
if (!ptr) ptr = &last_ptr;
if (!ptr) return(False); // I think this should read as:
if(!*ptr) return(False);
s = *ptr;
last_ptr is defined as static char *, and so it always returns an address.
2) Function strhex_to_str:
....
char *hexchars = "0123456789ABCDEF";
....
for ( i = 0; i < len && strhex[i] != 0; i++ )
{
if( strnequal(hexchars, "0x", 2)) // I think
this should be: if( strnequal(strhex +i, "0x", 2))
{
i++; /* skip 2 chars */
....
the variable hexchars is unchanged in this function, so this test never can
be true.
When this function should skip any non-hex-numeric characters (as
described), then the following change should be done:
Original:
if (!(p1 = strchr(hexchars, toupper(strhex[i]))))
{
break;
}
i++;
New:
if (!(p1 = strchr(hexchars, toupper(strhex[i]))))
{
continue; /* the first character is
non-hex-numeric, so skip that character */
}
i++;
So here is my Problem with wins:
I have installed Samba on Redhat Linux 6.0 with 3 Ethernet-cards. Every Card
has its own address and its own DNS-Name.
2 private addresses and 1 public address. I have only 1 Wins-Server, that
isn't in the range of my Network Masks. And so the Samba Server registers
all 3 IP-Addresses to the wins server under the unique Machine-Name. So it
can be that a client, that comes from the public side, get the private
IP-Address from the Wins-Server. The private Addresses are blocked by the
routers, and so the client cannot connect to the server with net NetBIOS
name. I think that the better way for registering the Interfaces is to take
the DNS-Name of the interface and not the Machine-Name.
Thanks
Helmut
More information about the samba-technical
mailing list