pjsip logo pjsip.org
Open source SIP stack and media stack for presence, im/instant messaging, and multimedia communication
Loading

HOME

SIP/media Features
High Performance SIP
Small Footprint SIP
Symbian Port

FAQ

Documentation

Licensing

Download

Development (Trac)

Projects using pjsip

Mailing List

Open Source Links


About: PJLIB, PJLIB-UTIL, PJSIP, and PJMEDIA are created by: Benny Prijono
<bennylp@pjsip.org>


 

Home --> Documentations --> PJLIB-UTIL Reference

dns.h File Reference

Low level DNS message parsing and packetization. More...

Go to the source code of this file.

Data Structures

struct  pj_dns_hdr
struct  pj_dns_parsed_query
struct  pj_dns_parsed_rr
union  pj_dns_parsed_rr::rdata
struct  pj_dns_parsed_rr::rdata::srv
struct  pj_dns_parsed_rr::rdata::cname
struct  pj_dns_parsed_rr::rdata::ns
struct  pj_dns_parsed_rr::rdata::ptr
struct  pj_dns_parsed_rr::rdata::a
struct  pj_dns_parsed_rr::rdata::aaaa
struct  pj_dns_parsed_packet

Defines

#define PJ_DNS_SET_RCODE(c)   ((pj_uint16_t)((c) & 0x0F))
#define PJ_DNS_SET_RA(on)   ((pj_uint16_t)((on) << 7))
#define PJ_DNS_SET_RD(on)   ((pj_uint16_t)((on) << 8))
#define PJ_DNS_SET_TC(on)   ((pj_uint16_t)((on) << 9))
#define PJ_DNS_SET_AA(on)   ((pj_uint16_t)((on) << 10))
#define PJ_DNS_SET_OPCODE(o)   ((pj_uint16_t)((o) << 11))
#define PJ_DNS_SET_QR(on)   ((pj_uint16_t)((on) << 15))
#define PJ_DNS_GET_RCODE(val)   (((val) & PJ_DNS_SET_RCODE(0x0F)) >> 0)
#define PJ_DNS_GET_RA(val)   (((val) & PJ_DNS_SET_RA(1)) >> 7)
#define PJ_DNS_GET_RD(val)   (((val) & PJ_DNS_SET_RD(1)) >> 8)
#define PJ_DNS_GET_TC(val)   (((val) & PJ_DNS_SET_TC(1)) >> 9)
#define PJ_DNS_GET_AA(val)   (((val) & PJ_DNS_SET_AA(1)) >> 10)
#define PJ_DNS_GET_OPCODE(val)   (((val) & PJ_DNS_SET_OPCODE(0x0F)) >> 11)
#define PJ_DNS_GET_QR(val)   (((val) & PJ_DNS_SET_QR(1)) >> 15)

Enumerations

enum  { PJ_DNS_CLASS_IN = 1 }
enum  pj_dns_type {
  PJ_DNS_TYPE_A = 1, PJ_DNS_TYPE_NS = 2, PJ_DNS_TYPE_MD = 3, PJ_DNS_TYPE_MF = 4,
  PJ_DNS_TYPE_CNAME = 5, PJ_DNS_TYPE_SOA = 6, PJ_DNS_TYPE_MB = 7, PJ_DNS_TYPE_MG = 8,
  PJ_DNS_TYPE_MR = 9, PJ_DNS_TYPE_NULL = 10, PJ_DNS_TYPE_WKS = 11, PJ_DNS_TYPE_PTR = 12,
  PJ_DNS_TYPE_HINFO = 13, PJ_DNS_TYPE_MINFO = 14, PJ_DNS_TYPE_MX = 15, PJ_DNS_TYPE_TXT = 16,
  PJ_DNS_TYPE_RP = 17, PJ_DNS_TYPE_AFSB = 18, PJ_DNS_TYPE_X25 = 19, PJ_DNS_TYPE_ISDN = 20,
  PJ_DNS_TYPE_RT = 21, PJ_DNS_TYPE_NSAP = 22, PJ_DNS_TYPE_NSAP_PTR = 23, PJ_DNS_TYPE_SIG = 24,
  PJ_DNS_TYPE_KEY = 25, PJ_DNS_TYPE_PX = 26, PJ_DNS_TYPE_GPOS = 27, PJ_DNS_TYPE_AAAA = 28,
  PJ_DNS_TYPE_LOC = 29, PJ_DNS_TYPE_NXT = 30, PJ_DNS_TYPE_EID = 31, PJ_DNS_TYPE_NIMLOC = 32,
  PJ_DNS_TYPE_SRV = 33, PJ_DNS_TYPE_ATMA = 34, PJ_DNS_TYPE_NAPTR = 35, PJ_DNS_TYPE_KX = 36,
  PJ_DNS_TYPE_CERT = 37, PJ_DNS_TYPE_A6 = 38, PJ_DNS_TYPE_DNAME = 39, PJ_DNS_TYPE_OPT = 41,
  PJ_DNS_TYPE_APL = 42, PJ_DNS_TYPE_DS = 43, PJ_DNS_TYPE_SSHFP = 44, PJ_DNS_TYPE_IPSECKEY = 45,
  PJ_DNS_TYPE_RRSIG = 46, PJ_DNS_TYPE_NSEC = 47, PJ_DNS_TYPE_DNSKEY = 48
}
enum  pj_dns_rcode {
  PJ_DNS_RCODE_FORMERR = 1, PJ_DNS_RCODE_SERVFAIL = 2, PJ_DNS_RCODE_NXDOMAIN = 3, PJ_DNS_RCODE_NOTIMPL = 4,
  PJ_DNS_RCODE_REFUSED = 5, PJ_DNS_RCODE_YXDOMAIN = 6, PJ_DNS_RCODE_YXRRSET = 7, PJ_DNS_RCODE_NXRRSET = 8,
  PJ_DNS_RCODE_NOTAUTH = 9, PJ_DNS_RCODE_NOTZONE = 10
}
enum  pj_dns_dup_options { PJ_DNS_NO_QD = 1, PJ_DNS_NO_ANS = 2, PJ_DNS_NO_NS = 4, PJ_DNS_NO_AR = 8 }

Functions

pj_status_t pj_dns_make_query (void *packet, unsigned *size, pj_uint16_t id, int qtype, const pj_str_t *name)
pj_status_t pj_dns_parse_packet (pj_pool_t *pool, const void *packet, unsigned size, pj_dns_parsed_packet **p_res)
void pj_dns_packet_dup (pj_pool_t *pool, const pj_dns_parsed_packet *p, unsigned options, pj_dns_parsed_packet **p_dst)
const char * pj_dns_get_type_name (int type)
void pj_dns_init_srv_rr (pj_dns_parsed_rr *rec, const pj_str_t *res_name, unsigned dnsclass, unsigned ttl, unsigned prio, unsigned weight, unsigned port, const pj_str_t *target)
void pj_dns_init_cname_rr (pj_dns_parsed_rr *rec, const pj_str_t *res_name, unsigned dnsclass, unsigned ttl, const pj_str_t *name)
void pj_dns_init_a_rr (pj_dns_parsed_rr *rec, const pj_str_t *res_name, unsigned dnsclass, unsigned ttl, const pj_in_addr *ip_addr)
void pj_dns_dump_packet (const pj_dns_parsed_packet *res)

Detailed Description

Low level DNS message parsing and packetization.

 


PJLIB-UTIL Open Source, small footprint, and portable asynchronous/caching DNS resolver, text scanner, STUN client, and XML library
Copyright (C) 2006-2009 Teluu Inc.