Riferimenti per il file hash.c

#include "stdinc.h"
#include "tools.h"
#include "s_conf.h"
#include "channel.h"
#include "channel_mode.h"
#include "client.h"
#include "common.h"
#include "handlers.h"
#include "list.h"
#include "modules.h"
#include "hash.h"
#include "resv.h"
#include "userhost.h"
#include "irc_string.h"
#include "ircd.h"
#include "numeric.h"
#include "send.h"
#include "memory.h"
#include "dbuf.h"
#include "s_user.h"

Vai al codice sorgente di questo file.

Funzioni

static struct UserHostfind_or_add_userhost (const char *)
void init_hash (void)
unsigned int strhash (const char *name)
void hash_add_client (struct Client *client_p)
void hash_add_channel (struct Channel *chptr)
void hash_add_resv (struct ResvChannel *chptr)
void hash_add_userhost (struct UserHost *userhost)
void hash_add_id (struct Client *client_p)
void hash_del_id (struct Client *client_p)
void hash_del_client (struct Client *client_p)
void hash_del_userhost (struct UserHost *userhost)
void hash_del_channel (struct Channel *chptr)
void hash_del_resv (struct ResvChannel *chptr)
struct Clientfind_client (const char *name)
struct Clienthash_find_id (const char *name)
static struct Clienthash_find_masked_server (const char *name)
struct Clientfind_server (const char *name)
struct Channelhash_find_channel (const char *name)
void * hash_get_bucket (int type, unsigned int hashv)
struct ResvChannelhash_find_resv (const char *name)
struct UserHosthash_find_userhost (const char *host)
void count_user_host (const char *user, const char *host, int *global_p, int *local_p, int *icount_p)
void add_user_host (const char *user, const char *host, int global)
void delete_user_host (const char *user, const char *host, int global)
static int exceeding_sendq (struct Client *to)
void free_list_task (struct ListTask *lt, struct Client *source_p)
static int list_allow_channel (const char *chname, struct ListTask *lt)
static void list_one_channel (struct Client *source_p, struct Channel *chptr, struct ListTask *list_task, int remote_request)
void safe_list_channels (struct Client *source_p, struct ListTask *list_task, int only_unmasked_channels, int remote_request)

Variabili

static BlockHeapuserhost_heap = NULL
static BlockHeapnamehost_heap = NULL
static unsigned int ircd_random_key = 0
static struct ClientidTable [HASHSIZE]
static struct ClientclientTable [HASHSIZE]
static struct ChannelchannelTable [HASHSIZE]
static struct UserHostuserhostTable [HASHSIZE]
static struct ResvChannelresvchannelTable [HASHSIZE]


Documentazione delle funzioni

void add_user_host ( const char *  user,
const char *  host,
int  global 
)

void count_user_host ( const char *  user,
const char *  host,
int *  global_p,
int *  local_p,
int *  icount_p 
)

void delete_user_host ( const char *  user,
const char *  host,
int  global 
)

static int exceeding_sendq ( struct Client to  )  [static]

Definizione alla linea 832 del file hash.c.

Riferimenti LocalUser::buf_sendq, dbuf_length, get_sendq(), e Client::localClient.

Referenziato da safe_list_channels().

struct Client* find_client ( const char *  name  )  [read]

static struct UserHost * find_or_add_userhost ( const char *  host  )  [static, read]

Definizione alla linea 795 del file hash.c.

Riferimenti BlockHeapAlloc(), hash_add_userhost(), hash_find_userhost(), UserHost::host, e strlcpy().

Referenziato da add_user_host().

struct Client* find_server ( const char *  name  )  [read]

void free_list_task ( struct ListTask lt,
struct Client source_p 
)

void hash_add_channel ( struct Channel chptr  ) 

Definizione alla linea 161 del file hash.c.

Riferimenti Channel::chname, Channel::hnextch, e strhash().

Referenziato da make_channel().

void hash_add_client ( struct Client client_p  ) 

void hash_add_id ( struct Client client_p  ) 

Definizione alla linea 188 del file hash.c.

Riferimenti Client::id, Client::idhnext, e strhash().

Referenziato da client_from_server(), init_uid(), ms_sid(), register_local_user(), e server_estab().

void hash_add_resv ( struct ResvChannel chptr  ) 

Definizione alla linea 170 del file hash.c.

Riferimenti ResvChannel::hnext, ResvChannel::name, e strhash().

Referenziato da create_channel_resv().

void hash_add_userhost ( struct UserHost userhost  ) 

Definizione alla linea 179 del file hash.c.

Riferimenti UserHost::host, UserHost::next, e strhash().

Referenziato da find_or_add_userhost().

void hash_del_channel ( struct Channel chptr  ) 

Definizione alla linea 303 del file hash.c.

Riferimenti Channel::chname, Channel::hnextch, e strhash().

Referenziato da destroy_channel().

void hash_del_client ( struct Client client_p  ) 

Definizione alla linea 236 del file hash.c.

Riferimenti Client::hnext, Client::name, e strhash().

Referenziato da change_local_nick(), exit_one_client(), nick_from_server(), e set_initial_nick().

void hash_del_id ( struct Client client_p  ) 

Definizione alla linea 203 del file hash.c.

Riferimenti Client::id, Client::idhnext, e strhash().

Referenziato da exit_one_client().

void hash_del_resv ( struct ResvChannel chptr  ) 

Definizione alla linea 330 del file hash.c.

Riferimenti ResvChannel::hnext, ResvChannel::name, e strhash().

Referenziato da delete_channel_resv().

void hash_del_userhost ( struct UserHost userhost  ) 

Definizione alla linea 269 del file hash.c.

Riferimenti UserHost::host, UserHost::next, e strhash().

Referenziato da delete_user_host().

struct Channel* hash_find_channel ( const char *  name  )  [read]

struct Client* hash_find_id ( const char *  name  )  [read]

Definizione alla linea 393 del file hash.c.

Riferimenti Client::id, Client::idhnext, irccmp(), e strhash().

Referenziato da find_person(), find_server(), mr_server(), ms_sid(), ms_uid(), e register_local_user().

static struct Client* hash_find_masked_server ( const char *  name  )  [static, read]

Definizione alla linea 431 del file hash.c.

Riferimenti buf, find_client(), HOSTLEN, e strlcpy().

Referenziato da find_server().

struct ResvChannel* hash_find_resv ( const char *  name  )  [read]

Definizione alla linea 580 del file hash.c.

Riferimenti ResvChannel::hnext, irccmp(), ResvChannel::name, e strhash().

Referenziato da can_send(), create_channel_resv(), m_join(), e remove_resv().

struct UserHost* hash_find_userhost ( const char *  host  )  [read]

Definizione alla linea 608 del file hash.c.

Riferimenti UserHost::host, irccmp(), UserHost::next, e strhash().

Referenziato da count_user_host(), delete_user_host(), e find_or_add_userhost().

void* hash_get_bucket ( int  type,
unsigned int  hashv 
)

Definizione alla linea 541 del file hash.c.

Riferimenti HASH_TYPE_CHANNEL, HASH_TYPE_CLIENT, HASH_TYPE_ID, HASH_TYPE_RESERVED, HASH_TYPE_USERHOST, e HASHSIZE.

Referenziato da mo_hash().

void init_hash ( void   ) 

Definizione alla linea 73 del file hash.c.

Riferimenti BlockHeapCreate(), CLIENT_HEAP_SIZE, HASHSIZE, e ircd_random_key.

Referenziato da main().

static int list_allow_channel ( const char *  chname,
struct ListTask lt 
) [static]

static void list_one_channel ( struct Client source_p,
struct Channel chptr,
struct ListTask list_task,
int  remote_request 
) [static]

void safe_list_channels ( struct Client source_p,
struct ListTask list_task,
int  only_unmasked_channels,
int  remote_request 
)

unsigned int strhash ( const char *  name  ) 


Documentazione delle variabili

struct Channel* channelTable[HASHSIZE] [static]

Definizione alla linea 60 del file hash.c.

struct Client* clientTable[HASHSIZE] [static]

Definizione alla linea 59 del file hash.c.

struct Client* idTable[HASHSIZE] [static]

Definizione alla linea 58 del file hash.c.

unsigned int ircd_random_key = 0 [static]

Definizione alla linea 51 del file hash.c.

Referenziato da init_hash(), e strhash().

BlockHeap* namehost_heap = NULL [static]

Definizione alla linea 48 del file hash.c.

struct ResvChannel* resvchannelTable[HASHSIZE] [static]

Definizione alla linea 62 del file hash.c.

BlockHeap* userhost_heap = NULL [static]

Definizione alla linea 47 del file hash.c.

struct UserHost* userhostTable[HASHSIZE] [static]

Definizione alla linea 61 del file hash.c.


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