r20149: Remove the smb.conf distinction between PDC and BDC. Now the correct
[kai/samba-autobuild/.git] / source4 / nbt_server / register.c
index 64ceaffd9c437ba77a7522dcc506da07fabffd7c..6e65b753b1442f0f0a07331babdb59e9596e7934 100644 (file)
@@ -29,6 +29,7 @@
 #include "librpc/gen_ndr/ndr_samr.h"
 #include "nbt_server/wins/winsserver.h"
 #include "librpc/gen_ndr/ndr_nbt.h"
+#include "dsdb/samdb/samdb.h"
 
 
 static void nbtd_start_refresh_timer(struct nbtd_iface_name *iname);
@@ -271,15 +272,14 @@ void nbtd_register_names(struct nbtd_server *nbtsrv)
                aliases++;
        }
 
-       switch (lp_server_role()) {
-       case ROLE_DOMAIN_PDC:
-               nbtd_register_name(nbtsrv, lp_workgroup(),    NBT_NAME_PDC, nb_flags);
-               nbtd_register_name(nbtsrv, lp_workgroup(),    NBT_NAME_LOGON, nb_flags | NBT_NM_GROUP);
-               break;
-       case ROLE_DOMAIN_BDC:
-               nbtd_register_name(nbtsrv, lp_workgroup(),    NBT_NAME_LOGON, nb_flags | NBT_NM_GROUP);
-       default:
-               break;
+       if (lp_server_role() == ROLE_DOMAIN_CONTROLLER) {
+               BOOL is_pdc = samdb_is_pdc(nbtsrv->sam_ctx);
+               if (is_pdc) {
+                       nbtd_register_name(nbtsrv, lp_workgroup(),
+                                          NBT_NAME_PDC, nb_flags);
+               }
+               nbtd_register_name(nbtsrv, lp_workgroup(),
+                                  NBT_NAME_LOGON, nb_flags | NBT_NM_GROUP);
        }
 
        nb_flags |= NBT_NM_GROUP;