summaryrefslogtreecommitdiff
path: root/source3/lib
diff options
context:
space:
mode:
Diffstat (limited to 'source3/lib')
-rw-r--r--source3/lib/domain_namemap.c8
-rw-r--r--source3/lib/util.c21
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);
+}
+