cvsdist e56dc1b
diff -ur samba-3.0.0rc3/source/lib/popt_common.c samba-3.0.0rc3-lhh/source/lib/popt_common.c
cvsdist e56dc1b
--- samba-3.0.0rc3/source/lib/popt_common.c	2003-09-10 13:57:00.000000000 -0400
cvsdist e56dc1b
+++ samba-3.0.0rc3-lhh/source/lib/popt_common.c	2003-09-11 13:49:24.000000000 -0400
cvsdist e56dc1b
@@ -87,7 +87,7 @@
cvsdist e56dc1b
 
cvsdist e56dc1b
 	case 'n':
cvsdist e56dc1b
 		if (arg) {
cvsdist e56dc1b
-			set_global_myname(arg);
cvsdist e56dc1b
+			set_global_myname_override(arg);
cvsdist e56dc1b
 		}
cvsdist e56dc1b
 		break;
cvsdist e56dc1b
 
cvsdist e56dc1b
diff -ur samba-3.0.0rc3/source/lib/util.c samba-3.0.0rc3-lhh/source/lib/util.c
cvsdist e56dc1b
--- samba-3.0.0rc3/source/lib/util.c	2003-09-08 12:04:35.000000000 -0400
cvsdist e56dc1b
+++ samba-3.0.0rc3-lhh/source/lib/util.c	2003-09-11 13:47:18.000000000 -0400
cvsdist e56dc1b
@@ -84,6 +84,7 @@
cvsdist e56dc1b
 ***********************************************************************/
cvsdist e56dc1b
 
cvsdist e56dc1b
 static char *smb_myname;
cvsdist e56dc1b
+static char *smb_myname_override;
cvsdist e56dc1b
 static char *smb_myworkgroup;
cvsdist e56dc1b
 static char *smb_scope;
cvsdist e56dc1b
 static int smb_num_netbios_names;
cvsdist e56dc1b
@@ -108,6 +109,27 @@
cvsdist e56dc1b
 	return smb_myname;
cvsdist e56dc1b
 }
cvsdist e56dc1b
 
cvsdist e56dc1b
+
cvsdist e56dc1b
+/***********************************************************************
cvsdist e56dc1b
+ Allocate and set override for myname. Ensure upper case.
cvsdist e56dc1b
+***********************************************************************/
cvsdist e56dc1b
+
cvsdist e56dc1b
+BOOL set_global_myname_override(const char *myname)
cvsdist e56dc1b
+{
cvsdist e56dc1b
+	SAFE_FREE(smb_myname_override);
cvsdist e56dc1b
+	smb_myname_override = strdup(myname);
cvsdist e56dc1b
+	if (!smb_myname_override)
cvsdist e56dc1b
+		return False;
cvsdist e56dc1b
+	strupper_m(smb_myname_override);
cvsdist e56dc1b
+	return True;
cvsdist e56dc1b
+}
cvsdist e56dc1b
+
cvsdist e56dc1b
+const char *global_myname_override(void)
cvsdist e56dc1b
+{
cvsdist e56dc1b
+	return smb_myname_override;
cvsdist e56dc1b
+}
cvsdist e56dc1b
+
cvsdist e56dc1b
+
cvsdist e56dc1b
 /***********************************************************************
cvsdist e56dc1b
  Allocate and set myworkgroup. Ensure upper case.
cvsdist e56dc1b
 ***********************************************************************/
cvsdist e56dc1b
diff -ur samba-3.0.0rc3/source/nmbd/nmbd.c samba-3.0.0rc3-lhh/source/nmbd/nmbd.c
cvsdist e56dc1b
--- samba-3.0.0rc3/source/nmbd/nmbd.c	2003-09-10 13:57:00.000000000 -0400
cvsdist e56dc1b
+++ samba-3.0.0rc3-lhh/source/nmbd/nmbd.c	2003-09-11 14:05:21.000000000 -0400
cvsdist e56dc1b
@@ -608,6 +608,7 @@
cvsdist e56dc1b
 	{"hosts", 'H', POPT_ARG_STRING, dyn_LMHOSTSFILE, 'H', "Load a netbios hosts file"},
cvsdist e56dc1b
 	{"port", 'p', POPT_ARG_INT, &global_nmb_port, NMB_PORT, "Listen on the specified port" },
cvsdist e56dc1b
 	POPT_COMMON_SAMBA
cvsdist e56dc1b
+	POPT_COMMON_CONNECTION
cvsdist e56dc1b
 	{ NULL }
cvsdist e56dc1b
 	};
cvsdist e56dc1b
 
cvsdist e56dc1b
diff -ur samba-3.0.0rc3/source/param/loadparm.c samba-3.0.0rc3-lhh/source/param/loadparm.c
cvsdist e56dc1b
--- samba-3.0.0rc3/source/param/loadparm.c	2003-09-08 12:04:35.000000000 -0400
cvsdist e56dc1b
+++ samba-3.0.0rc3-lhh/source/param/loadparm.c	2003-09-11 14:00:51.000000000 -0400
cvsdist e56dc1b
@@ -1327,7 +1327,10 @@
cvsdist e56dc1b
 	 */
cvsdist e56dc1b
 	string_set(&Globals.szPasswdChat, DEFAULT_PASSWD_CHAT);
cvsdist e56dc1b
 	
cvsdist e56dc1b
-	set_global_myname(myhostname());
cvsdist e56dc1b
+	if (!global_myname_override())
cvsdist e56dc1b
+		set_global_myname(myhostname());
cvsdist e56dc1b
+	else
cvsdist e56dc1b
+		set_global_myname(global_myname_override());
cvsdist e56dc1b
 	string_set(&Globals.szNetbiosName,global_myname());
cvsdist e56dc1b
 
cvsdist e56dc1b
 	set_global_myworkgroup(WORKGROUP);
cvsdist e56dc1b
@@ -2698,6 +2701,12 @@
cvsdist e56dc1b
 	BOOL ret;
cvsdist e56dc1b
 	pstring netbios_name;
cvsdist e56dc1b
 
cvsdist e56dc1b
+	if (global_myname_override()) {
cvsdist e56dc1b
+		DEBUG(4, ("handle_netbios_name: ignoring netbios name "
cvsdist e56dc1b
+			  "parameter"));
cvsdist e56dc1b
+		return True;
cvsdist e56dc1b
+	}
cvsdist e56dc1b
+
cvsdist e56dc1b
 	pstrcpy(netbios_name, pszParmValue);
cvsdist e56dc1b
 
cvsdist e56dc1b
 	standard_sub_basic(current_user_info.smb_name, netbios_name,sizeof(netbios_name));