SCO lan manager

Paolo Borsa samvise at libero.it
Thu Jul 22 15:29: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 make 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 (os = %d.%d). Ignoring
packet.\n",osmajor,osminor));
    /* 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-ntdom mailing list