r5165: BUG 2295: always use get_local_machine_name() rather than digging in the glova...
authorGerald Carter <jerry@samba.org>
Tue, 1 Feb 2005 20:43:14 +0000 (20:43 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 15:55:31 +0000 (10:55 -0500)
(This used to be commit 6a6e4af46a5c0a693a3dd9d558a4d1c1e5d72d95)

source3/smbd/ipc.c
source3/smbd/lanman.c
source3/smbd/msdfs.c
source3/smbd/trans2.c

index 3f21a2ac6adcdf1ff8eb072009f951575a9d3bc9..e3f6521fba86f407c8763861f2e4da0f44284825 100644 (file)
@@ -29,8 +29,6 @@
 
 extern int max_send;
 
-extern fstring local_machine;
-
 #define NERR_notsupported 50
 
 extern int smb_read_error;
@@ -382,6 +380,7 @@ int reply_trans(connection_struct *conn, char *inbuf,char *outbuf, int size, int
        unsigned int dscnt = SVAL(inbuf,smb_vwv11);
        unsigned int dsoff = SVAL(inbuf,smb_vwv12);
        unsigned int suwcnt = CVAL(inbuf,smb_vwv13);
+       fstring local_machine_name;
        START_PROFILE(SMBtrans);
 
        memset(name, '\0',sizeof(name));
@@ -543,9 +542,11 @@ int reply_trans(connection_struct *conn, char *inbuf,char *outbuf, int size, int
         * WinCE wierdness....
         */
 
-       if (name[0] == '\\' && (StrnCaseCmp(&name[1],local_machine, strlen(local_machine)) == 0) &&
-                       (name[strlen(local_machine)+1] == '\\'))
-               name_offset = strlen(local_machine)+1;
+       fstrcpy( local_machine_name, get_local_machine_name() );
+
+       if (name[0] == '\\' && (StrnCaseCmp(&name[1],local_machine_name, strlen(local_machine_name)) == 0) &&
+                       (name[strlen(local_machine_name)+1] == '\\'))
+               name_offset = strlen(local_machine_name)+1;
 
        if (strnequal(&name[name_offset], "\\PIPE", strlen("\\PIPE"))) {
                name_offset += strlen("\\PIPE");
index 9f2cd2142598b5bff087e3d61660fde7675c5ec8..d8c5201ce679cb3d838796fe525cf405cf7b81be 100644 (file)
@@ -32,8 +32,6 @@
 #endif
 #define CHECK_TYPES 0
 
-extern fstring local_machine;
-
 #define NERR_Success 0
 #define NERR_badpass 86
 #define NERR_notsupported 50
@@ -2372,7 +2370,7 @@ static BOOL api_RNetServerGetInfo(connection_struct *conn,uint16 vuid, char *par
   p = *rdata;
   p2 = p + struct_len;
   if (uLevel != 20) {
-    srvstr_push(NULL, p,local_machine,16, 
+    srvstr_push(NULL, p,get_local_machine_name(),16, 
                STR_ASCII|STR_UPPER|STR_TERMINATE);
   }
   p += 16;
@@ -2387,7 +2385,7 @@ static BOOL api_RNetServerGetInfo(connection_struct *conn,uint16 vuid, char *par
 
       if ((count=get_server_info(SV_TYPE_ALL,&servers,lp_workgroup()))>0) {
        for (i=0;i<count;i++) {
-         if (strequal(servers[i].name,local_machine)) {
+         if (strequal(servers[i].name,get_local_machine_name())) {
            servertype = servers[i].type;
            push_ascii(comment,servers[i].comment,sizeof(pstring),STR_TERMINATE);           
          }
@@ -2460,7 +2458,7 @@ static BOOL api_NetWkstaGetInfo(connection_struct *conn,uint16 vuid, char *param
 
 
   SIVAL(p,0,PTR_DIFF(p2,*rdata)); /* host name */
-  pstrcpy(p2,local_machine);
+  pstrcpy(p2,get_local_machine_name());
   strupper_m(p2);
   p2 = skip_string(p2,1);
   p += 4;
@@ -2881,7 +2879,7 @@ static BOOL api_WWkstaUserLogon(connection_struct *conn,uint16 vuid, char *param
     {
       fstring mypath;
       fstrcpy(mypath,"\\\\");
-      fstrcat(mypath,local_machine);
+      fstrcat(mypath,get_local_machine_name());
       strupper_m(mypath);
       PACKS(&desc,"z",mypath); /* computer */
     }
index b5ae7486d381918f0e746ae89d8a21b98a5ea49d..184dde1635437956a02727fa9e2549b4c277fcc8 100644 (file)
@@ -22,7 +22,6 @@
 
 #include "includes.h"
 
-extern fstring local_machine;
 extern uint32 global_client_caps;
 
 /**********************************************************************
@@ -462,7 +461,7 @@ BOOL get_referred_path(char *pathname, struct junction_map *jucn,
        parse_dfs_path(pathname, &dp);
 
        /* Verify hostname in path */
-       if (local_machine && (!strequal(local_machine, dp.hostname))) {
+       if ( !strequal(get_local_machine_name(), dp.hostname) ) {
                /* Hostname mismatch, check if one of our IP addresses */
                if (!ismyip(*interpret_addr2(dp.hostname))) {
                        DEBUG(3, ("get_referred_path: Invalid hostname %s in path %s\n",
@@ -810,7 +809,7 @@ BOOL create_junction(char* pathname, struct junction_map* jucn)
         parse_dfs_path(pathname,&dp);
 
         /* check if path is dfs : validate first token */
-        if (local_machine && (!strequal(local_machine,dp.hostname))) {
+        if ( !strequal(get_local_machine_name(),dp.hostname) ) {
            
           /* Hostname mismatch, check if one of our IP addresses */
           if (!ismyip(*interpret_addr2(dp.hostname))) {
@@ -978,7 +977,7 @@ static BOOL form_junctions(int snum, struct junction_map* jucn, int* jn_count)
        }
                
        slprintf(ref->alternate_path, sizeof(pstring)-1,
-                "\\\\%s\\%s", local_machine, service_name);
+                "\\\\%s\\%s", get_local_machine_name(), service_name);
        cnt++;
        
        /* Now enumerate all dfs links */
index b5029ccd77016afc2108a57f439b41367e7dab7b..18fd5c946f8703607ff44e174492ed062c28261a 100644 (file)
@@ -25,7 +25,6 @@
 
 extern enum protocol_types Protocol;
 extern int smb_read_error;
-extern fstring local_machine;
 extern int global_oplock_break;
 extern uint32 global_client_caps;
 extern struct current_user current_user;
@@ -1825,7 +1824,7 @@ cBytesSector=%u, cUnitTotal=%u, cUnitAvail=%d\n", (unsigned int)st.st_dev, (unsi
                         * Add volume serial number - hash of a combination of
                         * the called hostname and the service name.
                         */
-                       SIVAL(pdata,0,str_checksum(lp_servicename(snum)) ^ (str_checksum(local_machine)<<16) );
+                       SIVAL(pdata,0,str_checksum(lp_servicename(snum)) ^ (str_checksum(get_local_machine_name())<<16) );
                        len = srvstr_push(outbuf, pdata+l2_vol_szVolLabel, vname, -1, STR_NOALIGN);
                        SCVAL(pdata,l2_vol_cch,len);
                        data_len = l2_vol_szVolLabel + len;
@@ -1868,7 +1867,7 @@ cBytesSector=%u, cUnitTotal=%u, cUnitAvail=%d\n", (unsigned int)st.st_dev, (unsi
                         * the called hostname and the service name.
                         */
                        SIVAL(pdata,8,str_checksum(lp_servicename(snum)) ^ 
-                               (str_checksum(local_machine)<<16));
+                               (str_checksum(get_local_machine_name())<<16));
 
                        len = srvstr_push(outbuf, pdata+18, vname, -1, STR_UNICODE);
                        SIVAL(pdata,12,len);