libspf2  1.2.11
spf_dns_rr.h
Go to the documentation of this file.
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 
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;
39 
49 typedef
50 struct SPF_dns_rr_struct
51 {
52  /* query information */
53  char *domain;
58  /* answer information */
59  int num_rr;
61  size_t *rr_buf_len;
64  time_t ttl;
65  time_t utc_ttl;
68  /* misc information */
69  void *hook;
70  SPF_dns_server_t *source;
71 } SPF_dns_rr_t;
72 
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 
83  int idx, size_t len );
85 
86 
87 #endif
SPF_dns_stat_t
int SPF_dns_stat_t
Definition: spf_dns.h:108
ns_type
ns_type
Definition: arpa_nameser.h:300
SPF_dns_rr_t::rr_buf_len
size_t * rr_buf_len
Definition: spf_dns_rr.h:61
SPF_errcode_t
SPF_errcode_t
Definition: spf_response.h:119
SPF_dns_rr_free
void SPF_dns_rr_free(SPF_dns_rr_t *spfrr)
Definition: spf_dns_rr.c:114
SPF_dns_rr_t
Definition: spf_dns_rr.h:51
SPF_dns_rr_dup
SPF_errcode_t SPF_dns_rr_dup(SPF_dns_rr_t **dstp, SPF_dns_rr_t *src)
Definition: spf_dns_rr.c:189
SPF_dns_rr_t::domain_buf_len
size_t domain_buf_len
Definition: spf_dns_rr.h:54
SPF_dns_rr_t::domain
char * domain
Definition: spf_dns_rr.h:53
spf_dns.h
SPF_dns_rr_t::num_rr
int num_rr
Definition: spf_dns_rr.h:59
SPF_dns_rr_new_nxdomain
SPF_dns_rr_t * SPF_dns_rr_new_nxdomain(SPF_dns_server_t *spf_dns_server, const char *domain)
Definition: spf_dns_rr.c:53
SPF_dns_rr_buf_realloc
SPF_errcode_t SPF_dns_rr_buf_realloc(SPF_dns_rr_t *spfrr, int idx, size_t len)
Definition: spf_dns_rr.c:134
SPF_dns_rr_t::utc_ttl
time_t utc_ttl
Definition: spf_dns_rr.h:65
SPF_dns_rr_t::source
SPF_dns_server_t * source
Definition: spf_dns_rr.h:70
SPF_dns_rr_t::rr
SPF_dns_rr_data_t ** rr
Definition: spf_dns_rr.h:60
SPF_dns_rr_t::rr_type
ns_type rr_type
Definition: spf_dns_rr.h:56
SPF_dns_rr_new_init
SPF_dns_rr_t * SPF_dns_rr_new_init(SPF_dns_server_t *spf_dns_server, const char *domain, ns_type rr_type, int ttl, SPF_dns_stat_t herrno)
Definition: spf_dns_rr.c:61
SPF_dns_rr_t::rr_buf_num
int rr_buf_num
Definition: spf_dns_rr.h:62
SPF_dns_rr_data_t
Definition: spf_dns_rr.h:32
SPF_dns_rr_new
SPF_dns_rr_t * SPF_dns_rr_new(void)
Definition: spf_dns_rr.c:93
SPF_dns_rr_t::herrno
SPF_dns_stat_t herrno
Definition: spf_dns_rr.h:66
SPF_dns_rr_t::hook
void * hook
Definition: spf_dns_rr.h:69
SPF_dns_rr_t::ttl
time_t ttl
Definition: spf_dns_rr.h:64