nickserv.c File Reference

#include "services.h"
#include "pseudo.h"

Include dependency graph for nickserv.c:

Go to the source code of this file.

Data Structures

struct  my_timeout

Defines

#define HASH(nick)   ((tolower((nick)[0])&31)<<5 | (tolower((nick)[1])&31))
#define TO_COLLIDE   0
#define TO_RELEASE   1
#define SAFE(x)
#define SAFE(x)

Functions

static void add_ns_timeout (NickAlias *na, int type, time_t delay)
void moduleAddNickServCmds (void)
void listnicks (int count_only, const char *nick)
void get_aliases_stats (long *nrec, long *memuse)
void get_core_stats (long *nrec, long *memuse)
void ns_init (void)
void nickserv (User *u, char *buf)
void load_old_ns_dbase (void)
void load_ns_req_db (void)
void load_ns_dbase (void)
void save_ns_dbase (void)
void save_ns_req_dbase (void)
void save_ns_rdb_dbase (void)
void save_ns_req_rdb_dbase (void)
int validate_user (User *u)
void cancel_user (User *u)
int nick_identified (User *u)
int nick_recognized (User *u)
int group_identified (User *u, NickCore *nc)
void expire_nicks ()
void expire_requests ()
NickRequestfindrequestnick (const char *nick)
NickAliasfindnick (const char *nick)
NickCorefindcore (const char *nick)
int is_on_access (User *u, NickCore *nc)
void alpha_insert_alias (NickAlias *na)
void insert_core (NickCore *nc)
void insert_requestnick (NickRequest *nr)
void change_core_display (NickCore *nc, char *newdisplay)
static int delcore (NickCore *nc)
int delnickrequest (NickRequest *nr)
int delnick (NickAlias *na)
void collide (NickAlias *na, int from_timeout)
void release (NickAlias *na, int from_timeout)
static void rem_ns_timeout (NickAlias *na, int type)
static void timeout_collide (Timeout *t)
static void timeout_release (Timeout *t)
void del_ns_timeout (NickAlias *na, int type)
void clean_ns_timeouts (NickAlias *na)
int should_mode_change (int16 status, int16 mode)
int do_setmodes (User *u)
void nsStartNickTracking (User *u)
void nsStopNickTracking (User *u)
int nsCheckNickTracking (User *u)

Variables

NickAliasnalists [1024]
NickCorenclists [1024]
NickRequestnrlists [1024]
unsigned int guestnum
static struct my_timeoutmy_timeouts


Define Documentation

#define HASH ( nick   )     ((tolower((nick)[0])&31)<<5 | (tolower((nick)[1])&31))

Definition at line 21 of file nickserv.c.

#define SAFE (  ) 

Value:

do {                                            \
    if ((x) < 0) {                                              \
        restore_db(f);                                          \
        log_perror("Write error on %s", NickDBName);            \
        if (time(NULL) - lastwarn > WarningTimeout) {           \
            anope_cmd_global(NULL, "Write error on %s: %s", NickDBName, \
                        strerror(errno));                       \
            lastwarn = time(NULL);                              \
        }                                                       \
        return;                                                 \
    }                                                           \
} while (0)

Definition at line 731 of file nickserv.c.

#define SAFE (  ) 

Value:

do {                                    \
    if ((x) < 0) {                                      \
        if (!forceload)                                 \
            fatal("Read error on %s", NickDBName);      \
        failed = 1;                                     \
        break;                                          \
    }                                                   \
} while (0)

Definition at line 731 of file nickserv.c.

#define TO_COLLIDE   0

Definition at line 29 of file nickserv.c.

#define TO_RELEASE   1

Definition at line 30 of file nickserv.c.


Function Documentation

static void add_ns_timeout ( NickAlias na,
int  type,
time_t  delay 
) [static]

void alpha_insert_alias ( NickAlias na  ) 

void cancel_user ( User u  ) 

void change_core_display ( NickCore nc,
char *  newdisplay 
)

void clean_ns_timeouts ( NickAlias na  ) 

void collide ( NickAlias na,
int  from_timeout 
)

void del_ns_timeout ( NickAlias na,
int  type 
)

static int delcore ( NickCore nc  )  [static]

int delnick ( NickAlias na  ) 

int delnickrequest ( NickRequest nr  ) 

int do_setmodes ( User u  ) 

Definition at line 1898 of file nickserv.c.

References c, chan_set_correct_modes(), user_::chans, MOD_CONT, and user_::u_chanlist::next.

Referenced by do_nickupdate().

void expire_nicks ( void   ) 

void expire_requests ( void   ) 

NickCore* findcore ( const char *  nick  ) 

NickAlias* findnick ( const char *  nick  ) 

NickRequest* findrequestnick ( const char *  nick  ) 

Definition at line 1193 of file nickserv.c.

References alog(), debug, HASH, nickrequest_::next, nickrequest_::nick, and stricmp().

Referenced by do_confirm(), do_resend(), and validate_user().

void get_aliases_stats ( long *  nrec,
long *  memuse 
)

void get_core_stats ( long *  nrec,
long *  memuse 
)

int group_identified ( User u,
NickCore nc 
)

Definition at line 1126 of file nickserv.c.

References user_::na, nickalias_::nc, and nick_identified().

Referenced by do_ghost(), do_recover(), and do_release().

void insert_core ( NickCore nc  ) 

void insert_requestnick ( NickRequest nr  ) 

int is_on_access ( User u,
NickCore nc 
)

void listnicks ( int  count_only,
const char *  nick 
)

void load_ns_dbase ( void   ) 

void load_ns_req_db ( void   ) 

void load_old_ns_dbase ( void   ) 

void moduleAddNickServCmds ( void   ) 

Definition at line 38 of file nickserv.c.

References modules_core_init(), NickServCoreModules, and NickServCoreNumber.

Referenced by ns_init().

int nick_identified ( User u  ) 

int nick_recognized ( User u  ) 

void nickserv ( User u,
char *  buf 
)

Definition at line 245 of file nickserv.c.

References anope_cmd_ctcp(), mod_run_cmd(), user_::nick, NICKSERV, notice_lang(), s_NickServ, skeleton, and stricmp().

Referenced by m_privmsg().

void ns_init ( void   ) 

Definition at line 233 of file nickserv.c.

References guestnum, and moduleAddNickServCmds().

Referenced by init_secondary().

int nsCheckNickTracking ( User u  ) 

Boolean function to check if the user requesting a nick has the tracking signature of that core in its structure.

Parameters:
u The user whom to check tracking for

Definition at line 1956 of file nickserv.c.

References nickcore_::display, user_::na, nickalias_::nc, nickalias_::nick, user_::nickTrack, NS_VERBOTEN, and nickalias_::status.

Referenced by do_nick().

void nsStartNickTracking ( User u  ) 

Start Nick tracking and store the nick core display under the user struct.

Parameters:
u The user to track nicks for

Definition at line 1920 of file nickserv.c.

References nickcore_::display, user_::na, nickalias_::nc, nick_identified(), user_::nickTrack, and sstrdup().

Referenced by do_confirm(), do_nick(), do_saset_display(), and do_set_display().

void nsStopNickTracking ( User u  ) 

Stop Nick tracking and remove the nick core display under the user struct.

Parameters:
u The user to stop tracking for

Definition at line 1942 of file nickserv.c.

References user_::nickTrack.

void release ( NickAlias na,
int  from_timeout 
)

static void rem_ns_timeout ( NickAlias na,
int  type 
) [static]

void save_ns_dbase ( void   ) 

void save_ns_rdb_dbase ( void   ) 

void save_ns_req_dbase ( void   ) 

void save_ns_req_rdb_dbase ( void   ) 

int should_mode_change ( int16  status,
int16  mode 
)

static void timeout_collide ( Timeout t  )  [static]

static void timeout_release ( Timeout t  )  [static]

Definition at line 1738 of file nickserv.c.

References timeout_::data, my_timeout::na, release(), rem_ns_timeout(), and TO_RELEASE.

Referenced by add_ns_timeout().

int validate_user ( User u  ) 


Variable Documentation

unsigned int guestnum

Definition at line 27 of file nickserv.c.

struct my_timeout * my_timeouts [static]

Definition at line 23 of file nickserv.c.

NickCore* nclists[1024]

Definition at line 24 of file nickserv.c.

Definition at line 25 of file nickserv.c.


Generated on Sun Oct 5 09:07:08 2008 for Anope by  doxygen 1.5.7.1