summaryrefslogtreecommitdiffstats
path: root/source/samrd/srv_samr_passdb.c
diff options
context:
space:
mode:
Diffstat (limited to 'source/samrd/srv_samr_passdb.c')
-rw-r--r--source/samrd/srv_samr_passdb.c74
1 files changed, 41 insertions, 33 deletions
diff --git a/source/samrd/srv_samr_passdb.c b/source/samrd/srv_samr_passdb.c
index d30dd20ee04..a634369642b 100644
--- a/source/samrd/srv_samr_passdb.c
+++ b/source/samrd/srv_samr_passdb.c
@@ -2470,6 +2470,11 @@ uint32 _samr_query_dom_info(SAMR_Q_QUERY_DOMAIN_INFO *q_u,
/*******************************************************************
samr_reply_create_user
********************************************************************/
+/*
+ uint32 samr_create_dom_user( POLICY_HND *domain_pol, const char *acct_name,
+ uint32 unk_0, uint32 unk_1,
+ POLICY_HND *user_pol, uint32 *rid);
+*/
uint32 _samr_create_user(SAMR_Q_CREATE_USER *q_u,
prs_struct *rdata)
{
@@ -2567,6 +2572,9 @@ uint32 _samr_create_user(SAMR_Q_CREATE_USER *q_u,
/*******************************************************************
samr_reply_connect_anon
********************************************************************/
+/*
+??
+*/
uint32 _samr_connect_anon(SAMR_Q_CONNECT_ANON *q_u,
prs_struct *rdata)
{
@@ -2607,6 +2615,10 @@ uint32 _samr_connect_anon(SAMR_Q_CONNECT_ANON *q_u,
/*******************************************************************
samr_reply_connect
********************************************************************/
+/*
+ BOOL samr_connect( const char *srv_name, uint32 unknown_0,
+ POLICY_HND *connect_pol);
+*/
uint32 _samr_connect(SAMR_Q_CONNECT *q_u,
prs_struct *rdata)
{
@@ -2647,6 +2659,11 @@ uint32 _samr_connect(SAMR_Q_CONNECT *q_u,
/*******************************************************************
samr_reply_open_alias
********************************************************************/
+/*
+ BOOL samr_open_alias( const POLICY_HND *domain_pol,
+ uint32 flags, uint32 rid,
+ POLICY_HND *alias_pol);
+*/
uint32 _samr_open_alias(SAMR_Q_OPEN_ALIAS *q_u,
prs_struct *rdata)
{
@@ -2746,53 +2763,44 @@ uint32 _samr_open_group(SAMR_Q_OPEN_GROUP *q_u,
/* XXXX now do a make proto; make samrd/srv_samr_passdb.c,
and go to rpc_server/srv_samr.c */
+#endif
/*******************************************************************
- samr_reply_lookup_domain
- ********************************************************************/
-uint32 _samr_lookup_domain(SAMR_Q_LOOKUP_DOMAIN *q_u,
- prs_struct *rdata)
+samr_lookup_domain
+********************************************************************/
+uint32 _samr_lookup_domain(const POLICY_HND *connect_pol,
+ const UNISTR2 *uni_domain,
+ DOM_SID *dom_sid)
{
- SAMR_R_LOOKUP_DOMAIN r_u;
fstring domain;
DEBUG(5,("samr_lookup_domain: %d\n", __LINE__));
- ptr_sid = 0;
- status = 0x0;
-
/* find the connection policy handle */
- if (find_policy_by_hnd(get_global_hnd_cache(), &(connect_pol)) == -1)
+ if (find_policy_by_hnd(get_global_hnd_cache(), connect_pol) == -1)
{
- status = NT_STATUS_INVALID_HANDLE;
+ return 0xC0000000 | NT_STATUS_INVALID_HANDLE;
}
- if (status == 0x0)
- {
- unistr2_to_ascii(domain, &(uni_domain), sizeof(domain));
- DEBUG(5, ("Lookup Domain: %s\n", domain));
+ unistr2_to_ascii(domain, uni_domain, sizeof(domain));
+ DEBUG(5, ("Lookup Domain: %s\n", domain));
- /* check it's one of ours */
- if (strequal(domain, global_sam_name))
- {
- make_dom_sid2(&(dom_sid), &global_sam_sid);
- ptr_sid = 1;
- }
- else if (strequal(domain, "BUILTIN"))
- {
- make_dom_sid2(&(dom_sid), &global_sid_S_1_5_20);
- ptr_sid = 1;
- }
- else
- {
- status = NT_STATUS_NO_SUCH_DOMAIN;
- }
+ /* check it's one of ours */
+ if (strequal(domain, global_sam_name))
+ {
+ sid_copy(dom_sid, &global_sam_sid);
+ }
+ else if (strequal(domain, "BUILTIN"))
+ {
+ sid_copy(dom_sid, &global_sid_S_1_5_20);
+ }
+ else
+ {
+ return NT_STATUS_NO_SUCH_DOMAIN;
}
-
- /* store the response in the SMB stream */
- samr_io_r_lookup_domain("", &r_u, rdata, 0);
DEBUG(5,("samr_lookup_domain: %d\n", __LINE__));
+
+ return 0x0;
}
-#endif