Postfix3.3.1
データ構造 | マクロ定義 | 型定義 | 関数
dns.h ファイル
#include <netinet/in.h>
#include <arpa/nameser.h>
#include <resolv.h>
#include <vstring.h>
#include <sock_addr.h>
#include <myaddrinfo.h>
#include <maps.h>

[ソースコード]

データ構造

struct  DNS_FIXED
 
struct  DNS_RR
 

マクロ定義

#define GETSHORT(s, cp)
 
#define GETLONG(l, cp)
 
#define RES_USE_DNSSEC   0
 
#define RES_USE_EDNS0   0
 
#define T_TLSA   52
 
#define T_RRSIG   46 /* Avoid unknown RR in logs */
 
#define T_DNAME   39 /* [RFC6672] */
 
#define DNS_TLSA_USAGE_CA_CONSTRAINT   0
 
#define DNS_TLSA_USAGE_SERVICE_CERTIFICATE_CONSTRAINT   1
 
#define DNS_TLSA_USAGE_TRUST_ANCHOR_ASSERTION   2
 
#define DNS_TLSA_USAGE_DOMAIN_ISSUED_CERTIFICATE   3
 
#define DNS_TLSA_SELECTOR_FULL_CERTIFICATE   0
 
#define DNS_TLSA_SELECTOR_SUBJECTPUBLICKEYINFO   1
 
#define DNS_TLSA_MATCHING_TYPE_NO_HASH_USED   0
 
#define DNS_TLSA_MATCHING_TYPE_SHA256   1
 
#define DNS_TLSA_MATCHING_TYPE_SHA512   2
 
#define T_TXT   16
 
#define DNS_RR_EQ_SA(rr, sa)
 
#define dns_lookup(name, type, rflags, list, fqdn, why)
 
#define dns_lookup_r(name, type, rflags, list, fqdn, why, rcode)
 
#define dns_lookup_l(name, rflags, list, fqdn, why, lflags, ...)
 
#define dns_lookup_v(name, rflags, list, fqdn, why, lflags, ltype)
 
#define DNS_REQ_FLAG_STOP_OK   (1<<0)
 
#define DNS_REQ_FLAG_STOP_INVAL   (1<<1)
 
#define DNS_REQ_FLAG_STOP_NULLMX   (1<<2)
 
#define DNS_REQ_FLAG_STOP_MX_POLICY   (1<<3)
 
#define DNS_REQ_FLAG_NCACHE_TTL   (1<<4)
 
#define DNS_REQ_FLAG_NONE   (0)
 
#define DNS_RECURSE   (-7) /* internal only: recursion needed */
 
#define DNS_NOTFOUND   (-6) /* query ok, data not found */
 
#define DNS_NULLMX   (-5) /* query ok, service unavailable */
 
#define DNS_FAIL   (-4) /* query failed, don't retry */
 
#define DNS_INVAL   (-3) /* query ok, malformed reply */
 
#define DNS_RETRY   (-2) /* query failed, try again */
 
#define DNS_POLICY   (-1) /* query ok, all records dropped */
 
#define DNS_OK   0 /* query succeeded */
 
#define DNS_NAME_LEN   1024
 

型定義

typedef struct DNS_FIXED DNS_FIXED
 
typedef struct DNS_RR DNS_RR
 

関数

const char * dns_strerror (unsigned)
 
const char * dns_strtype (unsigned)
 
unsigned dns_type (const char *)
 
char * dns_strrecord (VSTRING *, DNS_RR *)
 
DNS_RRdns_rr_create (const char *, const char *, ushort, ushort, unsigned, unsigned, const char *, size_t)
 
void dns_rr_free (DNS_RR *)
 
DNS_RRdns_rr_copy (DNS_RR *)
 
DNS_RRdns_rr_append (DNS_RR *, DNS_RR *)
 
DNS_RRdns_rr_sort (DNS_RR *, int(*)(DNS_RR *, DNS_RR *))
 
int dns_rr_compare_pref_ipv6 (DNS_RR *, DNS_RR *)
 
int dns_rr_compare_pref_ipv4 (DNS_RR *, DNS_RR *)
 
int dns_rr_compare_pref_any (DNS_RR *, DNS_RR *)
 
int dns_rr_compare_pref (DNS_RR *, DNS_RR *)
 
DNS_RRdns_rr_shuffle (DNS_RR *)
 
DNS_RRdns_rr_remove (DNS_RR *, DNS_RR *)
 
const char * dns_rr_to_pa (DNS_RR *, MAI_HOSTADDR_STR *)
 
DNS_RRdns_sa_to_rr (const char *, unsigned, struct sockaddr *)
 
int dns_rr_to_sa (DNS_RR *, unsigned, struct sockaddr *, SOCKADDR_SIZE *)
 
int dns_rr_eq_sa (DNS_RR *, struct sockaddr *)
 
int dns_lookup_x (const char *, unsigned, unsigned, DNS_RR **, VSTRING *, VSTRING *, int *, unsigned)
 
int dns_lookup_rl (const char *, unsigned, DNS_RR **, VSTRING *, VSTRING *, int *, int,...)
 
int dns_lookup_rv (const char *, unsigned, DNS_RR **, VSTRING *, VSTRING *, int *, int, unsigned *)
 
void dns_rr_filter_compile (const char *, const char *)
 
const char * dns_str_resflags (unsigned long)
 

マクロ定義詳解

#define DNS_FAIL   (-4) /* query failed, don't retry */

dns.h280 行目に定義があります。

#define DNS_INVAL   (-3) /* query ok, malformed reply */

dns.h281 行目に定義があります。

#define dns_lookup (   name,
  type,
  rflags,
  list,
  fqdn,
  why 
)
値:
dns_lookup_x((name), (type), (rflags), (list), (fqdn), (why), (int *) 0, \
(unsigned) 0)
int dns_lookup_x(const char *, unsigned, unsigned, DNS_RR **, VSTRING *, VSTRING *, int *, unsigned)
Definition: dns_lookup.c:914

dns.h229 行目に定義があります。

#define dns_lookup_l (   name,
  rflags,
  list,
  fqdn,
  why,
  lflags,
  ... 
)
値:
dns_lookup_rl((name), (rflags), (list), (fqdn), (why), (int *) 0, \
(lflags), __VA_ARGS__)
int dns_lookup_rl(const char *, unsigned, DNS_RR **, VSTRING *, VSTRING *, int *, int,...)
Definition: dns_lookup.c:1054

dns.h235 行目に定義があります。

#define dns_lookup_r (   name,
  type,
  rflags,
  list,
  fqdn,
  why,
  rcode 
)
値:
dns_lookup_x((name), (type), (rflags), (list), (fqdn), (why), (rcode), \
(unsigned) 0)
int dns_lookup_x(const char *, unsigned, unsigned, DNS_RR **, VSTRING *, VSTRING *, int *, unsigned)
Definition: dns_lookup.c:914

dns.h232 行目に定義があります。

#define dns_lookup_v (   name,
  rflags,
  list,
  fqdn,
  why,
  lflags,
  ltype 
)
値:
dns_lookup_rv((name), (rflags), (list), (fqdn), (why), (int *) 0, \
(lflags), (ltype))
int dns_lookup_rv(const char *, unsigned, DNS_RR **, VSTRING *, VSTRING *, int *, int, unsigned *)
Definition: dns_lookup.c:1130

dns.h238 行目に定義があります。

#define DNS_NAME_LEN   1024

dns.h289 行目に定義があります。

#define DNS_NOTFOUND   (-6) /* query ok, data not found */

dns.h278 行目に定義があります。

#define DNS_NULLMX   (-5) /* query ok, service unavailable */

dns.h279 行目に定義があります。

#define DNS_OK   0 /* query succeeded */

dns.h284 行目に定義があります。

#define DNS_POLICY   (-1) /* query ok, all records dropped */

dns.h283 行目に定義があります。

#define DNS_RECURSE   (-7) /* internal only: recursion needed */

dns.h277 行目に定義があります。

#define DNS_REQ_FLAG_NCACHE_TTL   (1<<4)

dns.h249 行目に定義があります。

#define DNS_REQ_FLAG_NONE   (0)

dns.h250 行目に定義があります。

#define DNS_REQ_FLAG_STOP_INVAL   (1<<1)

dns.h246 行目に定義があります。

#define DNS_REQ_FLAG_STOP_MX_POLICY   (1<<3)

dns.h248 行目に定義があります。

#define DNS_REQ_FLAG_STOP_NULLMX   (1<<2)

dns.h247 行目に定義があります。

#define DNS_REQ_FLAG_STOP_OK   (1<<0)

dns.h245 行目に定義があります。

#define DNS_RETRY   (-2) /* query failed, try again */

dns.h282 行目に定義があります。

#define DNS_RR_EQ_SA (   rr,
  sa 
)
値:
(SOCK_ADDR_IN_FAMILY(sa) == AF_INET && (rr)->type == T_A \
&& SOCK_ADDR_IN_ADDR(sa).s_addr == IN_ADDR((rr)->data).s_addr)
#define IN_ADDR(ia)
Definition: sock_addr.h:34
#define SOCK_ADDR_IN_FAMILY(sa)
Definition: sock_addr.h:31
#define SOCK_ADDR_IN_ADDR(sa)
Definition: sock_addr.h:33

dns.h214 行目に定義があります。

#define DNS_TLSA_MATCHING_TYPE_NO_HASH_USED   0

dns.h107 行目に定義があります。

#define DNS_TLSA_MATCHING_TYPE_SHA256   1

dns.h108 行目に定義があります。

#define DNS_TLSA_MATCHING_TYPE_SHA512   2

dns.h109 行目に定義があります。

#define DNS_TLSA_SELECTOR_FULL_CERTIFICATE   0

dns.h101 行目に定義があります。

#define DNS_TLSA_SELECTOR_SUBJECTPUBLICKEYINFO   1

dns.h102 行目に定義があります。

#define DNS_TLSA_USAGE_CA_CONSTRAINT   0

dns.h93 行目に定義があります。

#define DNS_TLSA_USAGE_DOMAIN_ISSUED_CERTIFICATE   3

dns.h96 行目に定義があります。

#define DNS_TLSA_USAGE_SERVICE_CERTIFICATE_CONSTRAINT   1

dns.h94 行目に定義があります。

#define DNS_TLSA_USAGE_TRUST_ANCHOR_ASSERTION   2

dns.h95 行目に定義があります。

#define GETLONG (   l,
  cp 
)
値:
{ \
unsigned char *t_cp = (u_char *)(cp); \
(l) = ((unsigned)t_cp[0] << 24) \
| ((unsigned)t_cp[1] << 16) \
| ((unsigned)t_cp[2] << 8) \
| ((unsigned)t_cp[3]) \
; \
(cp) += 4; \
}

dns.h45 行目に定義があります。

#define GETSHORT (   s,
  cp 
)
値:
{ \
unsigned char *t_cp = (u_char *)(cp); \
(s) = ((unsigned)t_cp[0] << 8) \
| ((unsigned)t_cp[1]) \
; \
(cp) += 2; \
}

dns.h37 行目に定義があります。

#define RES_USE_DNSSEC   0

dns.h68 行目に定義があります。

#define RES_USE_EDNS0   0

dns.h71 行目に定義があります。

#define T_DNAME   39 /* [RFC6672] */

dns.h87 行目に定義があります。

#define T_RRSIG   46 /* Avoid unknown RR in logs */

dns.h84 行目に定義があります。

#define T_TLSA   52

dns.h81 行目に定義があります。

#define T_TXT   16

dns.h115 行目に定義があります。

型定義詳解

typedef struct DNS_FIXED DNS_FIXED
typedef struct DNS_RR DNS_RR

関数詳解

int dns_lookup_rl ( const char *  ,
unsigned  ,
DNS_RR **  ,
VSTRING ,
VSTRING ,
int ,
int  ,
  ... 
)

dns_lookup.c1054 行目に定義があります。

int dns_lookup_rv ( const char *  ,
unsigned  ,
DNS_RR **  ,
VSTRING ,
VSTRING ,
int ,
int  ,
unsigned *   
)

dns_lookup.c1130 行目に定義があります。

int dns_lookup_x ( const char *  ,
unsigned  ,
unsigned  ,
DNS_RR **  ,
VSTRING ,
VSTRING ,
int ,
unsigned   
)

dns_lookup.c914 行目に定義があります。

DNS_RR* dns_rr_append ( DNS_RR ,
DNS_RR  
)

dns_rr.c168 行目に定義があります。

int dns_rr_compare_pref ( DNS_RR ,
DNS_RR  
)

dns_rr.c223 行目に定義があります。

int dns_rr_compare_pref_any ( DNS_RR ,
DNS_RR  
)

dns_rr.c214 行目に定義があります。

int dns_rr_compare_pref_ipv4 ( DNS_RR ,
DNS_RR  
)

dns_rr.c197 行目に定義があります。

int dns_rr_compare_pref_ipv6 ( DNS_RR ,
DNS_RR  
)

dns_rr.c180 行目に定義があります。

DNS_RR* dns_rr_copy ( DNS_RR )

dns_rr.c150 行目に定義があります。

DNS_RR* dns_rr_create ( const char *  ,
const char *  ,
ushort  ,
ushort  ,
unsigned  ,
unsigned  ,
const char *  ,
size_t   
)
int dns_rr_eq_sa ( DNS_RR ,
struct sockaddr *   
)

dns_rr_eq_sa.c57 行目に定義があります。

void dns_rr_filter_compile ( const char *  ,
const char *   
)

dns_rr_filter.c85 行目に定義があります。

void dns_rr_free ( DNS_RR )

dns_rr.c137 行目に定義があります。

DNS_RR* dns_rr_remove ( DNS_RR ,
DNS_RR  
)

dns_rr.c334 行目に定義があります。

DNS_RR* dns_rr_shuffle ( DNS_RR )

dns_rr.c288 行目に定義があります。

DNS_RR* dns_rr_sort ( DNS_RR ,
int(*)(DNS_RR *, DNS_RR *)   
)

dns_rr.c242 行目に定義があります。

const char* dns_rr_to_pa ( DNS_RR ,
MAI_HOSTADDR_STR  
)

dns_rr_to_pa.c53 行目に定義があります。

int dns_rr_to_sa ( DNS_RR ,
unsigned  ,
struct sockaddr *  ,
SOCKADDR_SIZE  
)

dns_rr_to_sa.c57 行目に定義があります。

DNS_RR* dns_sa_to_rr ( const char *  ,
unsigned  ,
struct sockaddr *   
)

dns_sa_to_rr.c53 行目に定義があります。

const char* dns_str_resflags ( unsigned  long)

dns_str_resflags.c110 行目に定義があります。

const char* dns_strerror ( unsigned  )

dns_strerror.c57 行目に定義があります。

char* dns_strrecord ( VSTRING ,
DNS_RR  
)

dns_strrecord.c50 行目に定義があります。

const char* dns_strtype ( unsigned  )

dns_strtype.c187 行目に定義があります。

unsigned dns_type ( const char *  )

dns_strtype.c203 行目に定義があります。