[SCM] Samba Shared Repository - branch v3-2-test updated -
initial-v3-2-test-2001-g0fac016
Günther Deschner
gd at samba.org
Fri Feb 8 09:17:10 GMT 2008
The branch, v3-2-test has been updated
via 0fac016d9d0018c983576d5cc8c3e06f40360b73 (commit)
via ddc2fc16bf18fe3ab8a0fc0021826253d5f4ed32 (commit)
via ccf79cfa88c7f3a10d191f8f0eedb9d421c65f6c (commit)
from 08888e3773fa9f92c1d0d4662983bd44bea69a6c (commit)
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-2-test
- Log -----------------------------------------------------------------
commit 0fac016d9d0018c983576d5cc8c3e06f40360b73
Author: Günther Deschner <gd at samba.org>
Date: Fri Feb 8 01:56:09 2008 +0100
Remove unused marshalling for LSA_QUERY_INFO2.
Guenther
commit ddc2fc16bf18fe3ab8a0fc0021826253d5f4ed32
Author: Günther Deschner <gd at samba.org>
Date: Fri Feb 8 01:57:55 2008 +0100
Use rpccli_lsa_QueryInfoPolicy2 in libnet join.
Guenther
commit ccf79cfa88c7f3a10d191f8f0eedb9d421c65f6c
Author: Günther Deschner <gd at samba.org>
Date: Fri Feb 8 01:52:27 2008 +0100
Use rpccli_lsa_QueryInfoPolicy2 in winbindd.
Guenther
-----------------------------------------------------------------------
Summary of changes:
source/include/rpc_lsa.h | 5 --
source/libnet/libnet_join.c | 16 +++---
source/rpc_client/cli_lsarpc.c | 96 --------------------------------
source/rpc_parse/parse_lsa.c | 119 ----------------------------------------
source/rpc_server/srv_lsa_nt.c | 2 +-
source/winbindd/winbindd_cm.c | 35 ++++++-----
6 files changed, 28 insertions(+), 245 deletions(-)
Changeset truncated at 500 lines:
diff --git a/source/include/rpc_lsa.h b/source/include/rpc_lsa.h
index 2825efc..b86324d 100644
--- a/source/include/rpc_lsa.h
+++ b/source/include/rpc_lsa.h
@@ -295,8 +295,6 @@ typedef struct lsa_info_ctr
} LSA_INFO_CTR;
-typedef LSA_INFO_CTR LSA_INFO_CTR2;
-
/* LSA_R_QUERY_INFO - response to LSA query info policy */
typedef struct lsa_r_query_info
{
@@ -306,9 +304,6 @@ typedef struct lsa_r_query_info
} LSA_R_QUERY_INFO;
-typedef LSA_Q_QUERY_INFO LSA_Q_QUERY_INFO2;
-typedef LSA_R_QUERY_INFO LSA_R_QUERY_INFO2;
-
/*******************************************************/
typedef struct {
diff --git a/source/libnet/libnet_join.c b/source/libnet/libnet_join.c
index f855a57..2f8d3e3 100644
--- a/source/libnet/libnet_join.c
+++ b/source/libnet/libnet_join.c
@@ -610,6 +610,7 @@ static NTSTATUS libnet_join_joindomain_rpc(TALLOC_CTX *mem_ctx,
uchar md5buffer[16];
DATA_BLOB digested_session_key;
uchar md4_trust_password[16];
+ union lsa_PolicyInformation *info = NULL;
if (!r->in.machine_password) {
r->in.machine_password = talloc_strdup(mem_ctx, generate_random_str(DEFAULT_TRUST_ACCOUNT_PASSWORD_LENGTH));
@@ -641,16 +642,15 @@ static NTSTATUS libnet_join_joindomain_rpc(TALLOC_CTX *mem_ctx,
goto done;
}
- status = rpccli_lsa_query_info_policy2(pipe_hnd, mem_ctx, &lsa_pol,
- 12,
- &r->out.netbios_domain_name,
- &r->out.dns_domain_name,
- NULL,
- NULL,
- &r->out.domain_sid);
-
+ status = rpccli_lsa_QueryInfoPolicy2(pipe_hnd, mem_ctx,
+ &lsa_pol,
+ LSA_POLICY_INFO_DNS,
+ &info);
if (NT_STATUS_IS_OK(status)) {
r->out.domain_is_ad = true;
+ r->out.netbios_domain_name = info->dns.name.string;
+ r->out.dns_domain_name = info->dns.dns_domain.string;
+ r->out.domain_sid = info->dns.sid;
}
if (!NT_STATUS_IS_OK(status)) {
diff --git a/source/rpc_client/cli_lsarpc.c b/source/rpc_client/cli_lsarpc.c
index f3dad5a..b28a126 100644
--- a/source/rpc_client/cli_lsarpc.c
+++ b/source/rpc_client/cli_lsarpc.c
@@ -552,102 +552,6 @@ NTSTATUS rpccli_lsa_query_info_policy(struct rpc_pipe_client *cli,
return result;
}
-/** Query info policy2
- *
- * @param domain_name - returned remote server's domain name
- * @param dns_name - returned remote server's dns domain name
- * @param forest_name - returned remote server's forest name
- * @param domain_guid - returned remote server's domain guid
- * @param domain_sid - returned remote server's domain sid */
-
-NTSTATUS rpccli_lsa_query_info_policy2(struct rpc_pipe_client *cli,
- TALLOC_CTX *mem_ctx,
- POLICY_HND *pol, uint16 info_class,
- const char **domain_name,
- const char **dns_name,
- const char **forest_name,
- struct GUID **domain_guid,
- DOM_SID **domain_sid)
-{
- prs_struct qbuf, rbuf;
- LSA_Q_QUERY_INFO2 q;
- LSA_R_QUERY_INFO2 r;
- NTSTATUS result = NT_STATUS_UNSUCCESSFUL;
-
- if (info_class != 12)
- goto done;
-
- ZERO_STRUCT(q);
- ZERO_STRUCT(r);
-
- init_q_query2(&q, pol, info_class);
-
- CLI_DO_RPC( cli, mem_ctx, PI_LSARPC, LSA_QUERYINFO2,
- q, r,
- qbuf, rbuf,
- lsa_io_q_query_info2,
- lsa_io_r_query_info2,
- NT_STATUS_UNSUCCESSFUL);
-
- result = r.status;
-
- if (!NT_STATUS_IS_OK(result)) {
- goto done;
- }
-
- /* Return output parameters */
-
- ZERO_STRUCTP(domain_guid);
-
- if (domain_name && r.ctr.info.id12.hdr_nb_dom_name.buffer) {
- *domain_name = unistr2_to_ascii_talloc(mem_ctx,
- &r.ctr.info.id12
- .uni_nb_dom_name);
- if (!*domain_name) {
- return NT_STATUS_NO_MEMORY;
- }
- }
- if (dns_name && r.ctr.info.id12.hdr_dns_dom_name.buffer) {
- *dns_name = unistr2_to_ascii_talloc(mem_ctx,
- &r.ctr.info.id12
- .uni_dns_dom_name);
- if (!*dns_name) {
- return NT_STATUS_NO_MEMORY;
- }
- }
- if (forest_name && r.ctr.info.id12.hdr_forest_name.buffer) {
- *forest_name = unistr2_to_ascii_talloc(mem_ctx,
- &r.ctr.info.id12
- .uni_forest_name);
- if (!*forest_name) {
- return NT_STATUS_NO_MEMORY;
- }
- }
-
- if (domain_guid) {
- *domain_guid = TALLOC_P(mem_ctx, struct GUID);
- if (!*domain_guid) {
- return NT_STATUS_NO_MEMORY;
- }
- memcpy(*domain_guid,
- &r.ctr.info.id12.dom_guid,
- sizeof(struct GUID));
- }
-
- if (domain_sid && r.ctr.info.id12.ptr_dom_sid != 0) {
- *domain_sid = TALLOC_P(mem_ctx, DOM_SID);
- if (!*domain_sid) {
- return NT_STATUS_NO_MEMORY;
- }
- sid_copy(*domain_sid,
- &r.ctr.info.id12.dom_sid.sid);
- }
-
- done:
-
- return result;
-}
-
/**
* Enumerate list of trusted domains
*
diff --git a/source/rpc_parse/parse_lsa.c b/source/rpc_parse/parse_lsa.c
index daf4806..3e79058 100644
--- a/source/rpc_parse/parse_lsa.c
+++ b/source/rpc_parse/parse_lsa.c
@@ -854,61 +854,6 @@ bool lsa_io_dom_query_12(const char *desc, DOM_QUERY_12 *info, prs_struct *ps, i
reads or writes a structure.
********************************************************************/
-static bool lsa_io_query_info_ctr2(const char *desc, prs_struct *ps, int depth, LSA_INFO_CTR2 *ctr)
-{
- prs_debug(ps, depth, desc, "lsa_io_query_info_ctr2");
- depth++;
-
- if(!prs_uint16("info_class", ps, depth, &ctr->info_class))
- return False;
-
- switch (ctr->info_class) {
- case 1:
- if(!lsa_io_dom_query_1("", &ctr->info.id1, ps, depth))
- return False;
- break;
- case 2:
- if(!lsa_io_dom_query_2("", &ctr->info.id2, ps, depth))
- return False;
- break;
- case 3:
- if(!lsa_io_dom_query_3("", &ctr->info.id3, ps, depth))
- return False;
- break;
- case 5:
- if(!lsa_io_dom_query_5("", &ctr->info.id5, ps, depth))
- return False;
- break;
- case 6:
- if(!lsa_io_dom_query_6("", &ctr->info.id6, ps, depth))
- return False;
- break;
- case 10:
- if(!lsa_io_dom_query_10("", &ctr->info.id10, ps, depth))
- return False;
- break;
- case 11:
- if(!lsa_io_dom_query_11("", &ctr->info.id11, ps, depth))
- return False;
- break;
- case 12:
- if(!lsa_io_dom_query_12("", &ctr->info.id12, ps, depth))
- return False;
- break;
- default:
- DEBUG(0,("invalid info_class: %d\n", ctr->info_class));
- return False;
- break;
- }
-
- return True;
-}
-
-
-/*******************************************************************
-reads or writes a structure.
-********************************************************************/
-
static bool lsa_io_query_info_ctr(const char *desc, prs_struct *ps, int depth, LSA_INFO_CTR *ctr)
{
prs_debug(ps, depth, desc, "lsa_io_query_info_ctr");
@@ -2924,70 +2869,6 @@ bool policy_handle_is_valid(const POLICY_HND *hnd)
}
/*******************************************************************
- Inits an LSA_Q_QUERY_INFO2 structure.
-********************************************************************/
-
-void init_q_query2(LSA_Q_QUERY_INFO2 *in, POLICY_HND *hnd, uint16 info_class)
-{
- DEBUG(5, ("init_q_query2\n"));
-
- memcpy(&in->pol, hnd, sizeof(in->pol));
-
- in->info_class = info_class;
-}
-
-/*******************************************************************
- Reads or writes an LSA_Q_QUERY_DNSDOMINFO structure.
-********************************************************************/
-
-bool lsa_io_q_query_info2(const char *desc, LSA_Q_QUERY_INFO2 *in, prs_struct *ps, int depth)
-{
- prs_debug(ps, depth, desc, "lsa_io_q_query_info2");
- depth++;
-
- if(!prs_align(ps))
- return False;
-
- if(!smb_io_pol_hnd("pol", &in->pol, ps, depth))
- return False;
-
- if(!prs_uint16("info_class", ps, depth, &in->info_class))
- return False;
-
- return True;
-}
-
-/*******************************************************************
- Reads or writes an LSA_R_QUERY_DNSDOMINFO structure.
-********************************************************************/
-
-bool lsa_io_r_query_info2(const char *desc, LSA_R_QUERY_INFO2 *out,
- prs_struct *ps, int depth)
-{
- prs_debug(ps, depth, desc, "lsa_io_r_query_info2");
- depth++;
-
- if(!prs_align(ps))
- return False;
-
- if(!prs_uint32("dom_ptr", ps, depth, &out->dom_ptr))
- return False;
-
- if (out->dom_ptr) {
-
- if(!lsa_io_query_info_ctr2("", ps, depth, &out->ctr))
- return False;
- }
-
- if(!prs_align(ps))
- return False;
- if(!prs_ntstatus("status", ps, depth, &out->status))
- return False;
-
- return True;
-}
-
-/*******************************************************************
Inits an LSA_Q_ENUM_ACCT_RIGHTS structure.
********************************************************************/
void init_q_enum_acct_rights(LSA_Q_ENUM_ACCT_RIGHTS *in,
diff --git a/source/rpc_server/srv_lsa_nt.c b/source/rpc_server/srv_lsa_nt.c
index 9f0d448..61b9d19 100644
--- a/source/rpc_server/srv_lsa_nt.c
+++ b/source/rpc_server/srv_lsa_nt.c
@@ -1919,7 +1919,7 @@ NTSTATUS _lsa_QuerySecurity(pipes_struct *p,
/***************************************************************************
***************************************************************************/
-NTSTATUS _lsa_query_info2(pipes_struct *p, LSA_Q_QUERY_INFO2 *q_u, LSA_R_QUERY_INFO2 *r_u)
+ NTSTATUS _lsa_query_info2(pipes_struct *p, LSA_Q_QUERY_INFO2 *q_u, LSA_R_QUERY_INFO2 *r_u)
{
struct lsa_info *handle;
const char *nb_name;
diff --git a/source/winbindd/winbindd_cm.c b/source/winbindd/winbindd_cm.c
index 17afd1e..ea48dbd 100644
--- a/source/winbindd/winbindd_cm.c
+++ b/source/winbindd/winbindd_cm.c
@@ -1839,11 +1839,9 @@ static void set_dc_type_and_flags_connect( struct winbindd_domain *domain )
union dssetup_DsRoleInfo info;
const char *domain_name = NULL;
- const char *dns_name = NULL;
- const char *forest_name = NULL;
- DOM_SID *dom_sid = NULL;
+ DOM_SID *dom_sid = NULL;
+ union lsa_PolicyInformation *lsa_info = NULL;
-
if (!connection_ok(domain)) {
return;
}
@@ -1921,34 +1919,39 @@ no_dssetup:
if (NT_STATUS_IS_OK(result)) {
/* This particular query is exactly what Win2k clients use
to determine that the DC is active directory */
- result = rpccli_lsa_query_info_policy2(cli, mem_ctx, &pol,
- 12, &domain_name,
- &dns_name, &forest_name,
- NULL, &dom_sid);
+ result = rpccli_lsa_QueryInfoPolicy2(cli, mem_ctx,
+ &pol,
+ LSA_POLICY_INFO_DNS,
+ &lsa_info);
}
if (NT_STATUS_IS_OK(result)) {
domain->active_directory = True;
- if (domain_name)
- fstrcpy(domain->name, domain_name);
+ if (lsa_info->dns.name.string) {
+ fstrcpy(domain->name, lsa_info->dns.name.string);
+ }
- if (dns_name)
- fstrcpy(domain->alt_name, dns_name);
+ if (lsa_info->dns.dns_domain.string) {
+ fstrcpy(domain->alt_name,
+ lsa_info->dns.dns_domain.string);
+ }
/* See if we can set some domain trust flags about
ourself */
- if ( forest_name ) {
- fstrcpy(domain->forest_name, forest_name);
+ if (lsa_info->dns.dns_forest.string) {
+ fstrcpy(domain->forest_name,
+ lsa_info->dns.dns_forest.string);
if (strequal(domain->forest_name, domain->alt_name)) {
domain->domain_flags = NETR_TRUST_FLAG_TREEROOT;
}
}
- if (dom_sid)
- sid_copy(&domain->sid, dom_sid);
+ if (lsa_info->dns.sid) {
+ sid_copy(&domain->sid, lsa_info->dns.sid);
+ }
} else {
domain->active_directory = False;
--
Samba Shared Repository
More information about the samba-cvs
mailing list