makes a SAMR_R_ENUM_DOM_ALIASES structure.
********************************************************************/
void make_samr_r_enum_dom_aliases(SAMR_R_ENUM_DOM_ALIASES *r_u,
- uint32 num_sam_entries, SAM_USER_INFO_21 grps[MAX_SAM_ENTRIES],
+ uint32 num_sam_entries, LOCAL_GRP *alss,
uint32 status)
{
int i;
for (i = 0; i < num_sam_entries; i++)
{
+ int acct_name_len = strlen(alss[i].name);
+
make_sam_entry(&(r_u->sam[i]),
- grps[i].uni_user_name.uni_str_len,
- grps[i].user_rid);
+ acct_name_len,
+ alss[i].rid);
- copy_unistr2(&(r_u->uni_grp_name[i]), &(grps[i].uni_user_name));
+ make_unistr2(&(r_u->uni_grp_name[i]), alss[i].name , acct_name_len);
}
r_u->num_entries4 = num_sam_entries;
********************************************************************/
void make_samr_r_enum_dom_groups(SAMR_R_ENUM_DOM_GROUPS *r_u,
uint32 start_idx, uint32 num_sam_entries,
- SAM_USER_INFO_21 pass[MAX_SAM_ENTRIES],
+ DOMAIN_GRP *grp,
uint32 status)
{
int i;
{
for (i = start_idx, entries_added = 0; i < num_sam_entries; i++)
{
+ int acct_name_len = strlen(grp[i].name);
+ int acct_desc_len = strlen(grp[i].comment);
+
make_sam_entry3(&(r_u->sam[entries_added]),
start_idx + entries_added + 1,
- pass[i].uni_user_name.uni_str_len,
- pass[i].uni_acct_desc.uni_str_len,
- pass[i].user_rid);
+ acct_name_len,
+ acct_desc_len,
+ grp[i].rid);
- copy_unistr2(&(r_u->str[entries_added].uni_grp_name), &(pass[i].uni_user_name));
- copy_unistr2(&(r_u->str[entries_added].uni_grp_desc), &(pass[i].uni_acct_desc));
+ make_unistr2(&(r_u->str[entries_added].uni_grp_name), grp[i].name , acct_name_len);
+ make_unistr2(&(r_u->str[entries_added].uni_grp_desc), grp[i].comment, acct_desc_len);
entries_added++;
}
makes a SAMR_R_LOOKUP_NAMES structure.
********************************************************************/
void make_samr_r_lookup_names(SAMR_R_LOOKUP_NAMES *r_u,
- uint32 num_rids, uint32 *rid, uint32 status)
+ uint32 num_rids, uint32 *rid, uint8 *type, uint32 status)
{
int i;
if (r_u == NULL) return;
for (i = 0; i < num_rids; i++)
{
- make_dom_rid3(&(r_u->dom_rid[i]), rid[i]);
+ make_dom_rid3(&(r_u->dom_rid[i]), rid[i], type[i]);
}
r_u->num_entries3 = num_rids;
makes a SAMR_R_UNKNOWN_12 structure.
********************************************************************/
void make_samr_r_unknown_12(SAMR_R_UNKNOWN_12 *r_u,
- uint32 num_aliases, fstring *als_name, uint32 *num_als_usrs,
+ uint32 num_aliases, fstring *als_name, uint8 *num_als_usrs,
uint32 status)
{
int i;
{
r_u->ptr_0 = 1;
r_u->num_entries = num_gids;
- r_u->ptr_1 = 1;
+ r_u->ptr_1 = (num_gids != 0) ? 1 : 0;
r_u->num_entries2 = num_gids;
r_u->gid = gid;
/* make PDC server name \\server */
q_u->ptr_srv_name = len_srv_name > 0 ? 1 : 0;
- make_unistr2(&(q_u->uni_srv_name), srv_name, len_srv_name);
+ make_unistr2(&(q_u->uni_srv_name), srv_name, len_srv_name+1);
/* example values: 0x0000 0002 */
q_u->unknown_0 = unknown_0;
if (pwd == NULL) return;
pwd->ptr = 1;
- memcpy(&(pwd->pass), pass, sizeof(pwd->pass));
+ memcpy(pwd->pass, pass, sizeof(pwd->pass));
}
/*******************************************************************
if (hsh == NULL) return;
hsh->ptr = 1;
- memcpy(&(hsh->hash), hash, sizeof(hsh->hash));
+ memcpy(hsh->hash, hash, sizeof(hsh->hash));
}
/*******************************************************************