summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2001-12-11 05:16:48 +0000
committerAndrew Tridgell <tridge@samba.org>2001-12-11 05:16:48 +0000
commitb4304c5231159fc6295c445f2eb4470c179b8d5e (patch)
tree77200c33ddc6164ccf3f61df4de6309fedb7890b
parentcb9dbcef7cba9eb42f7b30b81c35142dc945d84f (diff)
downloadsamba-b4304c5231159fc6295c445f2eb4470c179b8d5e.tar.gz
samba-b4304c5231159fc6295c445f2eb4470c179b8d5e.tar.xz
samba-b4304c5231159fc6295c445f2eb4470c179b8d5e.zip
detect attempts to connect to names of the type NAME#xx and do a
netbios lookup for name NAME with node type xx. This affects all our client progs. Very useful :)
-rw-r--r--source/libsmb/cliconnect.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/source/libsmb/cliconnect.c b/source/libsmb/cliconnect.c
index 512607fc110..27034b012d3 100644
--- a/source/libsmb/cliconnect.c
+++ b/source/libsmb/cliconnect.c
@@ -975,11 +975,19 @@ open the client sockets
BOOL cli_connect(struct cli_state *cli, const char *host, struct in_addr *ip)
{
extern pstring user_socket_options;
+ int name_type = 0x20;
+ char *p;
fstrcpy(cli->desthost, host);
+
+ /* allow hostnames of the form NAME#xx and do a netbios lookup */
+ if ((p = strchr(cli->desthost, '#'))) {
+ name_type = strtol(p+1, NULL, 16);
+ *p = 0;
+ }
if (!ip || is_zero_ip(*ip)) {
- if (!resolve_name( cli->desthost, &cli->dest_ip, 0x20)) {
+ if (!resolve_name(cli->desthost, &cli->dest_ip, name_type)) {
return False;
}
if (ip) *ip = cli->dest_ip;
@@ -1328,3 +1336,5 @@ name *SMBSERVER with error %s\n", desthost, cli_errstr(cli) ));
return True;
}
+
+