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
msg05075/pgp00000.pgp
Description: PGP signature