We have a linux pc (slackware 4.0, samba 2.0.5) acting as a gateway between two
subnet of our office. On my side of the net I have a mixed win95/NT/Samba
network, and on the other side we have some sco unix servers, running an old
lan-manager, os/2 like.
Gateway linux is a master browser, that enable us to see the other subnet,
but... I can't see the record for the sco-server in
/usr/local/samba/var/locks/browse.dat. So I've raised log-level of nmbd and
got
this error in log file log.nmb:
process_lm_host_announce: LM Announcement from SCOSRV<00> IP
aaa.bbb.ccc.245
to WORKGROUP<00> for server SCOSRV.
[1999/07/22 15:47:28, 5]
nmbd/nmbd_incomingdgrams.c:process_lm_host_announce(446)
process_lm_host_announce: os=(2,2) ttl=300 server type=00000a13 comment=SCO
Server
[1999/07/22 15:47:28, 5]
nmbd/nmbd_incomingdgrams.c:process_lm_host_announce(451)
process_lm_host_announce: LM Announcement packet does not originate from OS/2
Warp client. Ignoring packet.
In file nmbd/nmbd_incomingdgrams.c I've added 1 line, remake, and now
it's
work.
I've made this workaround, to made this functioning for us work, but I
don't
know if this is a correct choice :
/*******************************************************************
Process an incoming LanMan host announcement packet.
*******************************************************************/
void process_lm_host_announce(struct subnet_record *subrec, struct
packet_struct *p, char *buf)
{
struct dgram_packet *dgram = &p->packet.dgram;
uint32 servertype = IVAL(buf,1);
int osmajor=CVAL(buf,5); /* major version of node software */
int osminor=CVAL(buf,6); /* minor version of node software */
int ttl = SVAL(buf,7);
char *announce_name = buf+9;
struct work_record *work;
struct server_record *servrec;
char *work_name;
char *source_name = dgram->source_name.name;
pstring comment;
char *s = buf+9;
s = skip_string(s,1);
StrnCpy(comment, s, 43);
DEBUG(3,("process_lm_host_announce: LM Announcement from %s<%02x>
IP %s to \
%s for server %s.\n", source_name, source_name[15], inet_ntoa(p->ip),
nmb_namestr(&dgram->dest_name),announce_name));
DEBUG(5,("process_lm_host_announce: os=(%d,%d) ttl=%d server type=%08x
comment=%s\n",
osmajor, osminor, ttl, servertype,comment));
if ((osmajor < 36) || (osmajor > 38) || (osminor !=0))
{
DEBUG(5,("process_lm_host_announce: LM Announcement packet does not \
originate from OS/2 Warp client. Ignoring packet.\n"));
/* Could have been from a Windows machine (with its LM Announce enabled),
or a Samba server. Then don't disrupt the current browse list. */
if(!((osmajor==2) && (osminor==2))) /* allow sco lan manager */
return;
}
[...]
I'll be glad if you send me some feedback on this. I'm not a good
programmer
and i fear that this could be a breach.
Regards,
Paolo Borsa
-------------- next part --------------
HTML attachment scrubbed and removed