/*******************************************************/
-/* LSA_Q_OPEN_TRUSTED_DOMAIN_BY_NAME - LSA Query Open Trusted Domain by Name*/
-typedef struct lsa_q_open_trusted_domain_by_name
-{
- POLICY_HND pol; /* policy handle */
- LSA_STRING name; /* domain name */
- uint32 access_mask; /* access mask */
-
-} LSA_Q_OPEN_TRUSTED_DOMAIN_BY_NAME;
-
-/* LSA_R_OPEN_TRUSTED_DOMAIN_BY_NAME - response to LSA Query Open Trusted Domain by Name */
-typedef struct {
- POLICY_HND handle; /* trustdom policy handle */
- NTSTATUS status; /* return code */
-} LSA_R_OPEN_TRUSTED_DOMAIN_BY_NAME;
-
-
-/*******************************************************/
-
-
typedef struct {
POLICY_HND handle;
UNISTR4 secretname;
} LSA_Q_QUERY_TRUSTED_DOMAIN_INFO;
-/* LSA_Q_QUERY_TRUSTED_DOMAIN_INFO_BY_SID - LSA query trusted domain info */
-typedef struct lsa_query_trusted_domain_info_by_sid
-{
- POLICY_HND pol; /* policy handle */
- DOM_SID2 dom_sid; /* domain sid */
- uint16 info_class; /* info class */
-
-} LSA_Q_QUERY_TRUSTED_DOMAIN_INFO_BY_SID;
-
-/* LSA_Q_QUERY_TRUSTED_DOMAIN_INFO_BY_NAME - LSA query trusted domain info */
-typedef struct lsa_query_trusted_domain_info_by_name
-{
- POLICY_HND pol; /* policy handle */
- LSA_STRING domain_name; /* domain name */
- uint16 info_class; /* info class */
-
-} LSA_Q_QUERY_TRUSTED_DOMAIN_INFO_BY_NAME;
-
typedef struct trusted_domain_info_name {
LSA_STRING netbios_name;
} TRUSTED_DOMAIN_INFO_NAME;
uint32 data_ptr;
} LSA_DATA_BUF_HDR;
-
typedef struct lsa_data_buf2 {
uint32 size;
uint8 *data;
return result;
}
-NTSTATUS rpccli_lsa_open_trusted_domain_by_name(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx,
- POLICY_HND *pol, const char *name, uint32 access_mask,
- POLICY_HND *trustdom_pol)
-{
- prs_struct qbuf, rbuf;
- LSA_Q_OPEN_TRUSTED_DOMAIN_BY_NAME q;
- LSA_R_OPEN_TRUSTED_DOMAIN_BY_NAME r;
- NTSTATUS result;
-
- ZERO_STRUCT(q);
- ZERO_STRUCT(r);
-
- /* Initialise input parameters */
-
- init_lsa_q_open_trusted_domain_by_name(&q, pol, name, access_mask);
-
- /* Marshall data and send request */
-
- CLI_DO_RPC( cli, mem_ctx, PI_LSARPC, LSA_OPENTRUSTDOMBYNAME,
- q, r,
- qbuf, rbuf,
- lsa_io_q_open_trusted_domain_by_name,
- lsa_io_r_open_trusted_domain_by_name,
- NT_STATUS_UNSUCCESSFUL);
-
- /* Return output parameters */
-
- result = r.status;
-
- if (NT_STATUS_IS_OK(result)) {
- *trustdom_pol = r.handle;
- }
-
- return result;
-}
-
-
-NTSTATUS rpccli_lsa_query_trusted_domain_info_by_sid(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx,
- POLICY_HND *pol,
- uint16 info_class, DOM_SID *dom_sid,
- LSA_TRUSTED_DOMAIN_INFO **info)
-{
- prs_struct qbuf, rbuf;
- LSA_Q_QUERY_TRUSTED_DOMAIN_INFO_BY_SID q;
- LSA_R_QUERY_TRUSTED_DOMAIN_INFO r;
- NTSTATUS result = NT_STATUS_UNSUCCESSFUL;
-
- ZERO_STRUCT(q);
- ZERO_STRUCT(r);
-
- /* Marshall data and send request */
-
- init_q_query_trusted_domain_info_by_sid(&q, pol, info_class, dom_sid);
-
- CLI_DO_RPC( cli, mem_ctx, PI_LSARPC, LSA_QUERYTRUSTDOMINFOBYSID,
- q, r,
- qbuf, rbuf,
- lsa_io_q_query_trusted_domain_info_by_sid,
- lsa_io_r_query_trusted_domain_info,
- NT_STATUS_UNSUCCESSFUL);
-
- result = r.status;
-
- if (!NT_STATUS_IS_OK(result)) {
- goto done;
- }
-
- *info = r.info;
-
-done:
-
- return result;
-}
-
-NTSTATUS rpccli_lsa_query_trusted_domain_info_by_name(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx,
- POLICY_HND *pol,
- uint16 info_class, const char *domain_name,
- LSA_TRUSTED_DOMAIN_INFO **info)
-{
- prs_struct qbuf, rbuf;
- LSA_Q_QUERY_TRUSTED_DOMAIN_INFO_BY_NAME q;
- LSA_R_QUERY_TRUSTED_DOMAIN_INFO r;
- NTSTATUS result = NT_STATUS_UNSUCCESSFUL;
-
- ZERO_STRUCT(q);
- ZERO_STRUCT(r);
-
- /* Marshall data and send request */
-
- init_q_query_trusted_domain_info_by_name(&q, pol, info_class, domain_name);
-
- CLI_DO_RPC( cli, mem_ctx, PI_LSARPC, LSA_QUERYTRUSTDOMINFOBYNAME,
- q, r,
- qbuf, rbuf,
- lsa_io_q_query_trusted_domain_info_by_name,
- lsa_io_r_query_trusted_domain_info,
- NT_STATUS_UNSUCCESSFUL);
-
- result = r.status;
-
- if (!NT_STATUS_IS_OK(result)) {
- goto done;
- }
-
- *info = r.info;
-
-done:
-
- return result;
-}
-
NTSTATUS cli_lsa_query_domain_info_policy(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx,
POLICY_HND *pol,
uint16 info_class, LSA_DOM_INFO_UNION **info)
#endif
-/*******************************************************************
- Inits an LSA_Q_OPEN_TRUSTED_DOMAIN_BY_NAME structure.
-********************************************************************/
-
-void init_lsa_q_open_trusted_domain_by_name(LSA_Q_OPEN_TRUSTED_DOMAIN_BY_NAME *q,
- POLICY_HND *hnd,
- const char *name,
- uint32 desired_access)
-{
- memcpy(&q->pol, hnd, sizeof(q->pol));
-
- init_lsa_string(&q->name, name);
- q->access_mask = desired_access;
-}
-
-/*******************************************************************
-********************************************************************/
-
-
-/*******************************************************************
- Reads or writes an LSA_Q_OPEN_TRUSTED_DOMAIN_BY_NAME structure.
-********************************************************************/
-
-bool lsa_io_q_open_trusted_domain_by_name(const char *desc, LSA_Q_OPEN_TRUSTED_DOMAIN_BY_NAME *q_o, prs_struct *ps, int depth)
-{
- prs_debug(ps, depth, desc, "lsa_io_q_open_trusted_domain_by_name");
- depth++;
-
- if(!prs_align(ps))
- return False;
-
- if(!smb_io_pol_hnd("pol", &q_o->pol, ps, depth))
- return False;
-
- if(!prs_align(ps))
- return False;
-
- if(!smb_io_lsa_string("name", &q_o->name, ps, depth))
- return False;
-
- if(!prs_align(ps))
- return False;
-
- if(!prs_uint32("access", ps, depth, &q_o->access_mask))
- return False;
-
- return True;
-}
-
-/*******************************************************************
- Reads or writes an LSA_R_OPEN_TRUSTED_DOMAIN_BY_NAME structure.
-********************************************************************/
-
-bool lsa_io_r_open_trusted_domain_by_name(const char *desc, LSA_R_OPEN_TRUSTED_DOMAIN_BY_NAME *out, prs_struct *ps, int depth)
-{
- prs_debug(ps, depth, desc, "lsa_io_r_open_trusted_domain_by_name");
- depth++;
-
- if(!prs_align(ps))
- return False;
-
- if (!smb_io_pol_hnd("handle", &out->handle, ps, depth))
- return False;
-
- if(!prs_ntstatus("status", ps, depth, &out->status))
- return False;
-
- return True;
-}
-
/*******************************************************************
********************************************************************/
q->info_class = info_class;
}
-/*******************************************************************
- Inits an LSA_Q_QUERY_TRUSTED_DOMAIN_INFO_BY_NAME structure.
-********************************************************************/
-
-void init_q_query_trusted_domain_info_by_name(LSA_Q_QUERY_TRUSTED_DOMAIN_INFO_BY_NAME *q,
- POLICY_HND *hnd, uint16 info_class,
- const char *dom_name)
-{
- DEBUG(5, ("init_q_query_trusted_domain_info_by_name\n"));
-
- q->pol = *hnd;
- init_lsa_string(&q->domain_name, dom_name );
- q->info_class = info_class;
-}
-
-/*******************************************************************
- Inits an LSA_Q_QUERY_TRUSTED_DOMAIN_INFO_BY_SID structure.
-********************************************************************/
-
-void init_q_query_trusted_domain_info_by_sid(LSA_Q_QUERY_TRUSTED_DOMAIN_INFO_BY_SID *q,
- POLICY_HND *hnd, uint16 info_class,
- DOM_SID *dom_sid)
-{
- DEBUG(5, ("init_q_query_trusted_domain_info_by_sid\n"));
-
- q->pol = *hnd;
- init_dom_sid2(&q->dom_sid, dom_sid);
- q->info_class = info_class;
-}
-
/*******************************************************************
Reads or writes an LSA_Q_QUERY_TRUSTED_DOMAIN_INFO structure.
********************************************************************/
}
-/*******************************************************************
- Reads or writes an LSA_Q_QUERY_TRUSTED_DOMAIN_INFO_BY_SID structure.
-********************************************************************/
-
-bool lsa_io_q_query_trusted_domain_info_by_sid(const char *desc,
- LSA_Q_QUERY_TRUSTED_DOMAIN_INFO_BY_SID *q_q,
- prs_struct *ps, int depth)
-{
- prs_debug(ps, depth, desc, "lsa_io_q_query_trusted_domain_info_by_sid");
- depth++;
-
- if(!prs_align(ps))
- return False;
-
- if(!smb_io_pol_hnd("pol", &q_q->pol, ps, depth))
- return False;
-
- if(!prs_align(ps))
- return False;
-
- if(!smb_io_dom_sid2("dom_sid", &q_q->dom_sid, ps, depth))
- return False;
-
- if(!prs_uint16("info_class", ps, depth, &q_q->info_class))
- return False;
-
- return True;
-}
-
-/*******************************************************************
- Reads or writes an LSA_Q_QUERY_TRUSTED_DOMAIN_INFO_BY_NAME structure.
-********************************************************************/
-
-bool lsa_io_q_query_trusted_domain_info_by_name(const char *desc,
- LSA_Q_QUERY_TRUSTED_DOMAIN_INFO_BY_NAME *q_q,
- prs_struct *ps, int depth)
-{
- prs_debug(ps, depth, desc, "lsa_io_q_query_trusted_domain_info_by_name");
- depth++;
-
- if(!prs_align(ps))
- return False;
-
- if(!smb_io_pol_hnd("pol", &q_q->pol, ps, depth))
- return False;
-
- if(!prs_align(ps))
- return False;
-
- if(!smb_io_lsa_string("domain_name", &q_q->domain_name, ps, depth))
- return False;
-
- if(!prs_uint16("info_class", ps, depth, &q_q->info_class))
- return False;
-
- return True;
-}
-
/*******************************************************************
********************************************************************/