diff options
author | Gerald Carter <jerry@samba.org> | 2004-05-11 14:54:54 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 10:51:32 -0500 |
commit | 348b01ff7734c5db7ce37e0fbeeb0de5f675950f (patch) | |
tree | 23b130e3ed04014b30f0bf5989f009272d71d445 | |
parent | 372dac6c982ac52926c268df71bf6fb4ca2d155b (diff) | |
download | samba-348b01ff7734c5db7ce37e0fbeeb0de5f675950f.tar.gz samba-348b01ff7734c5db7ce37e0fbeeb0de5f675950f.tar.bz2 samba-348b01ff7734c5db7ce37e0fbeeb0de5f675950f.zip |
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)
-rw-r--r-- | source3/lib/substitute.c | 12 | ||||
-rw-r--r-- | source3/lib/util.c | 18 | ||||
-rw-r--r-- | source3/param/loadparm.c | 2 |
3 files changed, 7 insertions, 25 deletions
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; |