summaryrefslogtreecommitdiff
path: root/source3/include
diff options
context:
space:
mode:
authorLuke Leighton <lkcl@samba.org>1999-10-25 16:22:08 +0000
committerLuke Leighton <lkcl@samba.org>1999-10-25 16:22:08 +0000
commit8e1f542ddf97fef925a88e2c3d9c1e82fb2f6683 (patch)
treecb9e0bdd8f96a41cf6b460017a3772ea7e1dc5d3 /source3/include
parent45b794bdde0cb906216425c8fc2af8610aa8ad3c (diff)
downloadsamba-8e1f542ddf97fef925a88e2c3d9c1e82fb2f6683.tar.gz
samba-8e1f542ddf97fef925a88e2c3d9c1e82fb2f6683.tar.bz2
samba-8e1f542ddf97fef925a88e2c3d9c1e82fb2f6683.zip
one of those wonderful moments when running against a different MSRPC
implementation (NT5) when you discover that your code is trash. samr_enum_dom_users(), samr_enum_dom_aliases() and samr_enum_dom_groups() all take a HANDLE for multiple-call enumeration purposes. (This used to be commit 19490d8b4fb8a103f3df4e6104f6f22937b0c518)
Diffstat (limited to 'source3/include')
-rw-r--r--source3/include/nterr.h2
-rw-r--r--source3/include/proto.h18
-rw-r--r--source3/include/rpc_samr.h12
3 files changed, 19 insertions, 13 deletions
diff --git a/source3/include/nterr.h b/source3/include/nterr.h
index 2b5285a41f..57d67527ba 100644
--- a/source3/include/nterr.h
+++ b/source3/include/nterr.h
@@ -505,5 +505,5 @@
#define NT_STATUS_QUOTA_LIST_INCONSISTENT (614)
#define NT_STATUS_FILE_IS_OFFLINE (615)
#define NT_STATUS_NOTIFY_ENUM_DIR (0x10C)
-#define NT_STATUS_MORE_ENTRIES (0x105)
+#define STATUS_MORE_ENTRIES (0x105)
#define NT_STATUS_NO_SUCH_JOB (0xEDE) /* scheduler */
diff --git a/source3/include/proto.h b/source3/include/proto.h
index 7cbddd2084..872c9f6afb 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -1897,15 +1897,17 @@ BOOL samr_query_dom_info(struct cli_state *cli, uint16 fnum,
POLICY_HND *domain_pol, uint16 switch_value,
SAM_UNK_CTR *ctr);
BOOL samr_enum_dom_groups(struct cli_state *cli, uint16 fnum,
- POLICY_HND *pol, uint32 size,
+ POLICY_HND *pol,
+ uint32 start_idx, uint32 size,
struct acct_info **sam,
int *num_sam_groups);
BOOL samr_enum_dom_aliases(struct cli_state *cli, uint16 fnum,
- POLICY_HND *pol, uint32 size,
+ POLICY_HND *pol,
+ uint32 start_idx, uint32 size,
struct acct_info **sam,
int *num_sam_aliases);
-BOOL samr_enum_dom_users(struct cli_state *cli, uint16 fnum,
- POLICY_HND *pol, uint32 start_idx,
+uint32 samr_enum_dom_users(struct cli_state *cli, uint16 fnum,
+ POLICY_HND *pol, uint32 *start_idx,
uint16 acb_mask, uint16 unk_1, uint32 size,
struct acct_info **sam,
int *num_sam_users);
@@ -2592,15 +2594,19 @@ BOOL samr_io_q_query_usergroups(char *desc, SAMR_Q_QUERY_USERGROUPS *q_u, prs_s
BOOL make_samr_r_query_usergroups(SAMR_R_QUERY_USERGROUPS *r_u,
uint32 num_gids, DOM_GID *gid, uint32 status);
BOOL samr_io_r_query_usergroups(char *desc, SAMR_R_QUERY_USERGROUPS *r_u, prs_struct *ps, int depth);
-BOOL make_samr_q_enum_dom_groups(SAMR_Q_ENUM_DOM_GROUPS *q_e, POLICY_HND *pol, uint32 size);
+BOOL make_samr_q_enum_dom_groups(SAMR_Q_ENUM_DOM_GROUPS *q_e, POLICY_HND *pol,
+ uint32 start_idx, uint32 size);
BOOL samr_io_q_enum_dom_groups(char *desc, SAMR_Q_ENUM_DOM_GROUPS *q_e, prs_struct *ps, int depth);
BOOL make_samr_r_enum_dom_groups(SAMR_R_ENUM_DOM_GROUPS *r_u,
+ uint32 next_idx,
uint32 num_sam_entries, DOMAIN_GRP *grps,
uint32 status);
BOOL samr_io_r_enum_dom_groups(char *desc, SAMR_R_ENUM_DOM_GROUPS *r_u, prs_struct *ps, int depth);
-BOOL make_samr_q_enum_dom_aliases(SAMR_Q_ENUM_DOM_ALIASES *q_e, POLICY_HND *pol, uint32 size);
+BOOL make_samr_q_enum_dom_aliases(SAMR_Q_ENUM_DOM_ALIASES *q_e, POLICY_HND *pol,
+ uint32 start_idx, uint32 size);
BOOL samr_io_q_enum_dom_aliases(char *desc, SAMR_Q_ENUM_DOM_ALIASES *q_e, prs_struct *ps, int depth);
BOOL make_samr_r_enum_dom_aliases(SAMR_R_ENUM_DOM_ALIASES *r_u,
+ uint32 next_idx,
uint32 num_sam_entries, LOCAL_GRP *alss,
uint32 status);
BOOL samr_io_r_enum_dom_aliases(char *desc, SAMR_R_ENUM_DOM_ALIASES *r_u, prs_struct *ps, int depth);
diff --git a/source3/include/rpc_samr.h b/source3/include/rpc_samr.h
index 0d55e40bc0..afe104a93a 100644
--- a/source3/include/rpc_samr.h
+++ b/source3/include/rpc_samr.h
@@ -637,7 +637,7 @@ typedef struct q_samr_enum_dom_groups_info
POLICY_HND pol; /* policy handle */
/* this is possibly an enumeration context handle... */
- uint32 unknown_0; /* 0x0000 0000 */
+ uint32 start_idx; /* 0x0000 0000 */
uint32 max_size; /* 0x0000 ffff */
@@ -647,8 +647,8 @@ typedef struct q_samr_enum_dom_groups_info
/* SAMR_R_ENUM_DOM_GROUPS - SAM rids and names */
typedef struct r_samr_enum_dom_groups_info
{
- uint32 num_entries;
- uint32 ptr_entries;
+ uint32 next_idx;
+ uint32 ptr_entries1;
uint32 num_entries2;
uint32 ptr_entries2;
@@ -671,7 +671,7 @@ typedef struct q_samr_enum_dom_aliases_info
POLICY_HND pol; /* policy handle */
/* this is possibly an enumeration context handle... */
- uint32 unknown_0; /* 0x0000 0000 */
+ uint32 start_idx; /* 0x0000 0000 */
uint32 max_size; /* 0x0000 ffff */
@@ -681,8 +681,8 @@ typedef struct q_samr_enum_dom_aliases_info
/* SAMR_R_ENUM_DOM_ALIASES - SAM rids and names */
typedef struct r_samr_enum_dom_aliases_info
{
- uint32 num_entries;
- uint32 ptr_entries;
+ uint32 next_idx;
+ uint32 ptr_entries1;
uint32 num_entries2;
uint32 ptr_entries2;