"Fossies" - the Fresh Open Source Software Archive 
Member "libspf2-1.2.10/src/include/spf_dns_rr.h" (28 Jan 2012, 2348 Bytes) of package /linux/privat/libspf2-1.2.10.tar.gz:
As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style:
standard) with prefixed line numbers and
code folding option.
Alternatively you can here
view or
download the uninterpreted source code file.
For more information about "spf_dns_rr.h" see the
Fossies "Dox" file reference documentation.
1 /*
2 * This program is free software; you can redistribute it and/or modify
3 * it under the terms of either:
4 *
5 * a) The GNU Lesser General Public License as published by the Free
6 * Software Foundation; either version 2.1, or (at your option) any
7 * later version,
8 *
9 * OR
10 *
11 * b) The two-clause BSD license.
12 *
13 * These licenses can be found with the distribution in the file LICENSES
14 */
15
16
17
18
19 #ifndef INC_SPF_DNS_RR
20 #define INC_SPF_DNS_RR
21
22 #include "spf_dns.h"
23
24 /**
25 * Data from a DNS RR.
26 *
27 * The strings in this union are usually malloc'ed larger than the
28 * size of the union. Only create pointers to it!
29 */
30 typedef
31 union
32 {
33 struct in_addr a;
34 char ptr[1];
35 char mx[1];
36 char txt[1];
37 struct in6_addr aaaa;
38 } SPF_dns_rr_data_t;
39
40 /**
41 * A DNS packet.
42 *
43 * This structure does not semantically match the DNS packet
44 * structure. It assumes that only one RR type was of interest,
45 * and that all RRs in the packet are of that type.
46 *
47 * This is also used in spf_dns_zone.c
48 */
49 typedef
50 struct SPF_dns_rr_struct
51 {
52 /* query information */
53 char *domain; /**< FQDN queried for. */
54 size_t domain_buf_len;/**< Alloced size of domain. */
55
56 ns_type rr_type; /**< Type of RR queried for. */
57
58 /* answer information */
59 int num_rr; /**< Number of RR returned in RR. */
60 SPF_dns_rr_data_t **rr; /**< RR set returned. */
61 size_t *rr_buf_len;/**< Alloced size of each RR. */
62 int rr_buf_num;/**< Number of RR allocated. */
63
64 time_t ttl; /**< Raw TTL. */
65 time_t utc_ttl; /**< TTL adjusted to UTC. */
66 SPF_dns_stat_t herrno; /**< h_error returned from query. */
67
68 /* misc information */
69 void *hook; /**< Used by DNS layers. */
70 SPF_dns_server_t *source; /**< Which layer created this RR. */
71 } SPF_dns_rr_t;
72
73 SPF_dns_rr_t *SPF_dns_rr_new(void);
74 void SPF_dns_rr_free(SPF_dns_rr_t *spfrr);
75 SPF_dns_rr_t *SPF_dns_rr_new_init(SPF_dns_server_t *spf_dns_server,
76 const char *domain,
77 ns_type rr_type, int ttl,
78 SPF_dns_stat_t herrno);
79 SPF_dns_rr_t *SPF_dns_rr_new_nxdomain(SPF_dns_server_t *spf_dns_server,
80 const char *domain);
81
82 SPF_errcode_t SPF_dns_rr_buf_realloc(SPF_dns_rr_t *spfrr,
83 int idx, size_t len );
84 SPF_errcode_t SPF_dns_rr_dup(SPF_dns_rr_t **dstp, SPF_dns_rr_t *src);
85
86
87 #endif