this looks like a big commit, but it isn't really :)
authorAndrew Tridgell <tridge@samba.org>
Fri, 7 Jan 2000 06:55:36 +0000 (06:55 +0000)
committerAndrew Tridgell <tridge@samba.org>
Fri, 7 Jan 2000 06:55:36 +0000 (06:55 +0000)
This fixes our netbios scope handling. We now have a 'netbios scope' option
in smb.conf and the scope option is removed from make_nmb_name()

this was prompted by a bug in our PDC finding code where it didn't append
the scope to the query of the '*' name.
(This used to be commit b563be824b8c3141c49558eced7829b48d4ab26f)

32 files changed:
source3/client/client.c
source3/client/smbmount.c
source3/client/smbspool.c
source3/include/proto.h
source3/lib/msrpc_use.c
source3/lib/util.c
source3/libsmb/clientgen.c
source3/libsmb/namequery.c
source3/libsmb/nmblib.c
source3/libsmb/passchange.c
source3/nmbd/nmbd.c
source3/nmbd/nmbd_become_dmb.c
source3/nmbd/nmbd_become_lmb.c
source3/nmbd/nmbd_browsesync.c
source3/nmbd/nmbd_elections.c
source3/nmbd/nmbd_logonnames.c
source3/nmbd/nmbd_mynames.c
source3/nmbd/nmbd_namelistdb.c
source3/nmbd/nmbd_namequery.c
source3/nmbd/nmbd_nameregister.c
source3/nmbd/nmbd_namerelease.c
source3/nmbd/nmbd_nodestatus.c
source3/nmbd/nmbd_packets.c
source3/nmbd/nmbd_responserecordsdb.c
source3/nmbd/nmbd_synclists.c
source3/param/loadparm.c
source3/rpc_client/cli_netlogon.c
source3/rpcclient/rpcclient.c
source3/smbd/password.c
source3/smbd/server.c
source3/utils/nmblookup.c
source3/utils/rpctorture.c

index 8915d197ab995a879400c199f2ca5666e0567dec..3dc8371bb0cb272a0ae2503a159253536c03da0a 100644 (file)
@@ -42,7 +42,6 @@ static char *cmdstr;
 static BOOL got_pass;
 static int io_bufsize = 65520;
 extern struct in_addr ipzero;
-extern pstring scope;
 
 static int name_type = 0x20;
 
@@ -1890,8 +1889,8 @@ struct cli_state *do_connect(char *server, char *share)
        
        ip = ipzero;
 
-       make_nmb_name(&calling, global_myname, 0x0, "");
-       make_nmb_name(&called , server, name_type, "");
+       make_nmb_name(&calling, global_myname, 0x0);
+       make_nmb_name(&called , server, name_type);
 
  again:
        ip = ipzero;
@@ -1914,7 +1913,7 @@ struct cli_state *do_connect(char *server, char *share)
                        goto again;
                }
                if (strcmp(called.name, "*SMBSERVER")) {
-                       make_nmb_name(&called , "*SMBSERVER", 0x20, "");
+                       make_nmb_name(&called , "*SMBSERVER", 0x20);
                        goto again;
                }
                return NULL;
@@ -2141,8 +2140,8 @@ static int do_message_op(void)
 
        ip = ipzero;
 
-       make_nmb_name(&calling, global_myname, 0x0, "");
-       make_nmb_name(&called , desthost, name_type, "");
+       make_nmb_name(&calling, global_myname, 0x0);
+       make_nmb_name(&called , desthost, name_type);
 
        ip = ipzero;
        if (have_ip) ip = dest_ip;
@@ -2329,7 +2328,11 @@ static int do_message_op(void)
                        message = True;
                        break;
                case 'i':
-                       pstrcpy(scope,optarg);
+                       {
+                               extern pstring global_scope;
+                               pstrcpy(global_scope,optarg);
+                               strupper(global_scope);
+                       }
                        break;
                case 'N':
                        got_pass = True;
index e25efcaf5668f4fe2f2702f66e16c8a490ff52c5..18af824c1fd5c9c65bc4c4fe12cefc7a7462c6e3 100644 (file)
@@ -37,7 +37,6 @@
 extern struct in_addr ipzero;
 extern int DEBUGLEVEL;
 
-extern pstring scope;
 extern BOOL in_client;
 extern pstring user_socket_options;
 
@@ -142,8 +141,8 @@ static struct cli_state *do_connection(char *service)
        
        ip = ipzero;
 
-       make_nmb_name(&calling, my_netbios_name, 0x0, "");
-       make_nmb_name(&called , server, 0x20, "");
+       make_nmb_name(&calling, my_netbios_name, 0x0);
+       make_nmb_name(&called , server, 0x20);
 
  again:
        ip = ipzero;
@@ -160,7 +159,7 @@ static struct cli_state *do_connection(char *service)
                fprintf(stderr, "session request to %s failed\n", called.name);
                cli_shutdown(c);
                if (strcmp(called.name, "*SMBSERVER")) {
-                       make_nmb_name(&called , "*SMBSERVER", 0x20, "");
+                       make_nmb_name(&called , "*SMBSERVER", 0x20);
                        goto again;
                }
                return NULL;
@@ -517,6 +516,7 @@ static void parse_mount_smb(int argc, char **argv)
        char *opteq;
        extern char *optarg;
        int val;
+       extern pstring global_scope;
 
        if (argc < 2 || argv[1][0] == '-') {
                usage();
@@ -591,7 +591,7 @@ static void parse_mount_smb(int argc, char **argv)
                        } else if(!strcmp(opts, "sockopt")) {
                                pstrcpy(user_socket_options,opteq+1);
                        } else if(!strcmp(opts, "scope")) {
-                               pstrcpy(scope,opteq+1);
+                               pstrcpy(global_scope,opteq+1);
                        } else {
                                usage();
                                exit(1);
index 3dfa90f7a4789181d185a81799d83a8a08e01a82..dd1d17d71a77dfde1f028492fcc53350177001ec 100644 (file)
@@ -242,8 +242,8 @@ smb_connect(char *workgroup,                /* I - Workgroup */
 
   ip = ipzero;
 
-  make_nmb_name(&calling, myname, 0x0, "");
-  make_nmb_name(&called, server, 0x20, "");
+  make_nmb_name(&calling, myname, 0x0);
+  make_nmb_name(&called, server, 0x20);
 
  /*
   * Open a new connection to the SMB server...
index 4354447acd63419668d5687eef09951fdf132654..0388ef6911326b74bbf6317652d0a2f1a1e3fce7 100644 (file)
@@ -682,7 +682,7 @@ void free_packet(struct packet_struct *packet);
 struct packet_struct *parse_packet(char *buf,int length,
                                   enum packet_type packet_type);
 struct packet_struct *read_packet(int fd,enum packet_type packet_type);
-void make_nmb_name( struct nmb_name *n, const char *name, int type, const char *this_scope );
+void make_nmb_name( struct nmb_name *n, const char *name, int type);
 BOOL nmb_name_equal(struct nmb_name *n1, struct nmb_name *n2);
 int build_packet(char *buf, struct packet_struct *p);
 BOOL send_packet(struct packet_struct *p);
index c755a35fb4add4b2377f216913f784b401e8fb78..13bf7eb5f727400b65fd74de2d58804043423229 100644 (file)
@@ -26,7 +26,6 @@
 #include "trans2.h"
 
 extern int DEBUGLEVEL;
-extern pstring scope;
 extern pstring global_myname;
 
 struct msrpc_use
index a7c322c0a0f6082fd715789b5421f8a4f51816e4..5063dab9c4e0a3ddf6d393884597cd1972dfcf7d 100644 (file)
@@ -58,8 +58,6 @@ extern SSL  *ssl;
 extern int  sslFd;
 #endif  /* WITH_SSL */
 
-pstring scope = "";
-
 extern int DEBUGLEVEL;
 
 int Protocol = PROTOCOL_COREPLUS;
@@ -297,6 +295,7 @@ int name_mangle( char *In, char *Out, char name_type )
   int   len;
   char  buf[20];
   char *p = Out;
+  extern pstring global_scope;
 
   /* Safely copy the input string, In, into buf[]. */
   (void)memset( buf, 0, 20 );
@@ -320,9 +319,9 @@ int name_mangle( char *In, char *Out, char name_type )
   p[0] = '\0';
 
   /* Add the scope string. */
-  for( i = 0, len = 0; NULL != scope; i++, len++ )
+  for( i = 0, len = 0; NULL != global_scope; i++, len++ )
     {
-    switch( scope[i] )
+    switch( global_scope[i] )
       {
       case '\0':
         p[0]     = len;
@@ -335,7 +334,7 @@ int name_mangle( char *In, char *Out, char name_type )
         len  = -1;
         break;
       default:
-        p[len+1] = scope[i];
+        p[len+1] = global_scope[i];
         break;
       }
     }
index 1e230e2ff5dce0fd7e85591ff305be4050b1b734..0436fb9df5e3b626e334e468d711b08b97912be3 100644 (file)
@@ -27,7 +27,6 @@
 
 extern int DEBUGLEVEL;
 extern pstring user_socket_options;
-extern pstring scope;
 
 static void cli_process_oplock(struct cli_state *cli);
 
@@ -3223,7 +3222,7 @@ BOOL attempt_netbios_session_request(struct cli_state *cli, char *srchost, char
 {
   struct nmb_name calling, called;
 
-  make_nmb_name(&calling, srchost, 0x0, scope);
+  make_nmb_name(&calling, srchost, 0x0);
 
   /*
    * If the called name is an IP address
@@ -3231,9 +3230,9 @@ BOOL attempt_netbios_session_request(struct cli_state *cli, char *srchost, char
    */
 
   if(is_ipaddress(desthost))
-    make_nmb_name(&called, "*SMBSERVER", 0x20, scope);
+    make_nmb_name(&called, "*SMBSERVER", 0x20);
   else
-    make_nmb_name(&called, desthost, 0x20, scope);
+    make_nmb_name(&called, desthost, 0x20);
 
   if (!cli_session_request(cli, &calling, &called)) {
     struct nmb_name smbservername;
@@ -3245,7 +3244,7 @@ BOOL attempt_netbios_session_request(struct cli_state *cli, char *srchost, char
 
     cli_shutdown(cli);
 
-    make_nmb_name(&smbservername , "*SMBSERVER", 0x20, scope);
+    make_nmb_name(&smbservername , "*SMBSERVER", 0x20);
 
     if (!nmb_name_equal(&called, &smbservername) ||
         !cli_initialise(cli) ||
index 3898a721c694d3413f0c20fd4e937fd9b6a7aaf0..08f26f10d578ba850d38adb256f5008bfa6d6ef2 100644 (file)
@@ -22,7 +22,6 @@
 
 #include "includes.h"
 
-extern pstring scope;
 extern int DEBUGLEVEL;
 
 /* nmbd.c sets this to True. */
@@ -131,7 +130,7 @@ static BOOL internal_name_status(int fd,char *name,int name_type,BOOL recurse,
   nmb->header.nscount = 0;
   nmb->header.arcount = 0;
 
-  make_nmb_name(&nmb->question.question_name,name,name_type,scope);
+  make_nmb_name(&nmb->question.question_name,name,name_type);
 
   nmb->question.question_type = 0x21;
   nmb->question.question_class = 0x1;
@@ -238,7 +237,7 @@ struct in_addr *name_query(int fd,const char *name,int name_type,
   nmb->header.nscount = 0;
   nmb->header.arcount = 0;
 
-  make_nmb_name(&nmb->question.question_name,name,name_type,scope);
+  make_nmb_name(&nmb->question.question_name,name,name_type);
 
   nmb->question.question_type = 0x20;
   nmb->question.question_class = 0x1;
@@ -781,8 +780,8 @@ BOOL lookup_pdc_name(const char *srcname, const char *domain, struct in_addr *pd
        dgram->header.dgm_length = 0; /* Let build_dgram() handle this. */
        dgram->header.packet_offset = 0;
        
-       make_nmb_name(&dgram->source_name,srcname,0,scope);
-       make_nmb_name(&dgram->dest_name,domain,0x1B,scope);
+       make_nmb_name(&dgram->source_name,srcname,0);
+       make_nmb_name(&dgram->dest_name,domain,0x1B);
        
        ptr = &dgram->data[0];
        
index 9ddfd3a6c665ede7a7db35a70733f3fbae92a034..e2ba79b0061d512dc81c143a93a7274d4e0788dc 100644 (file)
@@ -819,13 +819,14 @@ static int build_dgram(char *buf,struct packet_struct *p)
 /*******************************************************************
   build a nmb name
  *******************************************************************/
-void make_nmb_name( struct nmb_name *n, const char *name, int type, const char *this_scope )
+void make_nmb_name( struct nmb_name *n, const char *name, int type)
 {
+       extern pstring global_scope;
        memset( (char *)n, '\0', sizeof(struct nmb_name) );
        StrnCpy( n->name, name, 15 );
        strupper( n->name );
        n->name_type = (unsigned int)type & 0xFF;
-       StrnCpy( n->scope, this_scope, 63 );
+       StrnCpy( n->scope, global_scope, 63 );
        strupper( n->scope );
 }
 
index b0b1188f3210e3c944653955acf7c3ef9596d7cc..335d9a7d1ab9bdd230bf5c015c67ffaffdce2f5d 100644 (file)
@@ -23,7 +23,6 @@
 
 
 extern pstring global_myname;
-extern pstring scope;
 
 /*************************************************************
 change a password on a remote machine using IPC calls
@@ -52,8 +51,8 @@ BOOL remote_password_change(const char *remote_machine, const char *user_name,
                return False;
        }
   
-       make_nmb_name(&calling, global_myname , 0x0 , scope);
-       make_nmb_name(&called , remote_machine, 0x20, scope);
+       make_nmb_name(&calling, global_myname , 0x0);
+       make_nmb_name(&called , remote_machine, 0x20);
        
        if (!cli_session_request(&cli, &calling, &called)) {
                slprintf(err_str, err_str_len-1, "machine %s rejected the session setup. Error was : %s.\n",
index 5bb3d7fc00dbd6c18f3e51b3e842525b852a7d04..cf472d579d7091700be6aead1b1dec83b55da2c0 100644 (file)
@@ -32,8 +32,6 @@ extern int DEBUGLEVEL;
 extern pstring debugf;
 pstring servicesf = CONFIGFILE;
 
-extern pstring scope;
-
 int ClientNMB       = -1;
 int ClientDGRAM     = -1;
 int global_nmb_port = -1;
@@ -606,7 +604,7 @@ static void usage(char *pname)
 {
 
   printf( "Usage: %s [-DaohV] [-H lmhosts file] [-d debuglevel] [-l log basename]\n", pname );
-  printf( "       [-n name] [-p port] [-s configuration file] [-i scope]\n" );
+  printf( "       [-n name] [-p port] [-s configuration file]\n" );
   printf( "\t-D                    Become a daemon\n" );
   printf( "\t-a                    Append to log file (default)\n" );
   printf( "\t-o                    Overwrite log file, don't append\n" );
@@ -618,7 +616,6 @@ static void usage(char *pname)
   printf( "\t-n netbiosname.       Primary netbios name\n" );
   printf( "\t-p port               Listen on the specified port\n" );
   printf( "\t-s configuration file Configuration file name\n" );
-  printf( "\t-i scope              NetBIOS scope\n" );
   printf( "\n");
 } /* usage */
 
@@ -686,7 +683,7 @@ static void usage(char *pname)
 #endif /* SIGUSR2 */
 
   while( EOF != 
-         (opt = getopt( argc, argv, "Vaos:T:I:C:bAi:B:N:Rn:l:d:Dp:hSH:G:f:" )) )
+         (opt = getopt( argc, argv, "Vaos:T:I:C:bAB:N:Rn:l:d:Dp:hSH:G:f:" )) )
     {
       switch (opt)
         {
@@ -710,10 +707,6 @@ static void usage(char *pname)
         case 'l':
           slprintf(debugf,sizeof(debugf)-1, "%s.nmb",optarg);
           break;
-        case 'i':
-          pstrcpy(scope,optarg);
-          strupper(scope);
-          break;
         case 'a':
           append_log = True;
           break;
index ae809607dc61310df4e9c488dfb6183dd228bc75..76d92c2f3ed9b3a378020b950792351cafeb4857 100644 (file)
@@ -26,7 +26,6 @@
 
 extern int DEBUGLEVEL;
 
-extern pstring scope;
 extern pstring global_myname;
 extern fstring global_myworkgroup;
 extern char **my_netbios_names;
@@ -133,7 +132,7 @@ in workgroup %s on subnet %s\n",
        will stop us syncing with ourself if we are also
        a local master browser. */
 
-    make_nmb_name(&nmbname, global_myname, 0x20, scope);
+    make_nmb_name(&nmbname, global_myname, 0x20);
 
     work->dmb_name = nmbname;
     /* Pick the first interface ip address as the domain master browser ip. */
@@ -282,7 +281,7 @@ static void become_domain_master_browser_bcast(char *workgroup_name)
     if (work && (work->dom_state == DOMAIN_NONE))
     {
       struct nmb_name nmbname;
-      make_nmb_name(&nmbname,workgroup_name,0x1b,scope);
+      make_nmb_name(&nmbname,workgroup_name,0x1b);
 
       /*
        * Check for our name on the given broadcast subnet first, only initiate
@@ -330,7 +329,7 @@ static void become_domain_master_browser_wins(char *workgroup_name)
   {
     struct nmb_name nmbname;
 
-    make_nmb_name(&nmbname,workgroup_name,0x1b,scope);
+    make_nmb_name(&nmbname,workgroup_name,0x1b);
 
     /*
      * Check for our name on the unicast subnet first, only initiate
index f3fa69132e90e952071deddece43d9a3c5ae032d..31c67ae7f3f46d87289cc8eaf582a6a245157176 100644 (file)
@@ -25,7 +25,6 @@
 #include "includes.h"
 
 extern int DEBUGLEVEL;
-extern pstring scope;
 extern pstring global_myname;
 
 extern uint16 samba_nb_type; /* Samba's NetBIOS name type. */
@@ -126,7 +125,7 @@ in workgroup %s on subnet %s\n",
    * master browser.
    */
 
-  make_nmb_name(&nmbname, work->work_group, 0x1d, scope);
+  make_nmb_name(&nmbname, work->work_group, 0x1d);
 
   remove_permanent_name_from_unicast( subrec, &nmbname);
 
@@ -208,7 +207,7 @@ static void release_1d_name( struct subnet_record *subrec, char *workgroup_name,
   struct nmb_name nmbname;
   struct name_record *namerec;
 
-  make_nmb_name(&nmbname, workgroup_name, 0x1d, scope);
+  make_nmb_name(&nmbname, workgroup_name, 0x1d);
   if((namerec = find_name_on_subnet( subrec, &nmbname, FIND_SELF_NAME))!=NULL)
   {
     struct userdata_struct *userdata;
@@ -308,7 +307,7 @@ in workgroup %s on subnet %s\n",
   release_1d_name( subrec, work->work_group, force_new_election);
 
   /* Deregister any browser names we may have. */
-  make_nmb_name(&nmbname, MSBROWSE, 0x1, scope);
+  make_nmb_name(&nmbname, MSBROWSE, 0x1);
   if((namerec = find_name_on_subnet( subrec, &nmbname, FIND_SELF_NAME))!=NULL)
   {
     release_name(subrec, namerec,
index b177fb524e9876a20d1c7f0835f8d776458657bd..23ca0a398f521ddd854e7aac5857acd0e1a9794c 100644 (file)
@@ -26,7 +26,6 @@
 #include "smb.h"
 
 extern int DEBUGLEVEL;
-extern pstring scope;
 extern struct in_addr ipzero;
 extern pstring global_myname;
 extern fstring global_myworkgroup;
@@ -226,7 +225,7 @@ static void domain_master_node_status_success(struct subnet_record *subrec,
       {
         struct nmb_name nmbname;
 
-        make_nmb_name(&nmbname, qname, name_type, scope);
+        make_nmb_name(&nmbname, qname, name_type);
 
         /* Copy the dmb name and IP address
            into the workgroup struct. */
@@ -324,8 +323,7 @@ static void find_domain_master_name_query_success(struct subnet_record *subrec,
     putip((char *)&work->dmb_addr, &ipzero);
 
   /* Now initiate the node status request. */
-  memset((char *)&nmbname, '\0',sizeof(nmbname));
-  nmbname.name[0] = '*';
+  make_nmb_name(&nmbname,"*",0x0);
 
   /* Put the workgroup name into the userdata so we know
      what workgroup we're talking to when the reply comes
@@ -391,7 +389,7 @@ void announce_and_sync_with_domain_master_browser( struct subnet_record *subrec,
     return;
   }
 
-  make_nmb_name(&nmbname,work->work_group,0x1b,scope);
+  make_nmb_name(&nmbname,work->work_group,0x1b);
 
   /* First, query for the WORKGROUP<1b> name from the WINS server. */
   query_name(unicast_subnet, nmbname.name, nmbname.name_type,
@@ -486,7 +484,7 @@ static void get_domain_master_name_node_status_success(struct subnet_record *sub
 
                /* remember who the master is */
                fstrcpy(work->local_master_browser_name, server_name);
-               make_nmb_name(&nmbname, server_name, 0x20, scope);
+               make_nmb_name(&nmbname, server_name, 0x20);
                work->dmb_name = nmbname;
                work->dmb_addr = from_ip;
         }
@@ -549,8 +547,7 @@ static void find_all_domain_master_names_query_success(struct subnet_record *sub
   for(i = 0; i < rrec->rdlength / 6; i++)
   {
     /* Initiate the node status requests. */
-    memset((char *)&nmbname, '\0', sizeof(nmbname));
-    nmbname.name[0] = '*';
+    make_nmb_name(&nmbname, "*", 0);
 
     putip((char *)&send_ip, (char *)&rrec->rdata[(i*6) + 2]);
 
@@ -636,7 +633,7 @@ void collect_all_workgroup_names_from_wins_server(time_t t)
      
   lastrun = t;
 
-  make_nmb_name(&nmbname,"*",0x1b,scope);
+  make_nmb_name(&nmbname,"*",0x1b);
 
   /* First, query for the *<1b> name from the WINS server. */
   query_name(unicast_subnet, nmbname.name, nmbname.name_type,
@@ -694,7 +691,7 @@ void sync_all_dmbs(time_t t)
                                   the same as the unicast local master */
                                make_nmb_name(&work->dmb_name, 
                                              work->local_master_browser_name,
-                                             0x20, scope);
+                                             0x20);
                        }
 
                        DEBUG(3,("Initiating DMB<->DMB sync with %s(%s)\n",
index 8e1605dbba9f15bdcf6a0b9f10964a12b9397bbf..be38b572f666687667f19f294c0196b563f7ef4d 100644 (file)
@@ -26,8 +26,6 @@
 
 extern int DEBUGLEVEL;
 
-extern pstring scope;
-
 extern pstring global_myname;
 extern fstring global_myworkgroup;
 
@@ -194,7 +192,7 @@ void run_elections(time_t t)
          */
         struct nmb_name nmbname;
 
-        make_nmb_name(&nmbname, work->work_group, 0x1e, scope);
+        make_nmb_name(&nmbname, work->work_group, 0x1e);
         if(find_name_on_subnet( subrec, &nmbname, FIND_SELF_NAME)==NULL) {
           DEBUG(8,("run_elections: Cannot send election packet yet as name %s not \
 yet registered on subnet %s\n", nmb_namestr(&nmbname), subrec->subnet_name ));
@@ -365,7 +363,7 @@ BOOL check_elections(void)
          */
         struct nmb_name nmbname;
 
-        make_nmb_name(&nmbname, work->work_group, 0x1e, scope);
+        make_nmb_name(&nmbname, work->work_group, 0x1e);
         if(find_name_on_subnet( subrec, &nmbname, FIND_SELF_NAME)==NULL) {
           DEBUG(8,("check_elections: Cannot send election packet yet as name %s not \
 yet registered on subnet %s\n", nmb_namestr(&nmbname), subrec->subnet_name ));
index 471a64377d71aa847df0eff688531ececd7b9f78..c63de56a34a734bc57e2b68c50903366edfe9fcf 100644 (file)
@@ -26,7 +26,6 @@
 
 extern int DEBUGLEVEL;
 
-extern pstring scope;
 extern pstring global_myname;
 extern fstring global_myworkgroup;
 extern char **my_netbios_names;
@@ -152,7 +151,7 @@ void add_logon_names(void)
     if (work && (work->log_state == LOGON_NONE))
     {
       struct nmb_name nmbname;
-      make_nmb_name(&nmbname,global_myworkgroup,0x1c,scope);
+      make_nmb_name(&nmbname,global_myworkgroup,0x1c);
 
       if (find_name_on_subnet(subrec, &nmbname, FIND_SELF_NAME) == NULL)
       {
index c36df21e7b0e17faf8bd21c4fe3fb6369cc042c4..7ea8ffc9465697d02d6c6b8dc976d7836a3c7d51 100644 (file)
@@ -28,7 +28,6 @@ extern int DEBUGLEVEL;
 
 extern char **my_netbios_names;
 extern fstring global_myworkgroup;
-extern pstring scope;
 
 extern uint16 samba_nb_type; /* Samba's NetBIOS type. */
 
@@ -119,13 +118,13 @@ BOOL register_my_workgroup_and_names(void)
          */
         struct nmb_name nmbname;
 
-        make_nmb_name(&nmbname, my_netbios_names[i],0x20, scope);
+        make_nmb_name(&nmbname, my_netbios_names[i],0x20);
         insert_permanent_name_into_unicast(subrec, &nmbname, samba_nb_type);
 
-        make_nmb_name(&nmbname, my_netbios_names[i],0x3, scope);
+        make_nmb_name(&nmbname, my_netbios_names[i],0x3);
         insert_permanent_name_into_unicast(subrec, &nmbname, samba_nb_type);
 
-        make_nmb_name(&nmbname, my_netbios_names[i],0x0, scope);
+        make_nmb_name(&nmbname, my_netbios_names[i],0x0);
         insert_permanent_name_into_unicast(subrec, &nmbname, samba_nb_type);
       }
     }
@@ -142,10 +141,10 @@ BOOL register_my_workgroup_and_names(void)
        */
       struct nmb_name nmbname;
 
-      make_nmb_name(&nmbname, global_myworkgroup, 0x0, scope);
+      make_nmb_name(&nmbname, global_myworkgroup, 0x0);
       insert_permanent_name_into_unicast(subrec, &nmbname, samba_nb_type|NB_GROUP);
 
-      make_nmb_name(&nmbname, global_myworkgroup, 0x1e, scope);
+      make_nmb_name(&nmbname, global_myworkgroup, 0x1e);
       insert_permanent_name_into_unicast(subrec, &nmbname, samba_nb_type|NB_GROUP);
     }
   }
index e2433f42d3d1eccd028beeff93c1ccd8c2f15ebf..15328af33eba4a3728d049c3116edb297a440de0 100644 (file)
@@ -26,7 +26,6 @@
 
 extern int DEBUGLEVEL;
 
-extern pstring scope;
 extern char **my_netbios_names;
 
 uint16 samba_nb_type = 0; /* samba's NetBIOS name type */
@@ -213,8 +212,8 @@ struct name_record *add_name_to_subnet( struct subnet_record *subrec,
 
   namerec->subnet = subrec;
 
-  make_nmb_name( &namerec->name, name, type, scope );
-  upcase_name( &namerec->name, NULL );
+  make_nmb_name(&namerec->name, name, type);
+  upcase_name(&namerec->name, NULL );
 
   /* Enter the name as active. */
   namerec->data.nb_flags = nb_flags | NB_ACTIVE;
index 8c4155484212a69864cf90bc5595440be55c9c03..57baa4cb2f027cc4376199035c03c4144b63ccd9 100644 (file)
@@ -26,8 +26,6 @@
 
 extern int DEBUGLEVEL;
 
-extern pstring scope;
-
 /****************************************************************************
  Deal with a response packet when querying a name.
 ****************************************************************************/
@@ -180,7 +178,7 @@ BOOL query_name(struct subnet_record *subrec, char *name, int type,
   struct nmb_name nmbname;
   struct name_record *namerec;
 
-  make_nmb_name(&nmbname, name, type, scope);
+  make_nmb_name(&nmbname, name, type);
 
   /*
    * We need to check our local namelists first.
@@ -247,7 +245,7 @@ BOOL query_name_from_wins_server(struct in_addr ip_to,
 {
   struct nmb_name nmbname;
 
-  make_nmb_name(&nmbname, name, type, scope);
+  make_nmb_name(&nmbname, name, type);
 
   if(queue_query_name_from_wins_server( ip_to,
         query_name_response,
index 1e819cc88f6b718a8dd132f33516066c7726c058..88057287372f2546c9dbe96213207cecae40280e 100644 (file)
@@ -26,7 +26,6 @@
 
 extern int DEBUGLEVEL;
 
-extern pstring scope;
 extern fstring global_myworkgroup;
 
 /****************************************************************************
@@ -333,7 +332,7 @@ BOOL register_name(struct subnet_record *subrec,
 {
   struct nmb_name nmbname;
 
-  make_nmb_name(&nmbname, name, type, scope);
+  make_nmb_name(&nmbname, name, type);
 
   /* Always set the NB_ACTIVE flag on the name we are
      registering. Doesn't make sense without it.
index 1cdc78e6a0bd8d3cf6a9e9a0cf442713467e495a..2e3b4e8c6ac8a2fad73ab5180abfd221729cabc9 100644 (file)
@@ -26,8 +26,6 @@
 
 extern int DEBUGLEVEL;
 
-extern pstring scope;
-
 /****************************************************************************
  Deal with a response packet when releasing one of our names.
 ****************************************************************************/
index d8af09b39844826d99b9464c00cb65dbc4ff58f4..d78f8a5547a59e39576c1b0a34820c1304a39b63 100644 (file)
@@ -26,8 +26,6 @@
 
 extern int DEBUGLEVEL;
 
-extern pstring scope;
-
 /****************************************************************************
  Deal with a successful node status response.
 ****************************************************************************/
index 3bf009f2c291a3577924aea331b221d7880fdccd..428758ada3c5678e72846e0cb896cd571a804d9a 100644 (file)
@@ -32,7 +32,6 @@ extern int DEBUGLEVEL;
 
 extern int num_response_packets;
 
-extern pstring scope;
 extern struct in_addr loopback_ip;
 
 static void queue_packet(struct packet_struct *packet);
@@ -1026,14 +1025,15 @@ static void process_browse_packet(struct packet_struct *p, char *buf,int len)
   struct dgram_packet *dgram = &p->packet.dgram;
   int command = CVAL(buf,0);
   struct subnet_record *subrec = find_subnet_for_dgram_browse_packet(p);
+  extern pstring global_scope;
 
   /* Drop the packet if it's a different NetBIOS scope, or
      the source is from one of our names. */
 
-  if (!strequal(dgram->dest_name.scope,scope ))
+  if (!strequal(dgram->dest_name.scope, global_scope))
   {
     DEBUG(7,("process_browse_packet: Discarding datagram from IP %s. Scope (%s) \
-mismatch with our scope (%s).\n", inet_ntoa(p->ip), dgram->dest_name.scope, scope));
+mismatch with our scope (%s).\n", inet_ntoa(p->ip), dgram->dest_name.scope, global_scope));
     return;
   }
 
@@ -1138,14 +1138,15 @@ static void process_lanman_packet(struct packet_struct *p, char *buf,int len)
   struct dgram_packet *dgram = &p->packet.dgram;
   int command = SVAL(buf,0);
   struct subnet_record *subrec = find_subnet_for_dgram_browse_packet(p);
+  extern pstring global_scope;
 
   /* Drop the packet if it's a different NetBIOS scope, or
      the source is from one of our names. */
 
-  if (!strequal(dgram->dest_name.scope,scope ))
+  if (!strequal(dgram->dest_name.scope, global_scope))
   {
     DEBUG(7,("process_lanman_packet: Discarding datagram from IP %s. Scope (%s) \
-mismatch with our scope (%s).\n", inet_ntoa(p->ip), dgram->dest_name.scope, scope));
+mismatch with our scope (%s).\n", inet_ntoa(p->ip), dgram->dest_name.scope, global_scope));
     return;
   }
 
@@ -1927,8 +1928,8 @@ BOOL send_mailslot(BOOL unique, char *mailslot,char *buf,int len,
   dgram->header.dgm_length = 0; /* Let build_dgram() handle this. */
   dgram->header.packet_offset = 0;
   
-  make_nmb_name(&dgram->source_name,srcname,src_type,scope);
-  make_nmb_name(&dgram->dest_name,dstname,dest_type,scope);
+  make_nmb_name(&dgram->source_name,srcname,src_type);
+  make_nmb_name(&dgram->dest_name,dstname,dest_type);
 
   ptr = &dgram->data[0];
 
index fe294647732d492a03c3f5f31e16dea1178af636..1b6e1ca16dbb42fcaa549a2b73ba1ace9cad61d8 100644 (file)
@@ -28,7 +28,6 @@ extern int ClientNMB;
 
 extern int DEBUGLEVEL;
 
-extern pstring scope;
 extern struct in_addr ipzero;
 
 int num_response_packets = 0;
index fb51be4d8f2306b2a67e96ecf1f1806dcad17516..7bf17903778be98a0a3eda8d842d727b08ef6083 100644 (file)
@@ -32,7 +32,6 @@
 #include "smb.h"
 
 extern int DEBUGLEVEL;
-extern pstring scope;
 
 struct sync_record {
        struct sync_record *next, *prev;
@@ -77,8 +76,8 @@ static void sync_child(char *name, int nm_type,
                return;
        }
 
-       make_nmb_name(&calling, local_machine, 0x0    , scope);
-       make_nmb_name(&called , name         , nm_type, scope);
+       make_nmb_name(&calling, local_machine, 0x0);
+       make_nmb_name(&called , name         , nm_type);
 
        if (!cli_session_request(&cli, &calling, &called))
        {
index 2d2cd9db35d60ae6c8f0f150c22275d7416249bd..fed05b53a128ef7619f75e891c05a307b52fc15e 100644 (file)
@@ -71,6 +71,7 @@ BOOL bLoaded = False;
 extern int DEBUGLEVEL;
 extern pstring user_socket_options;
 extern pstring global_myname;
+pstring global_scope = "";
 
 #ifndef GLOBAL_NAME
 #define GLOBAL_NAME "global"
@@ -542,6 +543,7 @@ static struct parm_struct parm_table[] =
   {"workgroup",        P_USTRING, P_GLOBAL, &Globals.szWorkGroup,       NULL,   NULL,  FLAG_BASIC|FLAG_DOS_STRING},
   {"netbios name",     P_UGSTRING,P_GLOBAL, global_myname,                     NULL,   NULL,  FLAG_BASIC|FLAG_DOS_STRING},
   {"netbios aliases",  P_STRING,  P_GLOBAL, &Globals.szNetbiosAliases,  NULL,   NULL,  FLAG_DOS_STRING},
+  {"netbios scope",    P_UGSTRING,P_GLOBAL, global_scope,               NULL,   NULL,  0},
   {"server string",    P_STRING,  P_GLOBAL, &Globals.szServerString,    NULL,   NULL,  FLAG_BASIC|FLAG_DOS_STRING},
   {"interfaces",       P_STRING,  P_GLOBAL, &Globals.szInterfaces,      NULL,   NULL,  FLAG_BASIC},
   {"bind interfaces only", P_BOOL,P_GLOBAL, &Globals.bBindInterfacesOnly,NULL,   NULL,  0},
index 583b4bb4b89b13226d50490d10e013d4c771b1f2..dab4aa7ad58bd75a527889a3ed719b7379e7dfb3 100644 (file)
@@ -30,7 +30,6 @@
 #include "includes.h"
 
 extern int DEBUGLEVEL;
-extern pstring scope;
 extern pstring global_myname;
 extern fstring global_myworkgroup;
 
index 2931356334b70ed05cd01302585cd2fe035bda02..6dc3cdb25b1d9f92f2b490ace7923e25c17fdb72 100644 (file)
@@ -30,7 +30,6 @@
 #endif
 
 extern pstring debugf;
-extern pstring scope;
 extern pstring global_myname;
 
 extern pstring user_socket_options;
@@ -71,8 +70,8 @@ static BOOL rpcclient_connect(struct client_info *info)
        struct nmb_name calling;
        struct nmb_name called;
 
-       make_nmb_name(&called , dns_to_netbios_name(info->dest_host ), info->name_type, scope);
-       make_nmb_name(&calling, dns_to_netbios_name(info->myhostname), 0x0            , scope);
+       make_nmb_name(&called , dns_to_netbios_name(info->dest_host ), info->name_type);
+       make_nmb_name(&calling, dns_to_netbios_name(info->myhostname), 0x0            );
 
        if (!cli_establish_connection(smb_cli, 
                                  info->dest_host, &info->dest_ip, 
@@ -573,7 +572,9 @@ enum client_action
 
                        case 'i':
                        {
-                               pstrcpy(scope, optarg);
+                               extern pstring global_scope;
+                               pstrcpy(global_scope, optarg);
+                               strupper(global_scope);
                                break;
                        }
 
index e7f7f2c03906d24107ea1f5e4be39bd762c5af60..44fbdfa8ec465bcf19627c5a2bc754337468f00f 100644 (file)
@@ -28,7 +28,6 @@ extern struct in_addr ipzero;
 /* users from session setup */
 static pstring session_users="";
 
-extern pstring scope;
 extern pstring global_myname;
 extern fstring global_myworkgroup;
 
index 716f555c655230edb2fb2b7694d3c3b0b401c05c..79d37e5093317a4ca75cc82227ccf59273f99ab0 100644 (file)
@@ -35,7 +35,6 @@ int last_message = -1;
 /* a useful macro to debug the last message processed */
 #define LAST_MESSAGE() smb_fn_name(last_message)
 
-extern pstring scope;
 extern int DEBUGLEVEL;
 
 extern pstring user_socket_options;
@@ -478,7 +477,7 @@ static void usage(char *pname)
 {
 
        printf("Usage: %s [-DaoPh?V] [-d debuglevel] [-l log basename] [-p port]\n", pname);
-       printf("       [-O socket options] [-s services file] [-i scope]\n");
+       printf("       [-O socket options] [-s services file]\n");
        printf("\t-D                    Become a daemon\n");
        printf("\t-a                    Append to log file (default)\n");
        printf("\t-o                    Overwrite log file, don't append\n");
@@ -491,7 +490,6 @@ static void usage(char *pname)
        printf("\t-p port               Listen on the specified port\n");
        printf("\t-O socket options     Socket options\n");
        printf("\t-s services file.     Filename of services file\n");
-       printf("\t-i scope              NetBIOS scope to use (default none)\n");
        printf("\n");
 }
 
@@ -520,16 +518,12 @@ static void usage(char *pname)
                argc--;
        }
 
-       while ( EOF != (opt = getopt(argc, argv, "O:i:l:s:d:Dp:h?VPaof:")) )
+       while ( EOF != (opt = getopt(argc, argv, "O:l:s:d:Dp:h?VPaof:")) )
                switch (opt)  {
                case 'O':
                        pstrcpy(user_socket_options,optarg);
                        break;
 
-               case 'i':
-                       pstrcpy(scope,optarg);
-                       break;
-
                case 'P':
                        {
                                extern BOOL passive;
index 6214c0e45b83b9b8732d04e6a5b49a2d0c63a3d6..8e26a206ca26ea188c4792f7eea27945e04a8bc3 100644 (file)
@@ -26,8 +26,6 @@
 
 extern int DEBUGLEVEL;
 
-extern pstring scope;
-
 extern struct in_addr ipzero;
 
 static BOOL use_bcast = True;
@@ -178,9 +176,12 @@ int main(int argc,char *argv[])
         translate_addresses = !translate_addresses;
        break;
       case 'i':
-       fstrcpy(scope,optarg);
-       strupper(scope);
-       break;
+             {
+                     extern pstring global_scope;
+                     pstrcpy(global_scope,optarg);
+                     strupper(global_scope);
+             }
+             break;
       case 'M':
        find_master = True;
        break;
index fb08d70011eba3f75c44be30c316f1ba7eb285a3..c80cfe4adea151683e5776c0dbd38d590d33441d 100644 (file)
@@ -29,7 +29,6 @@
 #define REGISTER 0
 #endif
 
-extern pstring scope;
 extern pstring global_myname;
 
 extern pstring user_socket_options;
@@ -69,8 +68,8 @@ static BOOL rpcclient_connect(struct client_info *info)
        struct nmb_name calling;
        struct nmb_name called;
 
-       make_nmb_name(&called , dns_to_netbios_name(info->dest_host ), info->name_type, scope);
-       make_nmb_name(&calling, dns_to_netbios_name(info->myhostname), 0x0            , scope);
+       make_nmb_name(&called , dns_to_netbios_name(info->dest_host ), info->name_type);
+       make_nmb_name(&calling, dns_to_netbios_name(info->myhostname), 0x0);
 
        if (!cli_establish_connection(smb_cli, 
                                  info->dest_host, &info->dest_ip,