Node-type curiosity.

Christopher R. Hertel crh at NTS.Umn.EDU
Tue May 26 17:03:14 GMT 1998

I'm working in nmbd at the moment, the name lists in particular.  This 
has me reading nameserv.h and nmbd_namelistdb.c closely.

In nameserv.h I notice that there are flag values defined for all four 
NetBIOS name resolution node types:

#define NB_BFLAG  0x00 /* Broadcast node type. */
#define NB_PFLAG  0x20 /* Point-to-point node type. */
#define NB_MFLAG  0x40 /* Mixed bcast & p-p node type. */
#define NB_HFLAG  0x60 /* Microsoft 'hybrid' node type. */

In nmbd_namelistdb.c, the node type is set as follows:

void set_samba_nb_type( void )
  if( lp_wins_support() || (*lp_wins_server()) )
    samba_nb_type = NB_MFLAG;  /* samba is a 'hybrid' node type */
    samba_nb_type = NB_BFLAG;  /* samba is broadcast-only node type */

I'm confused by this.  NB_MFLAG isn't the 'hybrid' type.  As I understand
it, an M node will use broadcast for registration, and only switches to
point-to-point for name resolution when broadcasts fail to resolve the
name.  The MS WindowsNT Server Networking Guide says:

  "m-node -- uses broadcasts for name registration; for name resolution, 
   tries broadcasts first, but switches to p-node if no anser is received."

So, what is really going on in the code, here?  Is the above statement,
er, incomplete?  Are we doing something more?

Just curious.

Chris -)-----

Christopher R. Hertel -)-----                   University of Minnesota
crh at              Networking and Telecommunications Services

More information about the samba-technical mailing list