OLD | NEW |
---|---|
(Empty) | |
1 /* | |
2 * Copyright (c) 2004-2006, 2008, 2009 Apple Inc. All rights reserved. | |
3 * | |
4 * @APPLE_LICENSE_HEADER_START@ | |
5 * | |
6 * This file contains Original Code and/or Modifications of Original Code | |
7 * as defined in and that are subject to the Apple Public Source License | |
8 * Version 2.0 (the 'License'). You may not use this file except in | |
9 * compliance with the License. Please obtain a copy of the License at | |
10 * http://www.opensource.apple.com/apsl/ and read it before using this | |
11 * file. | |
12 * | |
13 * The Original Code and all software distributed under the License are | |
14 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | |
15 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | |
16 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | |
17 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | |
18 * Please see the License for the specific language governing rights and | |
19 * limitations under the License. | |
20 * | |
21 * @APPLE_LICENSE_HEADER_END@ | |
22 */ | |
23 | |
24 #ifndef __DNSINFO_H__ | |
25 #define __DNSINFO_H__ | |
26 | |
27 /* | |
28 * These routines provide access to the systems DNS configuration | |
29 */ | |
30 | |
31 #include <Availability.h> | |
32 #include <sys/cdefs.h> | |
33 #include <stdint.h> | |
34 #include <sys/types.h> | |
35 #include <sys/socket.h> | |
36 #include <netinet/in.h> | |
37 | |
38 #define DNSINFO_VERSION 20091104 | |
39 | |
40 #define DEFAULT_SEARCH_ORDER 200000 /* search order for the "default" resol ver domain name */ | |
41 | |
42 #define DNS_PTR(type, name) \ | |
43 union { \ | |
44 type name; \ | |
45 uint64_t _ ## name ## _p; \ | |
46 } | |
47 | |
48 #define DNS_VAR(type, name) \ | |
49 type name | |
50 | |
51 | |
52 #pragma pack(4) | |
53 typedef struct { | |
54 struct in_addr address; | |
55 struct in_addr mask; | |
56 } dns_sortaddr_t; | |
57 #pragma pack() | |
58 | |
59 | |
60 #pragma pack(4) | |
61 typedef struct { | |
62 DNS_PTR(char *, domain); /* domain */ | |
63 DNS_VAR(int32_t, n_nameserver); /* # nameserver */ | |
64 DNS_PTR(struct sockaddr **, nameserver); | |
65 DNS_VAR(uint16_t, port); /* port (in host byte or der) */ | |
66 DNS_VAR(int32_t, n_search); /* # search */ | |
67 DNS_PTR(char **, search); | |
68 DNS_VAR(int32_t, n_sortaddr); /* # sortaddr */ | |
69 DNS_PTR(dns_sortaddr_t **, sortaddr); | |
70 DNS_PTR(char *, options); /* options */ | |
71 DNS_VAR(uint32_t, timeout); /* timeout */ | |
72 DNS_VAR(uint32_t, search_order); /* search_order */ | |
73 DNS_VAR(uint32_t, if_index); | |
74 DNS_VAR(uint32_t, flags); | |
Mark Mentovai
2013/08/06 15:41:00
I’m curious why you chose this version of the file
szym
2013/08/06 15:48:58
395.7 is the newest version that would compile. In
| |
75 DNS_VAR(uint32_t, reserved[6]); | |
76 } dns_resolver_t; | |
77 #pragma pack() | |
78 | |
79 | |
80 #define DNS_RESOLVER_FLAGS_SCOPED 1 | |
81 | |
82 | |
83 #pragma pack(4) | |
84 typedef struct { | |
85 DNS_VAR(int32_t, n_resolver); /* resolver conf igurations */ | |
86 DNS_PTR(dns_resolver_t **, resolver); | |
87 DNS_VAR(int32_t, n_scoped_resolver); /* "scoped" reso lver configurations */ | |
88 DNS_PTR(dns_resolver_t **, scoped_resolver); | |
89 DNS_VAR(uint32_t, reserved[5]); | |
90 } dns_config_t; | |
91 #pragma pack() | |
92 | |
93 | |
94 __BEGIN_DECLS | |
95 | |
96 /* | |
97 * DNS configuration access APIs | |
98 */ | |
99 const char * | |
100 dns_configuration_notify_key () __OSX_AVAILABLE_ STARTING(__MAC_10_4,__IPHONE_2_0); | |
101 | |
102 dns_config_t * | |
103 dns_configuration_copy () __OSX_AVAILABLE_ STARTING(__MAC_10_4,__IPHONE_2_0); | |
104 | |
105 void | |
106 dns_configuration_free (dns_config_t *config) __OSX_AVAILABLE_ STARTING(__MAC_10_4,__IPHONE_2_0); | |
107 | |
108 __END_DECLS | |
109 | |
110 #endif /* __DNSINFO_H__ */ | |
OLD | NEW |