Happy Christmas Eve to all!

I believe there is a bug in Samba's handling of server roles that
allows the user to make incompatible choices that are silently ignored.
I've received a report from a user who was using the following settings
successfully under 2.2:

[globals]
   workgroup = FOO
   security = share
   wins support = yes
   domain master = yes
   ; implicit
   ; domain logons = no

Under 3.0, registration of the #1b DMB name is handled by this chunk of
code in nmbd/nmbd_become_dmb.c:add_domain_names() --

  /* Do the "internet group" - <1c> names. */
  if (lp_domain_logons())
    add_logon_names();

  /* Do the domain master names. */
  if(lp_server_role() == ROLE_DOMAIN_PDC)
  {
    if(we_are_a_wins_client())
    {
      become_domain_master_browser_wins(lp_workgroup());
    }
    ...

  }

From params/loadparm.c, lp_server_role() is only set to ROLE_DOMAIN_PDC
if security = server | domain | ads | user, AND domain logons = yes.
Aside from being a bit strange to allow a server-security machine be a
DMB if a share-security machine can't be, the 'domain master = yes'
setting silently becomes a complete no-op as a result of this code.

Any thoughts on how this might be better handled?  Should a setting of
'domain master = yes' automatically promote 'domain logons = yes',
perhaps?  Should the code be rearranged so that domain master = yes
always results in a server role of ROLE_DOMAIN_PDC?  Or should the check
in add_domain_names() be changed to lp_domain_master() instead of
lp_server_role()?

Cheers,
-- 
Steve Langasek
postmodern programmer

Attachment: msg05075/pgp00000.pgp
Description: PGP signature

Reply via email to