summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVolker Lendecke <vl@samba.org>2009-06-28 23:07:00 +0200
committerVolker Lendecke <vl@samba.org>2009-07-04 12:54:22 +0200
commitf169772d9398218d7ef2d9586f254fa4c59fbff0 (patch)
tree4dde66d6378c76720b523c4c5e638e22cebda122
parent8666e79f8fc3fd05fabefeeadc2bd6a2a6f1c18a (diff)
downloadsamba-f169772d9398218d7ef2d9586f254fa4c59fbff0.tar.gz
samba-f169772d9398218d7ef2d9586f254fa4c59fbff0.tar.bz2
samba-f169772d9398218d7ef2d9586f254fa4c59fbff0.zip
Handle LSA_POLICY_INFO_DNS
-rw-r--r--source3/rpc_server/srv_lsa_nt.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/source3/rpc_server/srv_lsa_nt.c b/source3/rpc_server/srv_lsa_nt.c
index fa421070b9..324483b3ee 100644
--- a/source3/rpc_server/srv_lsa_nt.c
+++ b/source3/rpc_server/srv_lsa_nt.c
@@ -618,6 +618,32 @@ NTSTATUS _lsa_QueryInfoPolicy(pipes_struct *p,
break;
}
break;
+ case LSA_POLICY_INFO_DNS: {
+ struct pdb_domain_info *dominfo;
+
+ if ((pdb_capabilities() & PDB_CAP_ADS) == 0) {
+ DEBUG(10, ("Not replying to LSA_POLICY_INFO_DNS "
+ "without ADS passdb backend\n"));
+ status = NT_STATUS_INVALID_INFO_CLASS;
+ break;
+ }
+
+ dominfo = pdb_get_domain_info(info);
+ if (dominfo == NULL) {
+ status = NT_STATUS_NO_MEMORY;
+ break;
+ }
+
+ init_lsa_StringLarge(&info->dns.name,
+ dominfo->name);
+ init_lsa_StringLarge(&info->dns.dns_domain,
+ dominfo->dns_domain);
+ init_lsa_StringLarge(&info->dns.dns_forest,
+ dominfo->dns_forest);
+ info->dns.domain_guid = dominfo->guid;
+ info->dns.sid = &dominfo->sid;
+ break;
+ }
default:
DEBUG(0,("_lsa_QueryInfoPolicy: unknown info level in Lsa Query: %d\n",
r->in.level));