SCO lan manager

Paolo Borsa samvise at bigfoot.com
Tue Sep 14 07:04:15 GMT 1999


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


More information about the samba mailing list