Chromium Code Reviews| 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 |