summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorAdam <Adam@anope.org>2010-12-06 17:06:57 -0500
committerAdam <Adam@anope.org>2010-12-12 19:37:03 -0500
commitaed53dbb47822a79eb9a6b61095ad04ec3d67818 (patch)
tree72d3210b5609ea2163854d14ec7fb2f48d8b4d12 /include
parenta507816701d136a1c22d2f6779d811840d61577c (diff)
Cleaned up some things, made the protocol modules use some basic inheritance to cut back on their code duplication. More work can be done in the future to remove even more of it.
Diffstat (limited to 'include')
-rw-r--r--include/extern.h55
-rw-r--r--include/servers.h3
-rw-r--r--include/services.h25
-rw-r--r--include/users.h6
4 files changed, 61 insertions, 28 deletions
diff --git a/include/extern.h b/include/extern.h
index 24f12a84f..c30914c9e 100644
--- a/include/extern.h
+++ b/include/extern.h
@@ -23,12 +23,13 @@ E void ModuleRunTimeDirCleanUp();
E IRCDVar *ircd;
E IRCDProto *ircdproto;
+E IRCdMessage *ircdmessage;
/**** actions.c ****/
-E void kill_user(const Anope::string &source, const Anope::string &user, const Anope::string &reason);
+E void kill_user(const Anope::string &source, User *user, const Anope::string &reason);
E bool bad_password(User *u);
-E void common_unban(ChannelInfo *ci, const Anope::string &nick);
+E void common_unban(ChannelInfo *ci, User *u);
E BotInfo *BotServ;
E BotInfo *ChanServ;
@@ -53,7 +54,6 @@ E Anope::string normalizeBuffer(const Anope::string &);
E void bot_raw_ban(User *requester, ChannelInfo *ci, const Anope::string &nick, const Anope::string &reason);
E void bot_raw_kick(User *requester, ChannelInfo *ci, const Anope::string &nick, const Anope::string &reason);
-E void bot_raw_mode(User *requester, ChannelInfo *ci, const Anope::string &mode, const Anope::string &nick);
/**** channels.c ****/
@@ -133,6 +133,7 @@ E Uplink *uplink_server;
/**** ircd.c ****/
E void pmodule_ircd_proto(IRCDProto *);
E void pmodule_ircd_var(IRCDVar *ircdvar);
+E void pmodule_ircd_message(IRCdMessage *message);
/**** language.cpp ****/
E std::vector<Anope::string> languages;
@@ -191,32 +192,45 @@ E void check_memos(User *u);
E MemoInfo *getmemoinfo(const Anope::string &name, bool &ischan, bool &isforbid);
E void memo_send(CommandSource &source, const Anope::string &name, const Anope::string &text, int z);
-/**** messages.c ****/
-
-E int m_nickcoll(const Anope::string &user);
-E int m_away(const Anope::string &source, const Anope::string &msg);
-E int m_kill(const Anope::string &nick, const Anope::string &msg);
-E int m_motd(const Anope::string &source);
-E int m_privmsg(const Anope::string &source, const Anope::string &receiver, const Anope::string &message);
-E bool m_stats(const Anope::string &source, const std::vector<Anope::string> &);
-E int m_whois(const Anope::string &source, const Anope::string &who);
-E bool m_time(const Anope::string &source, const std::vector<Anope::string> &);
-E bool m_version(const Anope::string &source, const std::vector<Anope::string> &);
+/**** messages.cpp ****/
+
E void init_core_messages();
+E bool OnStats(const Anope::string &source, const std::vector<Anope::string> &);
+E bool OnTime(const Anope::string &source, const std::vector<Anope::string> &);
+E bool OnVersion(const Anope::string &source, const std::vector<Anope::string> &);
+
+E bool On436(const Anope::string &, const std::vector<Anope::string> &);
+E bool OnAway(const Anope::string &, const std::vector<Anope::string> &);
+E bool OnJoin(const Anope::string &, const std::vector<Anope::string> &);
+E bool OnKick(const Anope::string &, const std::vector<Anope::string> &);
+E bool OnKill(const Anope::string &, const std::vector<Anope::string> &);
+E bool OnMode(const Anope::string &, const std::vector<Anope::string> &);
+E bool OnNick(const Anope::string &, const std::vector<Anope::string> &);
+E bool OnUID(const Anope::string &, const std::vector<Anope::string> &);
+E bool OnPart(const Anope::string &, const std::vector<Anope::string> &);
+E bool OnPing(const Anope::string &, const std::vector<Anope::string> &);
+E bool OnPrivmsg(const Anope::string &, const std::vector<Anope::string> &);
+E bool OnQuit(const Anope::string &, const std::vector<Anope::string> &);
+E bool OnServer(const Anope::string &, const std::vector<Anope::string> &);
+E bool OnSQuit(const Anope::string &, const std::vector<Anope::string> &);
+E bool OnTopic(const Anope::string &, const std::vector<Anope::string> &);
+E bool OnWhois(const Anope::string &, const std::vector<Anope::string> &);
+E bool OnCapab(const Anope::string &, const std::vector<Anope::string> &);
+E bool OnSJoin(const Anope::string &, const std::vector<Anope::string> &);
+E bool OnError(const Anope::string &, const std::vector<Anope::string> &);
+
/**** misc.c ****/
E bool IsFile(const Anope::string &filename);
E int toupper(char);
E int tolower(char);
-E char *strscpy(char *d, const char *s, size_t len);
#ifndef HAVE_STRLCPY
E size_t strlcpy(char *, const char *, size_t);
#endif
#ifndef HAVE_STRLCAT
E size_t strlcat(char *, const char *, size_t);
#endif
-E char *strnrepl(char *s, int32 size, const char *old, const char *nstr);
E const char *merge_args(int argc, char **argv);
E const char *merge_args(int argc, const char **argv);
@@ -302,8 +316,8 @@ E std::vector<Exception *> exceptions;
E void get_session_stats(long &count, long &mem);
E void get_exception_stats(long &count, long &mem);
-E void add_session(const Anope::string &nick, const Anope::string &host, const Anope::string &hostip);
-E void del_session(const Anope::string &host);
+E void add_session(User *u);
+E void del_session(User *u);
E void expire_exceptions();
@@ -333,10 +347,7 @@ E User *finduser(const Anope::string &nick);
E User *do_nick(const Anope::string &source, const Anope::string &nick, const Anope::string &username, const Anope::string &host, const Anope::string &server, const Anope::string &realname, time_t ts, const Anope::string &ip, const Anope::string &vhost, const Anope::string &uid, const Anope::string &modes);
E void do_umode(const Anope::string &, const Anope::string &user, const Anope::string &modes);
-E void do_quit(const Anope::string &source, const Anope::string &reason);
-E void do_kill(const Anope::string &source, const Anope::string &reason);
-
-E bool is_oper(User *user);
+E void do_kill(User *user, const Anope::string &reason);
E bool is_excepted(ChannelInfo *ci, User *user);
E bool is_excepted_mask(ChannelInfo *ci, const Anope::string &mask);
diff --git a/include/servers.h b/include/servers.h
index 43f3dc659..d22ab05ac 100644
--- a/include/servers.h
+++ b/include/servers.h
@@ -4,10 +4,7 @@
/* Anope */
extern CoreExport Server *Me;
-extern CoreExport void CapabParse(const std::vector<Anope::string> &params);
-
extern CoreExport void do_server(const Anope::string &source, const Anope::string &servername, unsigned int hops, const Anope::string &descript, const Anope::string &numeric);
-extern CoreExport void do_squit(const Anope::string &source, const Anope::string &server);
extern CoreExport const char *ts6_uid_retrieve();
extern CoreExport const char *ts6_sid_retrieve();
diff --git a/include/services.h b/include/services.h
index 2b4c13f7c..75aa4905c 100644
--- a/include/services.h
+++ b/include/services.h
@@ -897,6 +897,7 @@ enum DefconLevel
* Forward declaration reqired, because the base IRCDProto class uses some crap from in here.
*/
class IRCDProto;
+class IRCdMessage;
struct Uplink;
class ServerConfig;
@@ -999,6 +1000,30 @@ class CoreExport IRCDProto
virtual void SetAutoIdentificationToken(User *u) { }
};
+class CoreExport IRCdMessage
+{
+ public:
+ virtual bool On436(const Anope::string &, const std::vector<Anope::string> &);
+ virtual bool OnAway(const Anope::string &, const std::vector<Anope::string> &);
+ virtual bool OnJoin(const Anope::string &, const std::vector<Anope::string> &);
+ virtual bool OnKick(const Anope::string &, const std::vector<Anope::string> &);
+ virtual bool OnKill(const Anope::string &, const std::vector<Anope::string> &);
+ virtual bool OnMode(const Anope::string &, const std::vector<Anope::string> &) = 0;
+ virtual bool OnUID(const Anope::string &, const std::vector<Anope::string> &);
+ virtual bool OnNick(const Anope::string &, const std::vector<Anope::string> &) = 0;
+ virtual bool OnPart(const Anope::string &, const std::vector<Anope::string> &);
+ virtual bool OnPing(const Anope::string &, const std::vector<Anope::string> &);
+ virtual bool OnPrivmsg(const Anope::string &, const std::vector<Anope::string> &);
+ virtual bool OnQuit(const Anope::string &, const std::vector<Anope::string> &);
+ virtual bool OnServer(const Anope::string &, const std::vector<Anope::string> &) = 0;
+ virtual bool OnSQuit(const Anope::string &, const std::vector<Anope::string> &);
+ virtual bool OnTopic(const Anope::string &, const std::vector<Anope::string> &) = 0;
+ virtual bool OnWhois(const Anope::string &, const std::vector<Anope::string> &);
+ virtual bool OnCapab(const Anope::string &, const std::vector<Anope::string> &);
+ virtual bool OnSJoin(const Anope::string &, const std::vector<Anope::string> &) = 0;
+ virtual bool OnError(const Anope::string &, const std::vector<Anope::string> &);
+};
+
/*************************************************************************/
struct Uplink
diff --git a/include/users.h b/include/users.h
index 26ee5f33e..e06c5c5a5 100644
--- a/include/users.h
+++ b/include/users.h
@@ -149,12 +149,12 @@ class CoreExport User : public Extensible
/**
* Send a message (notice or privmsg, depending on settings) to a user
- * @param source Sender nick
+ * @param source Sender
* @param fmt Format of the Message
* @param ... any number of parameters
*/
- void SendMessage(const Anope::string &source, const char *fmt, ...);
- virtual void SendMessage(const Anope::string &source, const Anope::string &msg);
+ void SendMessage(BotInfo *source, const char *fmt, ...);
+ virtual void SendMessage(BotInfo *source, const Anope::string &msg);
/** Send a language string message to a user
* @param source Sender