From 348b01ff7734c5db7ce37e0fbeeb0de5f675950f Mon Sep 17 00:00:00 2001 From: Gerald Carter Date: Tue, 11 May 2004 14:54:54 +0000 Subject: r647: fix for setting the called name to by our IP if the called name was *SMBSERVER and *SMBSERV -- fixes issue with connecting to printers via \ip.ad.dr.ess\printer UNC path (This used to be commit 8ee268f0ed0c2f75ded9c2ddd66e0953f443c79e) --- source3/lib/substitute.c | 12 ++++++------ source3/lib/util.c | 18 ------------------ source3/param/loadparm.c | 2 +- 3 files changed, 7 insertions(+), 25 deletions(-) (limited to 'source3') diff --git a/source3/lib/substitute.c b/source3/lib/substitute.c index fed11c2298..44e791b790 100644 --- a/source3/lib/substitute.c +++ b/source3/lib/substitute.c @@ -40,24 +40,24 @@ void set_local_machine_name(const char* local_name, BOOL perm) static BOOL already_perm = False; fstring tmp_local_machine; + fstrcpy(tmp_local_machine,local_name); + trim_char(tmp_local_machine,' ',' '); + /* * Windows NT/2k uses "*SMBSERVER" and XP uses "*SMBSERV" * arrggg!!! */ - if (strequal(local_name, "*SMBSERVER")) - return; - - if (strequal(local_name, "*SMBSERV")) + if ( strequal(tmp_local_machine, "*SMBSERVER") || strequal(tmp_local_machine, "*SMBSERV") ) { + fstrcpy( local_machine, client_socket_addr() ); return; + } if (already_perm) return; already_perm = perm; - fstrcpy(tmp_local_machine,local_name); - trim_char(tmp_local_machine,' ',' '); alpha_strcpy(local_machine,tmp_local_machine,SAFE_NETBIOS_CHARS,sizeof(local_machine)-1); strlower_m(local_machine); } diff --git a/source3/lib/util.c b/source3/lib/util.c index e8ffd9d8d2..9d7a2648c5 100644 --- a/source3/lib/util.c +++ b/source3/lib/util.c @@ -1703,24 +1703,6 @@ BOOL is_myname(const char *s) return(ret); } -/******************************************************************** - Return only the first IP address of our configured interfaces - as a string - *******************************************************************/ - -const char* get_my_primary_ip (void) -{ - static fstring ip_string; - int n; - struct iface_struct nics[MAX_INTERFACES]; - - if ((n=get_interfaces(nics, MAX_INTERFACES)) <= 0) - return NULL; - - fstrcpy(ip_string, inet_ntoa(nics[0].ip)); - return ip_string; -} - BOOL is_myname_or_ipaddr(const char *s) { /* optimize for the common case */ diff --git a/source3/param/loadparm.c b/source3/param/loadparm.c index b378342372..30fbc9713e 100644 --- a/source3/param/loadparm.c +++ b/source3/param/loadparm.c @@ -4252,7 +4252,7 @@ const char *get_called_name(void) static fstring called_name; if (!*local_machine) { - fstrcpy(called_name, get_my_primary_ip()); + fstrcpy(called_name, client_socket_addr()); DEBUG(8,("get_called_name: assuming that client used IP address [%s] as called name.\n", called_name)); return called_name; -- cgit