summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/extern.h1
-rw-r--r--include/services.h56
-rw-r--r--include/users.h72
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);
+};
+