first pass at updating head branch to be to be the same as the SAMBA_2_0 branch
[jra/samba/.git] / source3 / nmbd / nmbd_become_dmb.c
index cfaec3378d20720eeb6171e52cc145610ea0b8ec..ae809607dc61310df4e9c488dfb6183dd228bc75 100644 (file)
@@ -74,7 +74,7 @@ in workgroup %s on subnet %s\n",
 
   DEBUG(0,("become_domain_master_fail: Failed to become a domain master browser for \
 workgroup %s on subnet %s. Couldn't register name %s.\n",
-       work->work_group, subrec->subnet_name, namestr(fail_name)));
+       work->work_group, subrec->subnet_name, nmb_namestr(fail_name)));
 }
 
 /****************************************************************************
@@ -157,6 +157,16 @@ in workgroup %s on subnet %s\n",
      */
     become_domain_master_browser_bcast(work->work_group);
   }
+  else
+  {
+    /*
+     * Now we are a domain master on a broadcast subnet, we need to add
+     * the WORKGROUP<1b> name to the unicast subnet so that we can answer
+     * unicast requests sent to this name. This bug wasn't found for a while
+     * as it is strange to have a DMB without using WINS. JRA.
+     */
+    insert_permanent_name_into_unicast(subrec, registered_name, nb_flags);
+  }
 }
 
 /****************************************************************************
@@ -213,7 +223,7 @@ static void become_domain_master_query_success(struct subnet_record *subrec,
     {
       dbgtext( "become_domain_master_query_success():\n" );
       dbgtext( "Our address (%s) ", inet_ntoa(ip) );
-      dbgtext( "returned in query for name %s ", namestr(nmbname) );
+      dbgtext( "returned in query for name %s ", nmb_namestr(nmbname) );
       dbgtext( "(domain master browser name) " );
       dbgtext( "on subnet %s.\n", subrec->subnet_name );
       dbgtext( "Continuing with domain master code.\n" );
@@ -249,7 +259,7 @@ static void become_domain_master_query_fail(struct subnet_record *subrec,
   {
     DEBUG(0,("become_domain_master_query_fail: Error %d returned when \
 querying WINS server for name %s.\n", 
-                  fail_code, namestr(question_name)));
+                  fail_code, nmb_namestr(question_name)));
     return;
   }
 
@@ -344,7 +354,7 @@ static void become_domain_master_browser_wins(char *workgroup_name)
 
       DEBUG(0,("become_domain_master_browser_wins: querying WINS server at IP %s \
 for domain master browser name %s on workgroup %s\n",
-         inet_ntoa(unicast_subnet->myip), namestr(&nmbname), workgroup_name));
+         inet_ntoa(unicast_subnet->myip), nmb_namestr(&nmbname), workgroup_name));
 
       query_name(unicast_subnet, nmbname.name, nmbname.name_type,
                    become_domain_master_query_success,