]>
git.ipfire.org Git - thirdparty/strongswan.git/blob - src/libstrongswan/resolver/rr.h
2 * Copyright (C) 2012 Reto Guadagnini
4 * Copyright (C) secunet Security Networks AG
6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License as published by the
8 * Free Software Foundation; either version 2 of the License, or (at your
9 * option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>.
11 * This program is distributed in the hope that it will be useful, but
12 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
13 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
19 * @{ @ingroup resolver
25 typedef struct rr_t rr_t
;
26 typedef enum rr_type_t rr_type_t
;
27 typedef enum rr_class_t rr_class_t
;
32 * Resource Record types.
34 * According to www.iana.org/assignments/dns-parameters (version 2012-03-13).
39 /** an authoritative name server */
41 //** a mail destination (OBSOLETE - use MX */
43 /** a mail forwarder (OBSOLETE - use MX) */
45 /** the canonical name for an alias */
47 /** marks the start of a zone of authority */
49 /** a mailbox domain name (EXPERIMENTAL) */
51 /** a mail group member (EXPERIMENTAL) */
53 /** a mail rename domain name (EXPERIMENTAL) */
55 /** a null RR (EXPERIMENTAL) */
57 /** a well known service description */
59 /** a domain name pointer */
61 /** host information */
63 /** mailbox or mail list information */
69 /** for Responsible Person */
71 /** for AFS Data Base location */
73 /** for X.25 PSDN address */
75 /** for ISDN address */
77 /** for Route Through */
79 /** for NSAP address, NSAP style A record */
81 /** for domain name pointer, NSAP style */
82 RR_TYPE_NSAP_PTR
= 23,
83 /** for security signature */
85 /** for security key */
87 /** X.400 mail mapping information */
89 /** Geographical Position */
93 /** Location Information */
95 /** Next Domain (OBSOLETE) */
97 /** Endpoint Identifier */
101 /** Server Selection */
105 /** Naming Authority Pointer */
111 /** A6 (OBSOLETE - use AAAA) */
121 /** Delegation Signer */
123 /** SSH Key Fingerprint */
126 RR_TYPE_IPSECKEY
= 45,
138 RR_TYPE_NSEC3PARAM
= 51,
140 /** Unassigned 52-54 */
142 /** Host Identity Protocol */
148 /** Trust Anchor LINK */
153 /** Unassigned 60-98 */
164 RR_TYPE_UNSPEC
= 103,
166 /** Unassigned 104-248 */
168 /** Transaction Key */
170 /** Transaction Signature */
172 /** incremental transfer */
174 /** transfer of an entire zone */
176 /** mailbox-related RRs (MB, MG or MR) */
178 /** mail agent RRs (OBSOLETE - see MX) */
180 /** A request for all records */
184 /** Certification Authority Authorization */
187 /** Unassigned 258-32767 */
189 /** DNSSEC Trust Authorities */
191 /** DNSSEC Lookaside Validation */
194 /** Unassigned 32770-65279 */
196 /** Private use 65280-65534 */
198 /** Reserved 65535 */
203 * Resource Record CLASSes
212 /** further CLASSes: http://wwwiana.org/assignments/dns-parameters */
217 * A DNS Resource Record.
219 * Represents a Resource Record of the Domain Name System
220 * as defined in RFC 1035.
226 * Get the NAME of the owner of this RR.
228 * @return owner name as string
230 char *(*get_name
)(rr_t
*this);
233 * Get the type of this RR.
237 rr_type_t (*get_type
)(rr_t
*this);
240 * Get the class of this RR.
244 rr_class_t (*get_class
)(rr_t
*this);
247 * Get the Time to Live (TTL) of this RR.
249 * @return Time to Live
251 uint32_t (*get_ttl
)(rr_t
*this);
254 * Get the content of the RDATA field as chunk.
256 * The data pointed by the chunk is still owned by the RR.
257 * Clone it if needed.
259 * @return RDATA field as chunk
261 chunk_t (*get_rdata
)(rr_t
*this);
264 * Destroy the Resource Record.
266 void (*destroy
) (rr_t
*this);
269 #endif /** RR_H_ @}*/