summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGerald Carter <jerry@samba.org>2005-02-01 20:43:14 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 10:55:31 -0500
commitc1b9243c2892220b906df86d7b021d1bf18571b6 (patch)
tree09d09cfba9f9d9f6bb007301c0294061ff2a3477
parent92bbd3151d2b72ebeef8b79b86b5eab84fad3898 (diff)
downloadsamba-c1b9243c2892220b906df86d7b021d1bf18571b6.tar.gz
samba-c1b9243c2892220b906df86d7b021d1bf18571b6.tar.bz2
samba-c1b9243c2892220b906df86d7b021d1bf18571b6.zip
r5165: BUG 2295: always use get_local_machine_name() rather than digging in the gloval variable 'local_machine'
(This used to be commit 6a6e4af46a5c0a693a3dd9d558a4d1c1e5d72d95)
-rw-r--r--source3/smbd/ipc.c11
-rw-r--r--source3/smbd/lanman.c10
-rw-r--r--source3/smbd/msdfs.c7
-rw-r--r--source3/smbd/trans2.c5
4 files changed, 15 insertions, 18 deletions
diff --git a/source3/smbd/ipc.c b/source3/smbd/ipc.c
index 3f21a2ac6a..e3f6521fba 100644
--- a/source3/smbd/ipc.c
+++ b/source3/smbd/ipc.c
@@ -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");
diff --git a/source3/smbd/lanman.c b/source3/smbd/lanman.c
index 9f2cd21425..d8c5201ce6 100644
--- a/source3/smbd/lanman.c
+++ b/source3/smbd/lanman.c
@@ -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 */
}
diff --git a/source3/smbd/msdfs.c b/source3/smbd/msdfs.c
index b5ae7486d3..184dde1635 100644
--- a/source3/smbd/msdfs.c
+++ b/source3/smbd/msdfs.c
@@ -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 */
diff --git a/source3/smbd/trans2.c b/source3/smbd/trans2.c
index b5029ccd77..18fd5c946f 100644
--- a/source3/smbd/trans2.c
+++ b/source3/smbd/trans2.c
@@ -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);