summaryrefslogtreecommitdiff
path: root/source3/include
diff options
context:
space:
mode:
authorLuke Leighton <lkcl@samba.org>1999-01-29 21:22:08 +0000
committerLuke Leighton <lkcl@samba.org>1999-01-29 21:22:08 +0000
commit9b5043cb2f125c39eda1e986cfcce3b534dc3b43 (patch)
tree8c23428f5f8cba9d6108a2e7a39edb68d93e47f8 /source3/include
parent5a9859c7b0e1d22cd92b3a512690c5113c1bd51b (diff)
downloadsamba-9b5043cb2f125c39eda1e986cfcce3b534dc3b43.tar.gz
samba-9b5043cb2f125c39eda1e986cfcce3b534dc3b43.tar.bz2
samba-9b5043cb2f125c39eda1e986cfcce3b534dc3b43.zip
fix for enumerate domain users (bug spotted by sean matthews).
also needed to use start index properly and generate next index. both client and server code need to recognise error code 0x105 when there's not enough room to store all the users in one call. sort this out another time. (This used to be commit ad58cdfac6b85d9431216e32e532ad4d60f9c6dd)
Diffstat (limited to 'source3/include')
-rw-r--r--source3/include/proto.h5
-rw-r--r--source3/include/rpc_samr.h7
2 files changed, 6 insertions, 6 deletions
diff --git a/source3/include/proto.h b/source3/include/proto.h
index 15ed9a50af..9dbf57d17e 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -1679,7 +1679,7 @@ BOOL samr_enum_dom_aliases(struct cli_state *cli, uint16 fnum,
struct acct_info **sam,
int *num_sam_aliases);
BOOL samr_enum_dom_users(struct cli_state *cli, uint16 fnum,
- POLICY_HND *pol, uint16 num_entries, uint16 unk_0,
+ POLICY_HND *pol, uint32 start_idx,
uint16 acb_mask, uint16 unk_1, uint32 size,
struct acct_info **sam,
int *num_sam_users);
@@ -2181,7 +2181,7 @@ void make_samr_r_unknown_3(SAMR_R_UNKNOWN_3 *r_u,
uint32 status);
void samr_io_r_unknown_3(char *desc, SAMR_R_UNKNOWN_3 *r_u, prs_struct *ps, int depth);
void make_samr_q_enum_dom_users(SAMR_Q_ENUM_DOM_USERS *q_e, POLICY_HND *pol,
- uint16 req_num_entries, uint16 unk_0,
+ uint32 start_idx,
uint16 acb_mask, uint16 unk_1, uint32 size);
void samr_io_q_enum_dom_users(char *desc, SAMR_Q_ENUM_DOM_USERS *q_e, prs_struct *ps, int depth);
void make_samr_r_enum_dom_users(SAMR_R_ENUM_DOM_USERS *r_u,
@@ -2779,6 +2779,7 @@ void display_reg_value_info(FILE *out_hnd, enum action_type action,
char *val_name, uint32 val_type, BUFFER2 *value);
void display_reg_key_info(FILE *out_hnd, enum action_type action,
char *key_name, time_t key_mod_time);
+char *get_svc_start_type_str(uint32 type);
void display_query_svc_cfg(FILE *out_hnd, enum action_type action,
QUERY_SERVICE_CONFIG *cfg);
void display_svc_info(FILE *out_hnd, enum action_type action, ENUM_SRVC_STATUS *svc);
diff --git a/source3/include/rpc_samr.h b/source3/include/rpc_samr.h
index 07ae0301d4..d70702f8a6 100644
--- a/source3/include/rpc_samr.h
+++ b/source3/include/rpc_samr.h
@@ -486,8 +486,7 @@ typedef struct q_samr_enum_dom_users_info
{
POLICY_HND pol; /* policy handle */
- uint16 req_num_entries; /* number of values (0 indicates unlimited?) */
- uint16 unknown_0; /* enumeration context? */
+ uint32 start_idx; /* number of values (0 indicates unlimited?) */
uint16 acb_mask; /* 0x0000 indicates all */
uint16 unknown_1; /* 0x0000 */
@@ -499,8 +498,8 @@ typedef struct q_samr_enum_dom_users_info
/* SAMR_R_ENUM_DOM_USERS - SAM rids and names */
typedef struct r_samr_enum_dom_users_info
{
- uint32 unknown_0; /* unknown. */
- uint32 ptr_entries1; /* actual number of entries to follow, having masked some out */
+ uint32 next_idx; /* next starting index required for enum */
+ uint32 ptr_entries1;
uint32 num_entries2;
uint32 ptr_entries2;