Main Page | Modules | Alphabetical List | Data Structures | Directories | File List | Data Fields | Globals | Related Pages

resolve.c File Reference

#include <sys/types.h>
#include <netinet/in.h>
#include <arpa/nameser.h>
#include <resolv.h>
#include <string.h>
#include "resolve.h"
#include "compiler_opt.h"
#include "dprint.h"
#include "mem/mem.h"
#include "ip_addr.h"
#include "error.h"
#include "globals.h"
#include "cfg_core.h"
#include "socket_info.h"

Go to the source code of this file.

Defines

#define local_malloc   pkg_malloc
#define local_free   pkg_free

Functions

int _resolv_init ()
int resolv_init ()
void resolv_reinit (str *gname, str *name)
int dns_reinit_fixup (void *handle, str *gname, str *name, void **val)
void reinit_naptr_proto_prefs (str *gname, str *name)
int dns_try_ipv6_fixup (void *handle, str *gname, str *name, void **val)
unsigned char * dns_skipname (unsigned char *p, unsigned char *end)
srv_rdatadns_srv_parser (unsigned char *msg, unsigned char *end, unsigned char *eor, unsigned char *rdata)
naptr_rdatadns_naptr_parser (unsigned char *msg, unsigned char *end, unsigned char *eor, unsigned char *rdata)
cname_rdatadns_cname_parser (unsigned char *msg, unsigned char *end, unsigned char *rdata)
a_rdatadns_a_parser (unsigned char *rdata, unsigned char *eor)
aaaa_rdatadns_aaaa_parser (unsigned char *rdata, unsigned char *eor)
void free_rdata_list (struct rdata *head)
rdataget_record (char *name, int type, int flags)
hostent * srv_sip_resolvehost (str *name, int zt, unsigned short *port, char *proto, int is_srv, struct rdata *ars)
hostent * _sip_resolvehost (str *name, unsigned short *port, char *proto)
int sip_hostport2su (union sockaddr_union *su, str *name, unsigned short port, char *proto)


Define Documentation

#define local_free   pkg_free
 

Definition at line 74 of file resolve.c.

#define local_malloc   pkg_malloc
 

Definition at line 73 of file resolve.c.


Function Documentation

int _resolv_init  )  [static]
 

Definition at line 126 of file resolve.c.

References cfg_get, core_cfg, L_WARN, and LOG.

Referenced by resolv_init(), and resolv_reinit().

struct hostent* _sip_resolvehost str name,
unsigned short *  port,
char *  proto
 

Definition at line 1297 of file resolve.c.

References cfg_get, core_cfg, srv_sip_resolvehost(), and str.

struct a_rdata* dns_a_parser unsigned char *  rdata,
unsigned char *  eor
 

Definition at line 425 of file resolve.c.

References a_rdata::ip, L_ERR, local_malloc, and LOG.

Referenced by get_record().

struct aaaa_rdata* dns_aaaa_parser unsigned char *  rdata,
unsigned char *  eor
 

Definition at line 445 of file resolve.c.

References aaaa_rdata::ip6, L_ERR, local_malloc, and LOG.

Referenced by get_record().

struct cname_rdata* dns_cname_parser unsigned char *  msg,
unsigned char *  end,
unsigned char *  rdata
 

Definition at line 392 of file resolve.c.

References L_ERR, len, local_free, local_malloc, LOG, MAX_DNS_NAME, cname_rdata::name, and cname_rdata::name_len.

Referenced by get_record().

struct naptr_rdata* dns_naptr_parser unsigned char *  msg,
unsigned char *  end,
unsigned char *  eor,
unsigned char *  rdata
 

Definition at line 321 of file resolve.c.

References naptr_rdata::flags, flags, naptr_rdata::flags_len, L_ERR, len, local_free, local_malloc, LOG, MAX_DNS_NAME, naptr_rdata::order, naptr_rdata::pref, naptr_rdata::regexp, regexp, naptr_rdata::regexp_len, naptr_rdata::repl, naptr_rdata::repl_len, naptr_rdata::services, naptr_rdata::services_len, and naptr_rdata::str_table.

Referenced by get_record().

int dns_reinit_fixup void handle,
str gname,
str name,
void **  val
 

Definition at line 176 of file resolve.c.

References str.

unsigned char* dns_skipname unsigned char *  p,
unsigned char *  end
 

Definition at line 208 of file resolve.c.

Referenced by get_record().

struct srv_rdata* dns_srv_parser unsigned char *  msg,
unsigned char *  end,
unsigned char *  eor,
unsigned char *  rdata
 

Definition at line 251 of file resolve.c.

References L_ERR, len, local_free, local_malloc, LOG, MAX_DNS_NAME, srv_rdata::name, srv_rdata::name_len, srv_rdata::port, srv_rdata::priority, and srv_rdata::weight.

Referenced by get_record().

int dns_try_ipv6_fixup void handle,
str gname,
str name,
void **  val
 

Definition at line 193 of file resolve.c.

References L_ERR, LOG, socket_types, and str.

void free_rdata_list struct rdata head  ) 
 

Definition at line 464 of file resolve.c.

References local_free, rdata::next, and rdata::rdata.

Referenced by enum_query(), get_record(), and srv_sip_resolvehost().

struct rdata* get_record char *  name,
int  type,
int  flags
 

Definition at line 497 of file resolve.c.

References dns_query::buff, cfg_get, rdata::class, core_cfg, DBG, dns_a_parser(), dns_aaaa_parser(), dns_cname_parser(), dns_naptr_parser(), dns_skipname(), dns_srv_parser(), flags, free_rdata_list(), L_ERR, local_free, local_malloc, LOG, MAX_DNS_NAME, rdata::name, rdata::name_len, rdata::next, srv_rdata::priority, rdata::rdata, size, rdata::ttl, rdata::type, unlikely, and srv_rdata::weight.

Referenced by enum_query(), main(), and srv_sip_resolvehost().

void reinit_naptr_proto_prefs str gname,
str name
 

Definition at line 183 of file resolve.c.

References str.

int resolv_init  ) 
 

Definition at line 148 of file resolve.c.

References _resolv_init().

Referenced by main().

void resolv_reinit str gname,
str name
 

Definition at line 162 of file resolve.c.

References _resolv_init(), L_DBG, LOG, and str.

int sip_hostport2su union sockaddr_union su,
str name,
unsigned short  port,
char *  proto
 

Definition at line 1310 of file resolve.c.

References hostent2su(), L_ERR, _str::len, LOG, _str::s, ser_error, sip_resolvehost, and str.

Referenced by forward_request(), select_next_hop_src_ip(), and uri2dst().

struct hostent* srv_sip_resolvehost str name,
int  zt,
unsigned short *  port,
char *  proto,
int  is_srv,
struct rdata ars
 

Definition at line 951 of file resolve.c.

References DBG, free_rdata_list(), get_record(), ip_addr2he(), L_CRIT, L_ERR, L_WARN, _str::len, likely, LOG, srv_rdata::name, rdata::next, srv_rdata::port, PROTO_NONE, PROTO_SCTP, PROTO_TCP, PROTO_TLS, PROTO_UDP, rdata::rdata, RES_ONLY_TYPE, resolvehost, _str::s, SIPS_PORT, SRV_MAX_PREFIX_LEN, SRV_SCTP_PREFIX, SRV_SCTP_PREFIX_LEN, SRV_TCP_PREFIX, SRV_TCP_PREFIX_LEN, SRV_TLS_PREFIX, SRV_TLS_PREFIX_LEN, SRV_UDP_PREFIX, SRV_UDP_PREFIX_LEN, str, str2ip(), and rdata::type.

Referenced by _sip_resolvehost().


Generated on Thu Jul 29 04:16:06 2010 for SIPExpressRouter by  doxygen 1.3.9.1