diff options
author | Jeremy Allison <jra@samba.org> | 2001-03-13 00:31:53 +0000 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2001-03-13 00:31:53 +0000 |
commit | d22c6067032e167d4558f4954c58d87404de6d9d (patch) | |
tree | be0353d66b15ea52951d70032c98f81e76515318 | |
parent | 83133bab0ed59e303a183fd91812165f08e88484 (diff) | |
download | samba-d22c6067032e167d4558f4954c58d87404de6d9d.tar.gz samba-d22c6067032e167d4558f4954c58d87404de6d9d.tar.xz samba-d22c6067032e167d4558f4954c58d87404de6d9d.zip |
Ensure we return the correct names/sids on query info. AS/U showed us what
we should return here.
Jeremy.
-rw-r--r-- | source/rpc_server/srv_lsa_nt.c | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/source/rpc_server/srv_lsa_nt.c b/source/rpc_server/srv_lsa_nt.c index 8e1d9343097..d1a7c049d86 100644 --- a/source/rpc_server/srv_lsa_nt.c +++ b/source/rpc_server/srv_lsa_nt.c @@ -366,7 +366,8 @@ uint32 _lsa_query_info(pipes_struct *p, LSA_Q_QUERY_INFO *q_u, LSA_R_QUERY_INFO if (secrets_fetch_domain_sid(global_myworkgroup, &domain_sid)) { - name = global_myworkgroup; + /* I'm sure this should be myname, not myworkgroup. JRA. */ + name = global_myname; sid = &domain_sid; } default: @@ -375,8 +376,24 @@ uint32 _lsa_query_info(pipes_struct *p, LSA_Q_QUERY_INFO *q_u, LSA_R_QUERY_INFO init_dom_query(&r_u->dom.id3, name, sid); break; case 0x05: - name = global_myname; - sid = &global_sam_sid; + /* AS/U shows this needs to be the same as level 3. JRA. */ + switch (lp_server_role()) + { + case ROLE_DOMAIN_PDC: + case ROLE_DOMAIN_BDC: + name = global_myworkgroup; + sid = &global_sam_sid; + break; + case ROLE_DOMAIN_MEMBER: + if (secrets_fetch_domain_sid(global_myworkgroup, + &domain_sid)) + { + name = global_myname; + sid = &domain_sid; + } + default: + break; + } init_dom_query(&r_u->dom.id5, name, sid); break; case 0x06: |