1 /*
2  *  Unix SMB/CIFS implementation.
3  *  Internal DNS query structures
4  *  Copyright (C) Gerald Carter                2006.
5  *
6  *  This program is free software; you can redistribute it and/or modify
7  *  it under the terms of the GNU General Public License as published by
8  *  the Free Software Foundation; either version 3 of the License, or
9  *  (at your option) any later version.
10  *
11  *  This program is distributed in the hope that it will be useful,
12  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  *  GNU General Public License for more details.
15  *
16  *  You should have received a copy of the GNU General Public License
17  *  along with this program; if not, see <http://www.gnu.org/licenses/>.
18  */
19 
20 #ifndef _ADS_DNS_H
21 #define _ADS_DNS_H
22 
23 #include "replace.h"
24 #include <tevent.h>
25 #include "libcli/dns/dns.h"
26 
27 /* The following definitions come from libads/dns.c  */
28 
29 struct tevent_req *ads_dns_lookup_srv_send(TALLOC_CTX *mem_ctx,
30 					   struct tevent_context *ev,
31 					   const char *name);
32 NTSTATUS ads_dns_lookup_srv_recv(struct tevent_req *req,
33 				 TALLOC_CTX *mem_ctx,
34 				 struct dns_rr_srv **srvs,
35 				 size_t *num_srvs);
36 NTSTATUS ads_dns_lookup_srv(TALLOC_CTX *ctx,
37 				const char *name,
38 				struct dns_rr_srv **dclist,
39 				int *numdcs);
40 struct tevent_req *ads_dns_lookup_ns_send(TALLOC_CTX *mem_ctx,
41 					  struct tevent_context *ev,
42 					  const char *name);
43 NTSTATUS ads_dns_lookup_ns_recv(struct tevent_req *req,
44 				TALLOC_CTX *mem_ctx,
45 				struct dns_rr_ns **nss,
46 				size_t *num_nss);
47 NTSTATUS ads_dns_lookup_ns(TALLOC_CTX *ctx,
48 				const char *dnsdomain,
49 				struct dns_rr_ns **nslist,
50 				int *numns);
51 NTSTATUS ads_dns_query_dcs(TALLOC_CTX *ctx,
52 			   const char *realm,
53 			   const char *sitename,
54 			   struct dns_rr_srv **dclist,
55 			   int *numdcs );
56 NTSTATUS ads_dns_query_gcs(TALLOC_CTX *ctx,
57 			   const char *realm,
58 			   const char *sitename,
59 			   struct dns_rr_srv **dclist,
60 			   int *numdcs );
61 NTSTATUS ads_dns_query_kdcs(TALLOC_CTX *ctx,
62 			    const char *dns_forest_name,
63 			    const char *sitename,
64 			    struct dns_rr_srv **dclist,
65 			    int *numdcs );
66 NTSTATUS ads_dns_query_pdc(TALLOC_CTX *ctx,
67 			   const char *dns_domain_name,
68 			   struct dns_rr_srv **dclist,
69 			   int *numdcs );
70 NTSTATUS ads_dns_query_dcs_guid(TALLOC_CTX *ctx,
71 				const char *dns_forest_name,
72 				const char *domain_guid,
73 				struct dns_rr_srv **dclist,
74 				int *numdcs );
75 #endif	/* _ADS_DNS_H */
76