From 92f1c0d1565f0b3d60c7235d6760926739a55426 Mon Sep 17 00:00:00 2001 From: Günther Deschner Date: Fri, 24 Oct 2008 13:43:21 +0200 Subject: s4-lsa: merge lsa_LookupNames/{2,3,4} from s3 lsa idl. Guenther --- source4/libnet/libnet_lookup.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'source4/libnet') diff --git a/source4/libnet/libnet_lookup.c b/source4/libnet/libnet_lookup.c index dc54ec3cf1..fc307823b8 100644 --- a/source4/libnet/libnet_lookup.c +++ b/source4/libnet/libnet_lookup.c @@ -312,6 +312,8 @@ static bool prepare_lookup_params(struct libnet_context *ctx, s->lookup.in.count = &s->count; s->lookup.out.count = &s->count; s->lookup.out.sids = &s->sids; + s->lookup.out.domains = talloc_zero(ctx, struct lsa_RefDomainList *); + if (composite_nomem(s->lookup.out.domains, c)) return false; return true; } @@ -372,7 +374,7 @@ NTSTATUS libnet_LookupName_recv(struct composite_context *c, TALLOC_CTX *mem_ctx io->out.sidstr = NULL; if (*s->lookup.out.count > 0) { - struct lsa_RefDomainList *domains = s->lookup.out.domains; + struct lsa_RefDomainList *domains = *s->lookup.out.domains; struct lsa_TransSidArray *sids = s->lookup.out.sids; if (domains == NULL || sids == NULL) { -- cgit From 95231eae39d3373dbb2003d6c01f0c46c40cdc04 Mon Sep 17 00:00:00 2001 From: Günther Deschner Date: Fri, 24 Oct 2008 15:05:57 +0200 Subject: s4-lsa: merge lsa_QueryInfoPolicy/{2} from s3 lsa idl. Guenther --- source4/libnet/libnet_group.c | 6 ++++-- source4/libnet/libnet_rpc.c | 12 ++++++++---- source4/libnet/libnet_user.c | 8 +++++--- 3 files changed, 17 insertions(+), 9 deletions(-) (limited to 'source4/libnet') diff --git a/source4/libnet/libnet_group.c b/source4/libnet/libnet_group.c index 50ba079b71..cae6d6d272 100644 --- a/source4/libnet/libnet_group.c +++ b/source4/libnet/libnet_group.c @@ -444,6 +444,8 @@ struct composite_context *libnet_GroupList_send(struct libnet_context *ctx, /* prepare arguments of QueryDomainInfo call */ s->query_domain.in.handle = &ctx->lsa.handle; s->query_domain.in.level = LSA_POLICY_INFO_DOMAIN; + s->query_domain.out.info = talloc_zero(c, union lsa_PolicyInformation *); + if (composite_nomem(s->query_domain.out.info, c)) return c; /* send the request */ query_req = dcerpc_lsa_QueryInfoPolicy_send(ctx->lsa.pipe, c, &s->query_domain); @@ -502,7 +504,7 @@ static void continue_domain_queried(struct rpc_request *req) if (!composite_is_ok(c)) return; /* get the returned domain info */ - s->dominfo = s->query_domain.out.info->domain; + s->dominfo = (*s->query_domain.out.info)->domain; /* make sure we have samr domain handle before continuing */ prereq_met = samr_domain_opened(s->ctx, s->domain_name, &c, &s->domain_open, @@ -592,7 +594,7 @@ static void continue_groups_enumerated(struct rpc_request *req) for (i = 0; i < s->group_list.out.sam->count; i++) { struct dom_sid *group_sid; struct samr_SamEntry *entry = &s->group_list.out.sam->entries[i]; - struct dom_sid *domain_sid = s->query_domain.out.info->domain.sid; + struct dom_sid *domain_sid = (*s->query_domain.out.info)->domain.sid; /* construct group sid from returned rid and queried domain sid */ group_sid = dom_sid_add_rid(c, domain_sid, entry->idx); diff --git a/source4/libnet/libnet_rpc.c b/source4/libnet/libnet_rpc.c index 28cbba2933..a0d93287a5 100644 --- a/source4/libnet/libnet_rpc.c +++ b/source4/libnet/libnet_rpc.c @@ -607,6 +607,8 @@ static void continue_lsa_policy(struct rpc_request *req) /* query lsa info for dns domain name and guid */ s->lsa_query_info2.in.handle = &s->lsa_handle; s->lsa_query_info2.in.level = LSA_POLICY_INFO_DNS; + s->lsa_query_info2.out.info = talloc_zero(c, union lsa_PolicyInformation *); + if (composite_nomem(s->lsa_query_info2.out.info, c)) return; query_info_req = dcerpc_lsa_QueryInfoPolicy2_send(s->lsa_pipe, c, &s->lsa_query_info2); if (composite_nomem(query_info_req, c)) return; @@ -658,13 +660,13 @@ static void continue_lsa_query_info2(struct rpc_request *req) /* Copy the dns domain name and guid from the query result */ /* this should actually be a conversion from lsa_StringLarge */ - s->r.out.realm = s->lsa_query_info2.out.info->dns.dns_domain.string; + s->r.out.realm = (*s->lsa_query_info2.out.info)->dns.dns_domain.string; s->r.out.guid = talloc(c, struct GUID); if (composite_nomem(s->r.out.guid, c)) { s->r.out.error_string = NULL; return; } - *s->r.out.guid = s->lsa_query_info2.out.info->dns.domain_guid; + *s->r.out.guid = (*s->lsa_query_info2.out.info)->dns.domain_guid; } /* post monitor message */ @@ -680,6 +682,8 @@ static void continue_lsa_query_info2(struct rpc_request *req) /* query lsa info for domain name and sid */ s->lsa_query_info.in.handle = &s->lsa_handle; s->lsa_query_info.in.level = LSA_POLICY_INFO_DOMAIN; + s->lsa_query_info.out.info = talloc_zero(c, union lsa_PolicyInformation *); + if (composite_nomem(s->lsa_query_info.out.info, c)) return; query_info_req = dcerpc_lsa_QueryInfoPolicy_send(s->lsa_pipe, c, &s->lsa_query_info); if (composite_nomem(query_info_req, c)) return; @@ -719,8 +723,8 @@ static void continue_lsa_query_info(struct rpc_request *req) } /* Copy the domain name and sid from the query result */ - s->r.out.domain_sid = s->lsa_query_info.out.info->domain.sid; - s->r.out.domain_name = s->lsa_query_info.out.info->domain.name.string; + s->r.out.domain_sid = (*s->lsa_query_info.out.info)->domain.sid; + s->r.out.domain_name = (*s->lsa_query_info.out.info)->domain.name.string; continue_epm_map_binding_send(c); } diff --git a/source4/libnet/libnet_user.c b/source4/libnet/libnet_user.c index dce7320c73..35b2432838 100644 --- a/source4/libnet/libnet_user.c +++ b/source4/libnet/libnet_user.c @@ -957,7 +957,9 @@ struct composite_context* libnet_UserList_send(struct libnet_context *ctx, /* prepare arguments of QueryDomainInfo call */ s->query_domain.in.handle = &ctx->lsa.handle; s->query_domain.in.level = LSA_POLICY_INFO_DOMAIN; - + s->query_domain.out.info = talloc_zero(c, union lsa_PolicyInformation *); + if (composite_nomem(s->query_domain.out.info, c)) return c; + /* send the request */ query_req = dcerpc_lsa_QueryInfoPolicy_send(ctx->lsa.pipe, c, &s->query_domain); if (composite_nomem(query_req, c)) return c; @@ -1015,7 +1017,7 @@ static void continue_domain_queried(struct rpc_request *req) if (!composite_is_ok(c)) return; /* get the returned domain info */ - s->dominfo = s->query_domain.out.info->domain; + s->dominfo = (*s->query_domain.out.info)->domain; /* make sure we have samr domain handle before continuing */ prereq_met = samr_domain_opened(s->ctx, s->domain_name, &c, &s->domain_open, @@ -1107,7 +1109,7 @@ static void continue_users_enumerated(struct rpc_request *req) for (i = 0; i < s->user_list.out.sam->count; i++) { struct dom_sid *user_sid; struct samr_SamEntry *entry = &s->user_list.out.sam->entries[i]; - struct dom_sid *domain_sid = s->query_domain.out.info->domain.sid; + struct dom_sid *domain_sid = (*s->query_domain.out.info)->domain.sid; /* construct user sid from returned rid and queried domain sid */ user_sid = dom_sid_add_rid(c, domain_sid, entry->idx); -- cgit From a4ad2658500e83613eeb5c01a6dfb5d067803d16 Mon Sep 17 00:00:00 2001 From: Günther Deschner Date: Mon, 27 Oct 2008 21:46:50 +0100 Subject: s4-libnet: fix user and group enumeration functions after lsa changes. Guenther --- source4/libnet/libnet_group.c | 2 ++ source4/libnet/libnet_user.c | 2 ++ 2 files changed, 4 insertions(+) (limited to 'source4/libnet') diff --git a/source4/libnet/libnet_group.c b/source4/libnet/libnet_group.c index cae6d6d272..eded378511 100644 --- a/source4/libnet/libnet_group.c +++ b/source4/libnet/libnet_group.c @@ -476,6 +476,8 @@ static void continue_lsa_domain_opened(struct composite_context *ctx) /* prepare arguments of QueryDomainInfo call */ s->query_domain.in.handle = &s->ctx->lsa.handle; s->query_domain.in.level = LSA_POLICY_INFO_DOMAIN; + s->query_domain.out.info = talloc_zero(c, union lsa_PolicyInformation *); + if (composite_nomem(s->query_domain.out.info, c)) return; /* send the request */ query_req = dcerpc_lsa_QueryInfoPolicy_send(s->ctx->lsa.pipe, c, &s->query_domain); diff --git a/source4/libnet/libnet_user.c b/source4/libnet/libnet_user.c index 35b2432838..c768319452 100644 --- a/source4/libnet/libnet_user.c +++ b/source4/libnet/libnet_user.c @@ -989,6 +989,8 @@ static void continue_lsa_domain_opened(struct composite_context *ctx) /* prepare arguments of QueryDomainInfo call */ s->query_domain.in.handle = &s->ctx->lsa.handle; s->query_domain.in.level = LSA_POLICY_INFO_DOMAIN; + s->query_domain.out.info = talloc_zero(c, union lsa_PolicyInformation *); + if (composite_nomem(s->query_domain.out.info, c)) return; /* send the request */ query_req = dcerpc_lsa_QueryInfoPolicy_send(s->ctx->lsa.pipe, c, &s->query_domain); -- cgit