Riferimenti per il file irc_res.c

#include "stdinc.h"
#include "tools.h"
#include "client.h"
#include "list.h"
#include "common.h"
#include "event.h"
#include "irc_string.h"
#include "sprintf_irc.h"
#include "ircd.h"
#include "numeric.h"
#include "restart.h"
#include "fdlist.h"
#include "fileio.h"
#include "s_bsd.h"
#include "s_log.h"
#include "send.h"
#include "memory.h"
#include "irc_res.h"
#include "irc_reslib.h"
#include "irc_getnameinfo.h"

Vai al codice sorgente di questo file.

Strutture dati

struct  reslist

Definizioni

#define MAXPACKET   1024
#define RES_MAXALIASES   35
#define RES_MAXADDRS   35
#define AR_TTL   600
#define TYPE_SIZE   (size_t)2
#define CLASS_SIZE   (size_t)2
#define TTL_SIZE   (size_t)4
#define RDLENGTH_SIZE   (size_t)2
#define ANSWER_FIXED_SIZE   (TYPE_SIZE + CLASS_SIZE + TTL_SIZE + RDLENGTH_SIZE)

Tipi enumerati (enum)

enum  request_state {
  REQ_IDLE, REQ_PTR, REQ_A, REQ_CNAME,
  REQ_INT
}

Funzioni

static void rem_request (struct reslist *request)
static struct reslistmake_request (struct DNSQuery *query)
static void do_query_name (struct DNSQuery *query, const char *name, struct reslist *request, int)
static void do_query_number (struct DNSQuery *query, const struct irc_ssaddr *, struct reslist *request)
static void query_name (const char *name, int query_class, int query_type, struct reslist *request)
static int send_res_msg (const char *buf, int len, int count)
static void resend_query (struct reslist *request)
static int proc_answer (struct reslist *request, HEADER *header, char *, char *)
static struct reslistfind_id (int id)
static struct DNSReplymake_dnsreply (struct reslist *request)
static int res_ourserver (const struct irc_ssaddr *inp)
static time_t timeout_query_list (time_t now)
static void timeout_resolver (void *notused)
static void start_resolver (void)
void init_resolver (void)
void restart_resolver (void)
void add_local_domain (char *hname, size_t size)
void delete_resolver_queries (const struct DNSQuery *query)
void gethost_byname_type (const char *name, struct DNSQuery *query, int type)
void gethost_byname (const char *name, struct DNSQuery *query)
void gethost_byaddr (const struct irc_ssaddr *addr, struct DNSQuery *query)
static void res_readreply (fde_t *fd, void *data)
void report_dns_servers (struct Client *source_p)

Variabili

static PF res_readreply
static fde_t ResolverFileDescriptor
static dlink_list request_list = { NULL, NULL, 0 }
struct irc_ssaddr irc_nsaddr_list [IRCD_MAXNS]
int irc_nscount
char irc_domain [HOSTLEN+1]


Documentazione delle definizioni

#define ANSWER_FIXED_SIZE   (TYPE_SIZE + CLASS_SIZE + TTL_SIZE + RDLENGTH_SIZE)

Definizione alla linea 62 del file irc_res.c.

Referenziato da proc_answer().

#define AR_TTL   600

Definizione alla linea 52 del file irc_res.c.

Referenziato da timeout_query_list().

#define CLASS_SIZE   (size_t)2

Definizione alla linea 59 del file irc_res.c.

Referenziato da proc_answer().

#define MAXPACKET   1024

Definizione alla linea 49 del file irc_res.c.

Referenziato da query_name(), e res_readreply().

#define RDLENGTH_SIZE   (size_t)2

Definizione alla linea 61 del file irc_res.c.

Referenziato da proc_answer().

#define RES_MAXADDRS   35

Definizione alla linea 51 del file irc_res.c.

#define RES_MAXALIASES   35

Definizione alla linea 50 del file irc_res.c.

#define TTL_SIZE   (size_t)4

Definizione alla linea 60 del file irc_res.c.

Referenziato da proc_answer().

#define TYPE_SIZE   (size_t)2

Definizione alla linea 58 del file irc_res.c.

Referenziato da proc_answer().


Documentazione dei tipi enumerati

Valori dei tipi enumerati:
REQ_IDLE 
REQ_PTR 
REQ_A 
REQ_CNAME 
REQ_INT 

Definizione alla linea 64 del file irc_res.c.


Documentazione delle funzioni

void add_local_domain ( char *  hname,
size_t  size 
)

Definizione alla linea 282 del file irc_res.c.

Riferimenti irc_domain.

Referenziato da do_query_name().

void delete_resolver_queries ( const struct DNSQuery query  ) 

static void do_query_name ( struct DNSQuery query,
const char *  name,
struct reslist request,
int  type 
) [static]

static void do_query_number ( struct DNSQuery query,
const struct irc_ssaddr addr,
struct reslist request 
) [static]

static struct reslist * find_id ( int  id  )  [static, read]

Definizione alla linea 391 del file irc_res.c.

Riferimenti _dlink_node::data, DLINK_FOREACH, _dlink_list::head, e reslist::id.

Referenziato da query_name(), e res_readreply().

void gethost_byaddr ( const struct irc_ssaddr addr,
struct DNSQuery query 
)

Definizione alla linea 435 del file irc_res.c.

Riferimenti do_query_number().

void gethost_byname ( const char *  name,
struct DNSQuery query 
)

Definizione alla linea 422 del file irc_res.c.

Riferimenti gethost_byname_type(), T_A, e T_AAAA.

void gethost_byname_type ( const char *  name,
struct DNSQuery query,
int  type 
)

Definizione alla linea 412 del file irc_res.c.

Riferimenti do_query_name().

void init_resolver ( void   ) 

Definizione alla linea 257 del file irc_res.c.

Riferimenti CurrentTime, e start_resolver().

Referenziato da main().

static struct DNSReply * make_dnsreply ( struct reslist request  )  [static, read]

Definizione alla linea 916 del file irc_res.c.

Riferimenti reslist::addr, DNSReply::addr, DNSReply::h_name, MyMalloc(), e reslist::name.

Referenziato da res_readreply().

static struct reslist * make_request ( struct DNSQuery query  )  [static, read]

static int proc_answer ( struct reslist request,
HEADER header,
char *  buf,
char *  eob 
) [static]

static void query_name ( const char *  name,
int  query_class,
int  query_type,
struct reslist request 
) [static]

static void rem_request ( struct reslist request  )  [static]

Definizione alla linea 307 del file irc_res.c.

Riferimenti dlinkDelete(), MyFree(), reslist::name, e reslist::node.

Referenziato da delete_resolver_queries(), res_readreply(), e timeout_query_list().

void report_dns_servers ( struct Client source_p  ) 

static int res_ourserver ( const struct irc_ssaddr inp  )  [static]

Definizione alla linea 129 del file irc_res.c.

Riferimenti irc_nsaddr_list, irc_nscount, e irc_ssaddr::ss.

Referenziato da res_readreply().

static void res_readreply ( fde_t fd,
void *  data 
) [static]

static void resend_query ( struct reslist request  )  [static]

void restart_resolver ( void   ) 

Definizione alla linea 270 del file irc_res.c.

Riferimenti eventDelete(), fd_close(), start_resolver(), e timeout_resolver().

Referenziato da mo_rehash(), e rehash().

static int send_res_msg ( const char *  buf,
int  len,
int  count 
) [static]

Definizione alla linea 364 del file irc_res.c.

Riferimenti _fde::fd, irc_nsaddr_list, irc_nscount, IRCD_MIN, reslist::sent, e irc_ssaddr::ss_len.

Referenziato da query_name().

static void start_resolver ( void   )  [static]

static time_t timeout_query_list ( time_t  now  )  [static]

static void timeout_resolver ( void *  notused  )  [static]

Definizione alla linea 226 del file irc_res.c.

Riferimenti CurrentTime, e timeout_query_list().

Referenziato da restart_resolver(), e start_resolver().


Documentazione delle variabili

char irc_domain[HOSTLEN+1]

Definizione alla linea 99 del file irc_reslib.c.

Referenziato da add_local_domain(), e parse_resvconf().

struct irc_ssaddr irc_nsaddr_list[IRCD_MAXNS]

Definizione alla linea 97 del file irc_reslib.c.

Referenziato da add_nameserver(), report_dns_servers(), res_ourserver(), send_res_msg(), e start_resolver().

Definizione alla linea 98 del file irc_reslib.c.

Referenziato da add_nameserver(), irc_res_init(), report_dns_servers(), res_ourserver(), e send_res_msg().

dlink_list request_list = { NULL, NULL, 0 } [static]

Definizione alla linea 95 del file irc_res.c.

PF res_readreply [static]

Definizione alla linea 47 del file irc_res.c.

Referenziato da res_readreply(), e start_resolver().

Definizione alla linea 94 del file irc_res.c.


Generato il Wed Apr 15 00:19:21 2009 per ircd-hybrid da  doxygen 1.5.6