summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Bartlett <abartlet@samba.org>2002-07-07 03:34:24 +0000
committerAndrew Bartlett <abartlet@samba.org>2002-07-07 03:34:24 +0000
commitd29d29e4a2ecee741bdb3d37be77aeeab48f185f (patch)
tree91af5074818f50ae8030f57dc420706529771344
parent48316a8c0e6b0ce6d4db966d319517a844194fce (diff)
downloadsamba-d29d29e4a2ecee741bdb3d37be77aeeab48f185f.tar.gz
samba-d29d29e4a2ecee741bdb3d37be77aeeab48f185f.tar.bz2
samba-d29d29e4a2ecee741bdb3d37be77aeeab48f185f.zip
Updates to the 'name -> sid' code:
Correct the 'none mapped' behaviour, (so that it matches Win2k) and add a function to make the SID types appear as text strings in logs/rpcclient. Also, remove a silly case that would cause 'failure' to be 'success'. (Might look at this a bit more in future). Andrew Bartlett (This used to be commit c20d057f8821d13d3de61b319de44db23773516b)
-rw-r--r--source3/rpc_server/srv_lsa_nt.c2
-rw-r--r--source3/rpcclient/cmd_lsarpc.c5
-rw-r--r--source3/smbd/uid.c6
3 files changed, 6 insertions, 7 deletions
diff --git a/source3/rpc_server/srv_lsa_nt.c b/source3/rpc_server/srv_lsa_nt.c
index f2f91d2d9a..d072061a5f 100644
--- a/source3/rpc_server/srv_lsa_nt.c
+++ b/source3/rpc_server/srv_lsa_nt.c
@@ -167,7 +167,7 @@ static void init_lsa_rid2s(DOM_R_REF *ref, DOM_RID2 *rid2,
DEBUG(5, ("init_lsa_rid2s: %s\n", status ? "found" :
"not found"));
- if (status) {
+ if (status && name_type != SID_NAME_UNKNOWN) {
sid_split_rid(&sid, &rid);
dom_idx = init_dom_ref(ref, dom_name, &sid);
(*mapped_count)++;
diff --git a/source3/rpcclient/cmd_lsarpc.c b/source3/rpcclient/cmd_lsarpc.c
index 511f5643c7..067325c06e 100644
--- a/source3/rpcclient/cmd_lsarpc.c
+++ b/source3/rpcclient/cmd_lsarpc.c
@@ -106,10 +106,9 @@ static NTSTATUS cmd_lsa_lookup_names(struct cli_state *cli,
for (i = 0; i < (argc - 1); i++) {
fstring sid_str;
-
sid_to_string(sid_str, &sids[i]);
- printf("%s %s (%d)\n", argv[i + 1], sid_str,
- types[i]);
+ printf("%s %s (%s: %d)\n", argv[i + 1], sid_str,
+ sid_type_lookup(types[i]), types[i]);
}
done:
diff --git a/source3/smbd/uid.c b/source3/smbd/uid.c
index cb4a975881..a18f62c9cc 100644
--- a/source3/smbd/uid.c
+++ b/source3/smbd/uid.c
@@ -465,11 +465,11 @@ BOOL lookup_name(const char *domain, const char *name, DOM_SID *psid, enum SID_N
if (ret) {
DEBUG(10,
- ("lookup_name: (local) [%s]\\[%s] -> SID %s (type %u)\n",
+ ("lookup_name: (local) [%s]\\[%s] -> SID %s (type %s: %u)\n",
domain, name, sid_to_string(sid,psid),
- (unsigned int)*name_type ));
+ sid_type_lookup(*name_type), (unsigned int)*name_type));
return True;
- } else if (winbind_lookup_name(domain, name, psid, name_type) || (*name_type != SID_NAME_USER) ) {
+ } else if (winbind_lookup_name(domain, name, psid, name_type)) {
DEBUG(10,("lookup_name (winbindd): [%s]\\[%s] -> SID %s (type %u)\n",
domain, name, sid_to_string(sid, psid),