summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2001-06-05 02:20:10 +0000
committerJeremy Allison <jra@samba.org>2001-06-05 02:20:10 +0000
commit545e3b6b3e681df8828b0a9e6b24b75e842dd9e3 (patch)
treec4a6bfaf4a67200d279746144c0069bea0311c4e
parent76c3d39e398b18d458da61bbfb3c3139a7db3b0c (diff)
downloadsamba-545e3b6b3e681df8828b0a9e6b24b75e842dd9e3.tar.gz
samba-545e3b6b3e681df8828b0a9e6b24b75e842dd9e3.tar.xz
samba-545e3b6b3e681df8828b0a9e6b24b75e842dd9e3.zip
Merge of I18N fix from HEAD.
Jeremy.
-rw-r--r--source/rpc_server/srv_lsa_nt.c27
1 files changed, 18 insertions, 9 deletions
diff --git a/source/rpc_server/srv_lsa_nt.c b/source/rpc_server/srv_lsa_nt.c
index 58a7d8dde9d..6e501df414d 100644
--- a/source/rpc_server/srv_lsa_nt.c
+++ b/source/rpc_server/srv_lsa_nt.c
@@ -238,6 +238,11 @@ static void init_lsa_trans_names(TALLOC_CTX *ctx, DOM_R_REF *ref, LSA_TRANS_NAME
sid_split_rid(&find_sid, &rid);
}
+ /* unistr routines take dos codepage strings */
+
+ unix_to_dos(dom_name, True);
+ unix_to_dos(name, True);
+
dom_idx = init_dom_ref(ref, dom_name, &find_sid);
DEBUG(10,("init_lsa_trans_names: added user '%s\\%s' to "
@@ -332,6 +337,7 @@ uint32 _lsa_query_info(pipes_struct *p, LSA_Q_QUERY_INFO *q_u, LSA_R_QUERY_INFO
{
LSA_INFO_UNION *info = &r_u->dom;
DOM_SID domain_sid;
+ fstring dos_domain;
char *name = NULL;
DOM_SID *sid = NULL;
@@ -340,6 +346,9 @@ uint32 _lsa_query_info(pipes_struct *p, LSA_Q_QUERY_INFO *q_u, LSA_R_QUERY_INFO
if (!find_policy_by_hnd(p, &q_u->pol, NULL))
return NT_STATUS_INVALID_HANDLE;
+ fstrcpy(dos_domain, global_myworkgroup);
+ unix_to_dos(dos_domain, True);
+
switch (q_u->info_class) {
case 0x02:
{
@@ -359,20 +368,20 @@ uint32 _lsa_query_info(pipes_struct *p, LSA_Q_QUERY_INFO *q_u, LSA_R_QUERY_INFO
switch (lp_server_role()) {
case ROLE_DOMAIN_PDC:
case ROLE_DOMAIN_BDC:
- name = global_myworkgroup;
+ name = dos_domain;
sid = &global_sam_sid;
break;
case ROLE_DOMAIN_MEMBER:
- name = global_myworkgroup;
+ name = dos_domain;
/* We need to return the Domain SID here. */
- if (secrets_fetch_domain_sid(global_myworkgroup,
- &domain_sid))
- sid = &domain_sid;
+ if (secrets_fetch_domain_sid(dos_domain,
+ &domain_sid))
+ sid = &domain_sid;
else
return NT_STATUS_CANT_ACCESS_DOMAIN_INFO;
break;
case ROLE_STANDALONE:
- name = global_myname;
+ name = dos_domain;
sid = NULL; /* Tell it we're not in a domain. */
break;
default:
@@ -385,15 +394,15 @@ uint32 _lsa_query_info(pipes_struct *p, LSA_Q_QUERY_INFO *q_u, LSA_R_QUERY_INFO
switch (lp_server_role()) {
case ROLE_DOMAIN_PDC:
case ROLE_DOMAIN_BDC:
- name = global_myworkgroup;
+ name = dos_domain;
sid = &global_sam_sid;
break;
case ROLE_DOMAIN_MEMBER:
- name = global_myname;
+ name = dos_domain;
sid = &global_sam_sid;
break;
case ROLE_STANDALONE:
- name = global_myname;
+ name = dos_domain;
sid = &global_sam_sid;
break;
default: