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

dns_cache.h File Reference

#include "str.h"
#include "config.h"
#include "timer.h"
#include "ip_addr.h"
#include "atomic_ops.h"
#include "resolve.h"

Go to the source code of this file.

Data Structures

struct  dns_rr
struct  dns_lu_lst
struct  dns_hash_entry
struct  dns_srv_handle

Defines

#define DEFAULT_DNS_NEG_CACHE_TTL   60
#define DEFAULT_DNS_CACHE_MIN_TTL   0
#define DEFAULT_DNS_CACHE_MAX_TTL   ((unsigned int)(-1))
#define DEFAULT_DNS_MAX_MEM   500
#define DNS_SRV_LB
#define DNS_LU_LST
#define DNS_BAD_NAME   1
#define DNS_NO_FLAGS   0
#define DNS_IPV4_ONLY   1
#define DNS_IPV6_ONLY   2
#define DNS_IPV6_FIRST   4
#define DNS_SRV_RR_LB   8
#define DNS_TRY_NAPTR   16
#define IP_ERR_BAD_DST   2
#define IP_ERR_SND   3
#define IP_ERR_TIMEOUT   4
#define IP_ERR_TCP_CON   5

Typedefs

typedef unsigned short srv_flags_t

Enumerations

enum  dns_errors {
  E_DNS_OK = 0, E_DNS_EOR, E_DNS_UNKNOWN, E_DNS_INTERNAL_ERR,
  E_DNS_BAD_SRV_ENTRY, E_DNS_NO_SRV, E_DNS_BAD_IP_ENTRY, E_DNS_NO_IP,
  E_DNS_BAD_IP, E_DNS_BLACKLIST_IP, E_DNS_NAME_TOO_LONG, E_DNS_AF_MISMATCH,
  E_DNS_NO_NAPTR, E_DNS_CRITICAL
}

Functions

const char * dns_strerror (int err)
void fix_dns_flags (str *gname, str *name)
int use_dns_failover_fixup (void *handle, str *gname, str *name, void **val)
int use_dns_cache_fixup (void *handle, str *gname, str *name, void **val)
int dns_cache_max_mem_fixup (void *handle, str *gname, str *name, void **val)
int init_dns_cache ()
void destroy_dns_cache ()
void dns_hash_put (struct dns_hash_entry *e)
void dns_hash_put_shm_unsafe (struct dns_hash_entry *e)
void dns_srv_handle_put (struct dns_srv_handle *h)
void dns_srv_handle_ref (struct dns_srv_handle *h)
void dns_srv_handle_cpy (struct dns_srv_handle *dst, struct dns_srv_handle *src)
void dns_srv_handle_put_shm_unsafe (struct dns_srv_handle *h)
int dns_srv_handle_next (struct dns_srv_handle *h, int err)
void dns_srv_handle_init (struct dns_srv_handle *h)
int dns_srv_get_ip (str *name, struct ip_addr *ip, unsigned short *port, int flags)
int dns_get_ip (str *name, struct ip_addr *ip, int flags)
hostent * dns_srv_get_he (str *name, unsigned short *port, int flags)
hostent * dns_get_he (str *name, int flags)
int dns_sip_resolve (struct dns_srv_handle *h, str *name, struct ip_addr *ip, unsigned short *port, char *proto, int flags)
int dns_sip_resolve2su (struct dns_srv_handle *h, union sockaddr_union *su, str *name, unsigned short port, char *proto, int flags)
void dns_cache_flush (void)


Define Documentation

#define DEFAULT_DNS_CACHE_MAX_TTL   ((unsigned int)(-1))
 

Definition at line 58 of file dns_cache.h.

#define DEFAULT_DNS_CACHE_MIN_TTL   0
 

Definition at line 57 of file dns_cache.h.

#define DEFAULT_DNS_MAX_MEM   500
 

Definition at line 59 of file dns_cache.h.

#define DEFAULT_DNS_NEG_CACHE_TTL   60
 

Definition at line 56 of file dns_cache.h.

#define DNS_BAD_NAME   1
 

Definition at line 99 of file dns_cache.h.

#define DNS_IPV4_ONLY   1
 

Definition at line 103 of file dns_cache.h.

#define DNS_IPV6_FIRST   4
 

Definition at line 105 of file dns_cache.h.

#define DNS_IPV6_ONLY   2
 

Definition at line 104 of file dns_cache.h.

#define DNS_LU_LST
 

Definition at line 64 of file dns_cache.h.

#define DNS_NO_FLAGS   0
 

Definition at line 102 of file dns_cache.h.

#define DNS_SRV_LB
 

Definition at line 62 of file dns_cache.h.

#define DNS_SRV_RR_LB   8
 

Definition at line 106 of file dns_cache.h.

#define DNS_TRY_NAPTR   16
 

Definition at line 107 of file dns_cache.h.

#define IP_ERR_BAD_DST   2
 

Definition at line 111 of file dns_cache.h.

#define IP_ERR_SND   3
 

Definition at line 112 of file dns_cache.h.

#define IP_ERR_TCP_CON   5
 

Definition at line 114 of file dns_cache.h.

#define IP_ERR_TIMEOUT   4
 

Definition at line 113 of file dns_cache.h.


Typedef Documentation

typedef unsigned short srv_flags_t
 

Definition at line 158 of file dns_cache.h.


Enumeration Type Documentation

enum dns_errors
 

Enumeration values:
E_DNS_OK 
E_DNS_EOR 
E_DNS_UNKNOWN 
E_DNS_INTERNAL_ERR 
E_DNS_BAD_SRV_ENTRY 
E_DNS_NO_SRV 
E_DNS_BAD_IP_ENTRY 
E_DNS_NO_IP 
E_DNS_BAD_IP 
E_DNS_BLACKLIST_IP 
E_DNS_NAME_TOO_LONG 
E_DNS_AF_MISMATCH 
E_DNS_NO_NAPTR 
E_DNS_CRITICAL 

Definition at line 70 of file dns_cache.h.


Function Documentation

void destroy_dns_cache  ) 
 

Referenced by cleanup().

void dns_cache_flush void   ) 
 

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

struct hostent* dns_get_he str name,
int  flags
 

int dns_get_ip str name,
struct ip_addr ip,
int  flags
 

void dns_hash_put struct dns_hash_entry e  ) 
 

Referenced by dns_srv_handle_put().

void dns_hash_put_shm_unsafe struct dns_hash_entry e  ) 
 

Referenced by dns_srv_handle_put_shm_unsafe().

int dns_sip_resolve struct dns_srv_handle h,
str name,
struct ip_addr ip,
unsigned short *  port,
char *  proto,
int  flags
 

Referenced by dns_sip_resolve2su().

int dns_sip_resolve2su struct dns_srv_handle h,
union sockaddr_union su,
str name,
unsigned short  port,
char *  proto,
int  flags
[inline, static]
 

Definition at line 316 of file dns_cache.h.

References dns_sip_resolve(), flags, init_su(), and str.

Referenced by forward_request(), and uri2dst().

struct hostent* dns_srv_get_he str name,
unsigned short *  port,
int  flags
 

int dns_srv_get_ip str name,
struct ip_addr ip,
unsigned short *  port,
int  flags
 

void dns_srv_handle_cpy struct dns_srv_handle dst,
struct dns_srv_handle src
[inline, static]
 

Definition at line 227 of file dns_cache.h.

References dns_srv_handle_ref().

void dns_srv_handle_init struct dns_srv_handle h  )  [inline, static]
 

Definition at line 268 of file dns_cache.h.

References dns_srv_handle::a, dns_srv_handle::ip_no, dns_srv_handle::port, dns_srv_handle::proto, dns_srv_handle::srv, dns_srv_handle::srv_no, and dns_srv_handle::srv_tried_rrs.

Referenced by build_dlg_ack(), forward_request(), init_branches(), and t_uac_prepare().

int dns_srv_handle_next struct dns_srv_handle h,
int  err
[inline, static]
 

Definition at line 259 of file dns_cache.h.

References dns_srv_handle::a, dns_srv_handle::ip_no, and dns_srv_handle::srv.

Referenced by forward_request(), and uri2dst().

void dns_srv_handle_put struct dns_srv_handle h  )  [inline, static]
 

Definition at line 196 of file dns_cache.h.

References dns_srv_handle::a, dns_hash_put(), and dns_srv_handle::srv.

Referenced by build_dlg_ack(), forward_request(), and t_uac_prepare().

void dns_srv_handle_put_shm_unsafe struct dns_srv_handle h  )  [inline, static]
 

Definition at line 237 of file dns_cache.h.

References dns_srv_handle::a, dns_hash_put_shm_unsafe(), and dns_srv_handle::srv.

Referenced by free_cell().

void dns_srv_handle_ref struct dns_srv_handle h  )  [inline, static]
 

Definition at line 213 of file dns_cache.h.

References dns_srv_handle::a, atomic_inc, dns_hash_entry::refcnt, and dns_srv_handle::srv.

Referenced by dns_srv_handle_cpy().

const char * dns_strerror int  err  ) 
 

Referenced by forward_request(), and uri2dst().

void fix_dns_flags str gname,
str name
 

int init_dns_cache  ) 
 

Referenced by main().

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

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


Generated on Thu Jul 29 04:15:53 2010 for SIPExpressRouter by  doxygen 1.3.9.1