summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Potter <tpot@samba.org>2001-01-15 23:39:20 +0000
committerTim Potter <tpot@samba.org>2001-01-15 23:39:20 +0000
commit31f42d9fab31c9c786974fe2ae72b55d5642946b (patch)
tree7496b59db3c3b89357a096592a9f4ed5eaf1e477
parent19a8acda6400e17707b32e3cba721d83e5cbf987 (diff)
downloadsamba-31f42d9fab31c9c786974fe2ae72b55d5642946b.tar.gz
samba-31f42d9fab31c9c786974fe2ae72b55d5642946b.tar.bz2
samba-31f42d9fab31c9c786974fe2ae72b55d5642946b.zip
New proto and some small changes to rpc_samr.h
(This used to be commit 7f31d4ab1da72fe1dd52c7ecc1c758e210b6d38d)
-rw-r--r--source3/include/proto.h109
-rw-r--r--source3/include/rpc_samr.h21
2 files changed, 113 insertions, 17 deletions
diff --git a/source3/include/proto.h b/source3/include/proto.h
index 5e2bea9c37..160131e610 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -684,6 +684,7 @@ uint32 cli_lsa_enum_trust_dom(struct cli_state *cli, POLICY_HND *pol,
/*The following definitions come from libsmb/cli_samr.c */
+#if NEW_NTDOMAIN
struct cli_state *cli_samr_initialise(struct cli_state *cli, char *system_name,
struct ntuser_creds *creds);
void cli_samr_shutdown(struct cli_state *cli);
@@ -696,8 +697,18 @@ uint32 cli_samr_open_domain(struct cli_state *cli, POLICY_HND *connect_pol,
uint32 cli_samr_open_user(struct cli_state *cli, POLICY_HND *domain_pol,
uint32 access_mask, uint32 user_rid,
POLICY_HND *user_pol);
+uint32 cli_samr_open_group(struct cli_state *cli, POLICY_HND *domain_pol,
+ uint32 access_mask, uint32 group_rid,
+ POLICY_HND *group_pol);
uint32 cli_samr_query_userinfo(struct cli_state *cli, POLICY_HND *user_pol,
uint16 switch_value, SAM_USERINFO_CTR *ctr);
+uint32 cli_samr_query_groupinfo(struct cli_state *cli, POLICY_HND *group_pol,
+ uint32 info_level, GROUP_INFO_CTR *ctr);
+uint32 cli_samr_query_usergroups(struct cli_state *cli, POLICY_HND *user_pol,
+ uint32 *num_groups, DOM_GID **gid);
+uint32 cli_samr_query_groupmem(struct cli_state *cli, POLICY_HND *group_pol,
+ uint32 *num_mem, uint32 **rid, uint32 **attr);
+#endif
/*The following definitions come from libsmb/cli_spoolss.c */
@@ -2297,6 +2308,9 @@ BOOL init_q_enum_trust_dom(LSA_Q_ENUM_TRUST_DOM * q_e, POLICY_HND *pol,
uint32 enum_context, uint32 preferred_len);
BOOL lsa_io_q_enum_trust_dom(char *desc, LSA_Q_ENUM_TRUST_DOM *q_e,
prs_struct *ps, int depth);
+void init_r_enum_trust_dom(LSA_R_ENUM_TRUST_DOM *r_e, uint32 enum_context,
+ char *domain_name, DOM_SID *domain_sid,
+ uint32 status);
BOOL lsa_io_r_enum_trust_dom(char *desc, LSA_R_ENUM_TRUST_DOM *r_e,
prs_struct *ps, int depth);
void lsa_free_r_enum_trust_dom(LSA_R_ENUM_TRUST_DOM * r_e);
@@ -2792,6 +2806,98 @@ BOOL make_samr_r_set_userinfo2(SAMR_R_SET_USERINFO2 *r_u, uint32 status);
BOOL samr_io_r_set_userinfo2(char *desc, SAMR_R_SET_USERINFO2 *r_u, prs_struct *ps, int depth);
#endif
+/*The following definitions come from rpc_parse/parse_samr_new.c */
+
+#if NEW_NTDOMAIN
+BOOL init_samr_q_connect(SAMR_Q_CONNECT * q_u, char *srv_name,
+ uint32 access_mask);
+BOOL samr_io_q_connect(char *desc, SAMR_Q_CONNECT * q_u, prs_struct *ps,
+ int depth);
+BOOL samr_io_r_connect(char *desc, SAMR_R_CONNECT * r_u, prs_struct *ps,
+ int depth);
+BOOL init_samr_q_close_hnd(SAMR_Q_CLOSE_HND * q_c, POLICY_HND *hnd);
+BOOL samr_io_q_close_hnd(char *desc, SAMR_Q_CLOSE_HND * q_u,
+ prs_struct *ps, int depth);
+BOOL samr_io_r_close_hnd(char *desc, SAMR_R_CLOSE_HND * r_u,
+ prs_struct *ps, int depth);
+BOOL init_samr_q_open_domain(SAMR_Q_OPEN_DOMAIN * q_u,
+ POLICY_HND *connect_pol, uint32 access_mask,
+ DOM_SID *sid);
+BOOL samr_io_q_open_domain(char *desc, SAMR_Q_OPEN_DOMAIN * q_u,
+ prs_struct *ps, int depth);
+BOOL samr_io_r_open_domain(char *desc, SAMR_R_OPEN_DOMAIN * r_u,
+ prs_struct *ps, int depth);
+BOOL init_samr_q_open_user(SAMR_Q_OPEN_USER * q_u, POLICY_HND *pol,
+ uint32 access_mask, uint32 rid);
+BOOL samr_io_q_open_user(char *desc, SAMR_Q_OPEN_USER * q_u,
+ prs_struct *ps, int depth);
+BOOL samr_io_r_open_user(char *desc, SAMR_R_OPEN_USER * r_u,
+ prs_struct *ps, int depth);
+BOOL init_samr_q_query_userinfo(SAMR_Q_QUERY_USERINFO * q_u,
+ POLICY_HND *hnd, uint16 switch_value);
+BOOL samr_io_q_query_userinfo(char *desc, SAMR_Q_QUERY_USERINFO * q_u,
+ prs_struct *ps, int depth);
+BOOL samr_io_r_query_userinfo(char *desc, SAMR_R_QUERY_USERINFO * r_u,
+ prs_struct *ps, int depth);
+BOOL samr_io_userinfo_ctr(char *desc, SAM_USERINFO_CTR * ctr,
+ prs_struct *ps, int depth);
+void free_samr_userinfo_ctr(SAM_USERINFO_CTR * ctr);
+BOOL sam_io_user_info10(char *desc, SAM_USER_INFO_10 * usr,
+ prs_struct *ps, int depth);
+BOOL init_sam_user_info11(SAM_USER_INFO_11 * usr,
+ NTTIME * expiry,
+ char *mach_acct,
+ uint32 rid_user, uint32 rid_group, uint16 acct_ctrl);
+BOOL sam_io_user_info11(char *desc, SAM_USER_INFO_11 * usr,
+ prs_struct *ps, int depth);
+BOOL sam_io_user_info12(char *desc, SAM_USER_INFO_12 * u,
+ prs_struct *ps, int depth);
+BOOL sam_io_user_info21(char *desc, SAM_USER_INFO_21 * usr,
+ prs_struct *ps, int depth);
+BOOL sam_io_user_info23(char *desc, SAM_USER_INFO_23 * usr,
+ prs_struct *ps, int depth);
+BOOL init_sam_user_info24(SAM_USER_INFO_24 * usr,
+ const char newpass[516], uint16 passlen);
+BOOL sam_io_user_info24(char *desc, SAM_USER_INFO_24 * usr,
+ prs_struct *ps, int depth);
+BOOL sam_io_logon_hrs(char *desc, LOGON_HRS * hrs, prs_struct *ps,
+ int depth);
+BOOL init_samr_q_query_groupinfo(SAMR_Q_QUERY_GROUPINFO * q_e,
+ POLICY_HND *pol, uint16 switch_level);
+BOOL samr_io_q_query_groupinfo(char *desc, SAMR_Q_QUERY_GROUPINFO * q_e,
+ prs_struct *ps, int depth);
+BOOL samr_io_r_query_groupinfo(char *desc, SAMR_R_QUERY_GROUPINFO * r_u,
+ prs_struct *ps, int depth);
+BOOL samr_q_query_usergroups(SAMR_Q_QUERY_USERGROUPS * q_u,
+ POLICY_HND *hnd);
+BOOL samr_io_q_query_usergroups(char *desc, SAMR_Q_QUERY_USERGROUPS * q_u,
+ prs_struct *ps, int depth);
+BOOL samr_io_r_query_usergroups(char *desc, SAMR_R_QUERY_USERGROUPS * r_u,
+ prs_struct *ps, int depth);
+BOOL init_samr_q_query_groupmem(SAMR_Q_QUERY_GROUPMEM * q_c, POLICY_HND *hnd);
+BOOL samr_io_q_query_groupmem(char *desc, SAMR_Q_QUERY_GROUPMEM * q_u,
+ prs_struct *ps, int depth);
+BOOL samr_io_r_query_groupmem(char *desc, SAMR_R_QUERY_GROUPMEM * r_u,
+ prs_struct *ps, int depth);
+void samr_free_r_query_groupmem(SAMR_R_QUERY_GROUPMEM * r_u);
+BOOL samr_group_info_ctr(char *desc, GROUP_INFO_CTR * ctr, prs_struct *ps,
+ int depth);
+BOOL samr_io_gids(char *desc, uint32 *num_gids, DOM_GID ** gid,
+ prs_struct *ps, int depth);
+BOOL samr_io_group_info1(char *desc, GROUP_INFO1 * gr1,
+ prs_struct *ps, int depth);
+BOOL samr_io_group_info4(char *desc, GROUP_INFO4 * gr4,
+ prs_struct *ps, int depth);
+BOOL init_samr_q_query_usergroups(SAMR_Q_QUERY_USERGROUPS * q_u,
+ POLICY_HND *hnd);
+BOOL init_samr_q_open_group(SAMR_Q_OPEN_GROUP * q_c, POLICY_HND *hnd,
+ uint32 access_mask, uint32 rid);
+BOOL samr_io_q_open_group(char *desc, SAMR_Q_OPEN_GROUP * q_u,
+ prs_struct *ps, int depth);
+BOOL samr_io_r_open_group(char *desc, SAMR_R_OPEN_GROUP * r_u,
+ prs_struct *ps, int depth);
+#endif
+
/*The following definitions come from rpc_parse/parse_sec.c */
void init_sec_access(SEC_ACCESS *t, uint32 mask);
@@ -3364,12 +3470,15 @@ BOOL api_wkssvc_rpc(pipes_struct *p);
/*The following definitions come from rpcclient/cmd_samr.c */
+#if NEW_NTDOMAIN
+#endif
/*The following definitions come from rpcclient/cmd_spoolss.c */
/*The following definitions come from rpcclient/rpcclient.c */
+void fetch_domain_sid(void);
void init_rpcclient_creds(struct ntuser_creds *creds);
void add_command_set(struct cmd_set *cmd_set);
diff --git a/source3/include/rpc_samr.h b/source3/include/rpc_samr.h
index 1f65470f7a..3438e44abe 100644
--- a/source3/include/rpc_samr.h
+++ b/source3/include/rpc_samr.h
@@ -24,10 +24,8 @@
#ifndef _RPC_SAMR_H /* _RPC_SAMR_H */
#define _RPC_SAMR_H
-
#include "rpc_misc.h"
-
/*******************************************************************
the following information comes from a QuickView on samsrv.dll,
and gives an idea of exactly what is needed:
@@ -144,8 +142,6 @@ SamrTestPrivateFunctionsUser
#define SAMR_CONNECT 0x39
#define SAMR_SET_USERINFO 0x3A
-
-
typedef struct logon_hours_info
{
uint32 len; /* normally 21 bytes */
@@ -541,24 +537,15 @@ typedef struct r_samr_lookup_domain_info
} SAMR_R_LOOKUP_DOMAIN;
-
-/****************************************************************************
-SAMR_Q_OPEN_DOMAIN - unknown_0 values seen associated with SIDs:
-
-0x0000 03f1 and a specific domain sid - S-1-5-21-44c01ca6-797e5c3d-33f83fd0
-0x0000 0200 and a specific domain sid - S-1-5-21-44c01ca6-797e5c3d-33f83fd0
-*****************************************************************************/
-
/* SAMR_Q_OPEN_DOMAIN */
typedef struct q_samr_open_domain_info
{
- POLICY_HND pol; /* policy handle */
- uint32 flags; /* 0x2000 0000; 0x0000 0211; 0x0000 0280; 0x0000 0200 - flags? */
- DOM_SID2 dom_sid; /* domain SID */
+ POLICY_HND connect_pol; /* Policy handle */
+ uint32 access_mask; /* Requested permissions */
+ DOM_SID2 dom_sid; /* Domain SID */
} SAMR_Q_OPEN_DOMAIN;
-
/* SAMR_R_OPEN_DOMAIN - probably an open */
typedef struct r_samr_open_domain_info
{
@@ -1462,7 +1449,7 @@ typedef struct q_samr_open_group_info
/* SAMR_R_OPEN_GROUP - probably an open */
typedef struct r_samr_open_group_info
{
- POLICY_HND pol; /* policy handle */
+ POLICY_HND group_pol; /* policy handle */
uint32 status; /* return status */
} SAMR_R_OPEN_GROUP;