diff options
Diffstat (limited to 'source3/lib')
-rw-r--r-- | source3/lib/domain_namemap.c | 8 | ||||
-rw-r--r-- | source3/lib/util.c | 21 |
2 files changed, 27 insertions, 2 deletions
diff --git a/source3/lib/domain_namemap.c b/source3/lib/domain_namemap.c index 51fcd2467a..551c7290ea 100644 --- a/source3/lib/domain_namemap.c +++ b/source3/lib/domain_namemap.c @@ -882,7 +882,8 @@ static BOOL lookup_remote_ntname(const char *ntname, DOM_SID *sid, uint8 *type) struct cli_state cli; POLICY_HND lsa_pol; fstring srv_name; - extern struct cli_state *rpc_smb_cli; + extern struct user_credentials *usr_creds; + struct user_credentials usr; BOOL res3 = True; BOOL res4 = True; @@ -891,7 +892,10 @@ static BOOL lookup_remote_ntname(const char *ntname, DOM_SID *sid, uint8 *type) uint8 *types; char *names[1]; - rpc_smb_cli = &cli; + usr_creds = &usr; + + ZERO_STRUCT(usr); + pwd_set_nullpwd(&usr.pwd); DEBUG(5,("lookup_remote_ntname: %s\n", ntname)); diff --git a/source3/lib/util.c b/source3/lib/util.c index 26f0482162..cd6368ee77 100644 --- a/source3/lib/util.c +++ b/source3/lib/util.c @@ -3228,3 +3228,24 @@ BOOL become_user_permanently(uid_t uid, gid_t gid) return(True); } +BOOL resolve_srv_name(const char* srv_name, fstring dest_host, + struct in_addr *ip) +{ + DEBUG(10,("resolve_srv_name: %s\n", srv_name)); + + if (srv_name == NULL || strequal("\\\\.", srv_name)) + { + fstrcpy(dest_host, global_myname); + ip = interpret_addr2("127.0.0.1"); + return True; + } + + if (!strnequal("\\\\", srv_name, 2)) + { + return False; + } + + fstrcpy(dest_host, &srv_name[2]); + return resolve_name(dest_host, ip, 0x20); +} + |