Commit 348b01ff authored by Gerald Carter's avatar Gerald Carter Committed by Gerald (Jerry) Carter
Browse files

r647: fix for setting the called name to by our IP if the called name was...

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)
parent 372dac6c
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -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);
}
+0 −18
Original line number Diff line number Diff line
@@ -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 */
+1 −1
Original line number Diff line number Diff line
@@ -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;