summaryrefslogtreecommitdiff
path: root/source3/rpc_server/srv_lsa_nt.c
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2001-07-04 07:15:53 +0000
committerAndrew Tridgell <tridge@samba.org>2001-07-04 07:15:53 +0000
commit87fbb7092b8f8b2f0db0f361c3d625e19de57cd9 (patch)
tree3c302f710cbaa03e3c0d46549e8982771b12b8a5 /source3/rpc_server/srv_lsa_nt.c
parent9e9e73303ec10a64bd744b9b33f4e6cd7d394f03 (diff)
downloadsamba-87fbb7092b8f8b2f0db0f361c3d625e19de57cd9.tar.gz
samba-87fbb7092b8f8b2f0db0f361c3d625e19de57cd9.tar.bz2
samba-87fbb7092b8f8b2f0db0f361c3d625e19de57cd9.zip
The big character set handling changeover!
This commit gets rid of all our old codepage handling and replaces it with iconv. All internal strings in Samba are now in "unix" charset, which may be multi-byte. See internals.doc and my posting to samba-technical for a more complete explanation. (This used to be commit debb471267960e56005a741817ebd227ecfc512a)
Diffstat (limited to 'source3/rpc_server/srv_lsa_nt.c')
-rw-r--r--source3/rpc_server/srv_lsa_nt.c27
1 files changed, 9 insertions, 18 deletions
diff --git a/source3/rpc_server/srv_lsa_nt.c b/source3/rpc_server/srv_lsa_nt.c
index afcace3f9c..cd97dfc6d1 100644
--- a/source3/rpc_server/srv_lsa_nt.c
+++ b/source3/rpc_server/srv_lsa_nt.c
@@ -72,7 +72,7 @@ static int init_dom_ref(DOM_R_REF *ref, char *dom_name, DOM_SID *dom_sid)
if (dom_name != NULL) {
for (num = 0; num < ref->num_ref_doms_1; num++) {
fstring domname;
- fstrcpy(domname, dos_unistr2_to_str(&ref->ref_dom[num].uni_dom_name));
+ rpcstr_pull(domname, &ref->ref_dom[num].uni_dom_name, sizeof(domname), -1, 0);
if (strequal(domname, dom_name))
return num;
}
@@ -128,7 +128,7 @@ static void init_lsa_rid2s(DOM_R_REF *ref, DOM_RID2 *rid2,
/* Split name into domain and user component */
- pstrcpy(full_name, dos_unistr2_to_str(&name[i]));
+ rpcstr_pull(full_name, &name[i], sizeof(full_name), -1, 0);
split_domain_name(full_name, dom_name, user);
/* Lookup name */
@@ -238,11 +238,6 @@ 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 "
@@ -337,7 +332,6 @@ 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;
@@ -346,9 +340,6 @@ 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:
{
@@ -368,20 +359,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 = dos_domain;
+ name = global_myworkgroup;
sid = &global_sam_sid;
break;
case ROLE_DOMAIN_MEMBER:
- name = dos_domain;
+ name = global_myworkgroup;
/* We need to return the Domain SID here. */
- if (secrets_fetch_domain_sid(dos_domain,
+ if (secrets_fetch_domain_sid(global_myworkgroup,
&domain_sid))
sid = &domain_sid;
else
return NT_STATUS_CANT_ACCESS_DOMAIN_INFO;
break;
case ROLE_STANDALONE:
- name = dos_domain;
+ name = global_myworkgroup;
sid = NULL; /* Tell it we're not in a domain. */
break;
default:
@@ -394,15 +385,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 = dos_domain;
+ name = global_myworkgroup;
sid = &global_sam_sid;
break;
case ROLE_DOMAIN_MEMBER:
- name = dos_domain;
+ name = global_myworkgroup;
sid = &global_sam_sid;
break;
case ROLE_STANDALONE:
- name = dos_domain;
+ name = global_myworkgroup;
sid = &global_sam_sid;
break;
default: