diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/extern.h | 1 | ||||
-rw-r--r-- | include/services.h | 56 | ||||
-rw-r--r-- | include/users.h | 72 |
3 files changed, 81 insertions, 48 deletions
diff --git a/include/extern.h b/include/extern.h index c62e90929..069d217f4 100644 --- a/include/extern.h +++ b/include/extern.h @@ -945,6 +945,7 @@ E void expire_requests(void); EI int ns_do_register(User * u); E int delnick(NickAlias * na); E NickAlias *findnick(const char *nick); +E NickAlias *findnick(const std::string &nick); E NickCore *findcore(const char *nick); E void clean_ns_timeouts(NickAlias * na); E void nsStartNickTracking(User * u); diff --git a/include/services.h b/include/services.h index afde35efc..3eca6381b 100644 --- a/include/services.h +++ b/include/services.h @@ -212,10 +212,16 @@ extern int shutdown(int, int); #include "slist.h" #include "events.h" +/* pull in the various bits of STL to pull in */ +#include <string> + /*************************************************************************/ +/* forward declarations, mostly used by older code */ +class User; + + typedef struct server_ Server; -typedef struct user_ User; typedef struct channel_ Channel; typedef struct c_elist EList; typedef struct c_elist_entry Entry; @@ -833,54 +839,8 @@ struct server_ { #define SERVER_JUPED 0x0002 /*************************************************************************/ -struct u_chanlist { - struct u_chanlist *next, *prev; - Channel *chan; - int16 status; /* Associated flags; see CSTATUS_* below. */ -}; - -struct u_chaninfolist { - struct u_chaninfolist *next, *prev; - ChannelInfo *chan; -}; - -/* Online user and channel data. */ -struct user_ { - User *next, *prev; - - char nick[NICKMAX]; - - char *username; /* ident */ - char *host; /* User's real hostname */ - char *hostip; /* User's IP number */ - char *vhost; /* User's virtual hostname */ - char *vident; /* User's virtual ident */ - char *realname; /* Realname */ - Server *server; /* Server user is connected to */ - char *nickTrack; /* Nick Tracking */ - time_t timestamp; /* Timestamp of the nick */ - time_t my_signon; /* When did _we_ see the user? */ - uint32 svid; /* Services ID */ - uint32 mode; /* See below */ - char *uid; /* Univeral ID */ - - NickAlias *na; - - ModuleData *moduleData; /* defined for it, it should allow the module Add/Get */ - - int isSuperAdmin; /* is SuperAdmin on or off? */ - - struct u_chanlist *chans; /* Channels user has joined */ - struct u_chaninfolist *founder_chans; /* Channels user has identified for */ - - short invalid_pw_count; /* # of invalid password attempts */ - time_t invalid_pw_time; /* Time of last invalid password */ - - time_t lastmemosend; /* Last time MS SEND command used */ - time_t lastnickreg; /* Last time NS REGISTER cmd used */ - time_t lastmail; /* Last time this user sent a mail */ -}; +#include "users.h" struct cbmode_ { diff --git a/include/users.h b/include/users.h new file mode 100644 index 000000000..497c7d986 --- /dev/null +++ b/include/users.h @@ -0,0 +1,72 @@ +/* + * Copyright (C) 2008 Robin Burchell <w00t@inspircd.org> + * Copyright (C) 2008 Anope Team <info@anope.org> + * + * Please read COPYING and README for further details. + * + * Based on the original code of Epona by Lara. + * Based on the original code of Services by Andy Church. + * + * $Id$ + * + */ +struct u_chanlist { + struct u_chanlist *next, *prev; + Channel *chan; + int16 status; /* Associated flags; see CSTATUS_* below. */ +}; + +struct u_chaninfolist { + struct u_chaninfolist *next, *prev; + ChannelInfo *chan; +}; + +/* Online user and channel data. */ +class User +{ + public: // XXX: exposing a tiny bit too much + User *next, *prev; + + char nick[NICKMAX]; + + char *username; /* ident */ + char *host; /* User's real hostname */ + char *hostip; /* User's IP number */ + char *vhost; /* User's virtual hostname */ + char *vident; /* User's virtual ident */ + char *realname; /* Realname */ + Server *server; /* Server user is connected to */ + char *nickTrack; /* Nick Tracking */ + time_t timestamp; /* Timestamp of the nick */ + time_t my_signon; /* When did _we_ see the user? */ + uint32 svid; /* Services ID */ + uint32 mode; /* See below */ + char *uid; /* Univeral ID */ + + NickAlias *na; + + ModuleData *moduleData; /* defined for it, it should allow the module Add/Get */ + + int isSuperAdmin; /* is SuperAdmin on or off? */ + + struct u_chanlist *chans; /* Channels user has joined */ + struct u_chaninfolist *founder_chans; /* Channels user has identified for */ + + short invalid_pw_count; /* # of invalid password attempts */ + time_t invalid_pw_time; /* Time of last invalid password */ + + time_t lastmemosend; /* Last time MS SEND command used */ + time_t lastnickreg; /* Last time NS REGISTER cmd used */ + time_t lastmail; /* Last time this user sent a mail */ + + + /****************************************************************/ + + /** Create a new user object, initialising necessary fields and + * adds it to the hash + * + * @parameter nick The nickname of the user account. + */ + User(const std::string &nick); +}; + |