summaryrefslogtreecommitdiff
path: root/src/ircd.c
diff options
context:
space:
mode:
authorRobin Burchell w00t@inspircd.org <Robin Burchell w00t@inspircd.org@5417fbe8-f217-4b02-8779-1006273d7864>2008-10-01 21:20:54 +0000
committerRobin Burchell w00t@inspircd.org <Robin Burchell w00t@inspircd.org@5417fbe8-f217-4b02-8779-1006273d7864>2008-10-01 21:20:54 +0000
commite46bc26a06cecb72ffe8587ec84997d89b75d852 (patch)
tree9d005b4f035494962cfbbdfd06a0fd23c9890f1e /src/ircd.c
parent8aa6436d7380d160d1fc2eb2235d71b57dacea17 (diff)
Merge commit 'cbx/anopeng-protocol' into anopeng
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@1295 5417fbe8-f217-4b02-8779-1006273d7864
Diffstat (limited to 'src/ircd.c')
-rw-r--r--src/ircd.c389
1 files changed, 70 insertions, 319 deletions
diff --git a/src/ircd.c b/src/ircd.c
index e02df19ca..a4ef94855 100644
--- a/src/ircd.c
+++ b/src/ircd.c
@@ -15,8 +15,7 @@
#include "services.h"
#include "extern.h"
-IRCDProto ircdproto;
-IRCDProtoNew *ircdprotonew;
+IRCDProto *ircdproto;
IRCDModes ircd_modes;
/**
@@ -34,63 +33,39 @@ CMMode cmmodes[128];
char csmodes[128];
int UseTSMODE;
-void pmodule_ircd_proto(IRCDProtoNew *proto)
+void pmodule_ircd_proto(IRCDProto *proto)
{
- ircdprotonew = proto;
-}
-
-/**
- * Initiate a protocol struct ready for use
- **/
-void initIrcdProto()
-{
- ircdproto.ircd_cmd_372 = NULL;
- ircdproto.ircd_cmd_372_error = NULL;
- ircdproto.ircd_cmd_375 = NULL;
- ircdproto.ircd_cmd_376 = NULL;
- ircdproto.ircd_cmd_351 = NULL;
- ircdproto.ircd_cmd_391 = NULL;
- ircdproto.ircd_cmd_250 = NULL;
- ircdproto.ircd_cmd_307 = NULL;
- ircdproto.ircd_cmd_311 = NULL;
- ircdproto.ircd_cmd_312 = NULL;
- ircdproto.ircd_cmd_317 = NULL;
- ircdproto.ircd_cmd_219 = NULL;
- ircdproto.ircd_cmd_401 = NULL;
- ircdproto.ircd_cmd_318 = NULL;
- ircdproto.ircd_cmd_242 = NULL;
- ircdproto.ircd_cmd_243 = NULL;
- ircdproto.ircd_cmd_211 = NULL;
+ ircdproto = proto;
}
void anope_set_umode(User *user, int ac, const char **av)
{
- ircdprotonew->set_umode(user, ac, av);
+ ircdproto->set_umode(user, ac, av);
}
void anope_cmd_svsnoop(const char *server, int set)
{
- ircdprotonew->cmd_svsnoop(server, set);
+ ircdproto->cmd_svsnoop(server, set);
}
void anope_cmd_remove_akill(const char *user, const char *host)
{
- ircdprotonew->cmd_remove_akill(user, host);
+ ircdproto->cmd_remove_akill(user, host);
}
void anope_cmd_topic(const char *whosets, const char *chan, const char *whosetit, const char *topic, time_t when)
{
- ircdprotonew->cmd_topic(whosets, chan, whosetit, topic, when);
+ ircdproto->cmd_topic(whosets, chan, whosetit, topic, when);
}
void anope_cmd_vhost_off(User *u)
{
- ircdprotonew->cmd_vhost_off(u);
+ ircdproto->cmd_vhost_off(u);
}
void anope_cmd_akill(const char *user, const char *host, const char *who, time_t when, time_t expires, const char *reason)
{
- ircdprotonew->cmd_akill(user, host, who, when, expires, reason);
+ ircdproto->cmd_akill(user, host, who, when, expires, reason);
}
void anope_cmd_svskill(const char *source, const char *user, const char *fmt, ...)
@@ -102,37 +77,17 @@ void anope_cmd_svskill(const char *source, const char *user, const char *fmt, ..
vsnprintf(buf, BUFSIZE - 1, fmt, args);
va_end(args);
}
- ircdprotonew->cmd_svskill(source, user, buf);
+ ircdproto->cmd_svskill(source, user, buf);
}
void anope_cmd_svsmode(User *u, int ac, const char **av)
{
- ircdprotonew->cmd_svsmode(u, ac, av);
-}
-
-void anope_cmd_372(const char *source, const char *msg)
-{
- ircdproto.ircd_cmd_372(source, msg);
-}
-
-void anope_cmd_372_error(const char *source)
-{
- ircdproto.ircd_cmd_372_error(source);
-}
-
-void anope_cmd_375(const char *source)
-{
- ircdproto.ircd_cmd_375(source);
-}
-
-void anope_cmd_376(const char *source)
-{
- ircdproto.ircd_cmd_376(source);
+ ircdproto->cmd_svsmode(u, ac, av);
}
void anope_cmd_guest_nick(const char *nick, const char *user, const char *host, const char *real, const char *modes)
{
- ircdprotonew->cmd_guest_nick(nick, user, host, real, modes);
+ ircdproto->cmd_guest_nick(nick, user, host, real, modes);
}
void anope_cmd_mode(const char *source, const char *dest, const char *fmt, ...)
@@ -144,12 +99,12 @@ void anope_cmd_mode(const char *source, const char *dest, const char *fmt, ...)
vsnprintf(buf, BUFSIZE - 1, fmt, args);
va_end(args);
}
- ircdprotonew->cmd_mode(source, dest, buf);
+ ircdproto->cmd_mode(source, dest, buf);
}
void anope_cmd_bot_nick(const char *nick, const char *user, const char *host, const char *real, const char *modes)
{
- ircdprotonew->cmd_bot_nick(nick, user, host, real, modes);
+ ircdproto->cmd_bot_nick(nick, user, host, real, modes);
}
void anope_cmd_kick(const char *source, const char *chan, const char *user, const char *fmt, ...)
@@ -161,7 +116,7 @@ void anope_cmd_kick(const char *source, const char *chan, const char *user, cons
vsnprintf(buf, BUFSIZE - 1, fmt, args);
va_end(args);
}
- ircdprotonew->cmd_kick(source, chan, user, buf);
+ ircdproto->cmd_kick(source, chan, user, buf);
}
void anope_cmd_notice_ops(const char *source, const char *dest, const char *fmt, ...)
@@ -173,7 +128,7 @@ void anope_cmd_notice_ops(const char *source, const char *dest, const char *fmt,
vsnprintf(buf, BUFSIZE - 1, fmt, args);
va_end(args);
}
- ircdprotonew->cmd_notice_ops(source, dest, buf);
+ ircdproto->cmd_notice_ops(source, dest, buf);
}
void anope_cmd_message(const char *source, const char *dest, const char *fmt, ...)
@@ -185,12 +140,12 @@ void anope_cmd_message(const char *source, const char *dest, const char *fmt, ..
vsnprintf(buf, BUFSIZE - 1, fmt, args);
va_end(args);
}
- ircdprotonew->cmd_message(source, dest, buf);
+ ircdproto->cmd_message(source, dest, buf);
}
void anope_cmd_notice(const char *source, const char *dest, const char *msg)
{
- ircdprotonew->cmd_notice(source, dest, msg);
+ ircdproto->cmd_notice(source, dest, msg);
}
void anope_cmd_action(const char *source, const char *dest, const char *fmt, ...)
@@ -205,7 +160,7 @@ void anope_cmd_action(const char *source, const char *dest, const char *fmt, ...
else return;
if (!*buf) return;
snprintf(actionbuf, BUFSIZE - 1, "%cACTION %s%c", 1, buf, 1);
- ircdprotonew->cmd_privmsg(source, dest, actionbuf);
+ ircdproto->cmd_privmsg(source, dest, actionbuf);
}
void anope_cmd_privmsg(const char *source, const char *dest, const char *fmt, ...)
@@ -217,27 +172,22 @@ void anope_cmd_privmsg(const char *source, const char *dest, const char *fmt, ..
vsnprintf(buf, BUFSIZE - 1, fmt, args);
va_end(args);
}
- ircdprotonew->cmd_privmsg(source, dest, buf);
+ ircdproto->cmd_privmsg(source, dest, buf);
}
void anope_cmd_serv_notice(const char *source, const char *dest, const char *msg)
{
- ircdprotonew->cmd_serv_notice(source, dest, msg);
+ ircdproto->cmd_serv_notice(source, dest, msg);
}
void anope_cmd_serv_privmsg(const char *source, const char *dest, const char *msg)
{
- ircdprotonew->cmd_serv_privmsg(source, dest, msg);
+ ircdproto->cmd_serv_privmsg(source, dest, msg);
}
void anope_cmd_bot_chan_mode(const char *nick, const char *chan)
{
- ircdprotonew->cmd_bot_chan_mode(nick, chan);
-}
-
-void anope_cmd_351(const char *source)
-{
- ircdproto.ircd_cmd_351(source);
+ ircdproto->cmd_bot_chan_mode(nick, chan);
}
void anope_cmd_quit(const char *source, const char *fmt, ...)
@@ -249,27 +199,27 @@ void anope_cmd_quit(const char *source, const char *fmt, ...)
vsnprintf(buf, BUFSIZE - 1, fmt, args);
va_end(args);
}
- ircdprotonew->cmd_quit(source, buf);
+ ircdproto->cmd_quit(source, buf);
}
void anope_cmd_pong(const char *servname, const char *who)
{
- ircdprotonew->cmd_pong(servname, who);
+ ircdproto->cmd_pong(servname, who);
}
void anope_cmd_join(const char *user, const char *channel, time_t chantime)
{
- ircdprotonew->cmd_join(user, channel, chantime);
+ ircdproto->cmd_join(user, channel, chantime);
}
void anope_cmd_unsqline(const char *user)
{
- ircdprotonew->cmd_unsqline(user);
+ ircdproto->cmd_unsqline(user);
}
void anope_cmd_invite(const char *source, const char *chan, const char *nick)
{
- ircdprotonew->cmd_invite(source, chan, nick);
+ ircdproto->cmd_invite(source, chan, nick);
}
void anope_cmd_part(const char *nick, const char *chan, const char *fmt, ...)
@@ -280,133 +230,9 @@ void anope_cmd_part(const char *nick, const char *chan, const char *fmt, ...)
va_start(args, fmt);
vsnprintf(buf, BUFSIZE - 1, fmt, args);
va_end(args);
- ircdprotonew->cmd_part(nick, chan, buf);
+ ircdproto->cmd_part(nick, chan, buf);
}
- else ircdprotonew->cmd_part(nick, chan, NULL);
-}
-
-void anope_cmd_391(const char *source, const char *timestr)
-{
- ircdproto.ircd_cmd_391(source, timestr);
-}
-
-void anope_cmd_250(const char *fmt, ...)
-{
- va_list args;
- char buf[BUFSIZE];
- *buf = '\0';
- if (fmt) {
- va_start(args, fmt);
- vsnprintf(buf, BUFSIZE - 1, fmt, args);
- va_end(args);
- }
- ircdproto.ircd_cmd_250(buf);
-}
-
-void anope_cmd_307(const char *fmt, ...)
-{
- va_list args;
- char buf[BUFSIZE];
- *buf = '\0';
- if (fmt) {
- va_start(args, fmt);
- vsnprintf(buf, BUFSIZE - 1, fmt, args);
- va_end(args);
- }
- ircdproto.ircd_cmd_307(buf);
-}
-
-void anope_cmd_311(const char *fmt, ...)
-{
- va_list args;
- char buf[BUFSIZE];
- *buf = '\0';
- if (fmt) {
- va_start(args, fmt);
- vsnprintf(buf, BUFSIZE - 1, fmt, args);
- va_end(args);
- }
- ircdproto.ircd_cmd_311(buf);
-}
-
-void anope_cmd_312(const char *fmt, ...)
-{
- va_list args;
- char buf[BUFSIZE];
- *buf = '\0';
- if (fmt) {
- va_start(args, fmt);
- vsnprintf(buf, BUFSIZE - 1, fmt, args);
- va_end(args);
- }
- ircdproto.ircd_cmd_312(buf);
-}
-
-void anope_cmd_317(const char *fmt, ...)
-{
- va_list args;
- char buf[BUFSIZE];
- *buf = '\0';
- if (fmt) {
- va_start(args, fmt);
- vsnprintf(buf, BUFSIZE - 1, fmt, args);
- va_end(args);
- }
- ircdproto.ircd_cmd_317(buf);
-}
-
-void anope_cmd_219(const char *source, const char *letter)
-{
- ircdproto.ircd_cmd_219(source, letter);
-}
-
-void anope_cmd_401(const char *source, const char *who)
-{
- ircdproto.ircd_cmd_401(source, who);
-}
-
-void anope_cmd_318(const char *source, const char *who)
-{
- ircdproto.ircd_cmd_318(source, who);
-}
-
-void anope_cmd_242(const char *fmt, ...)
-{
- va_list args;
- char buf[BUFSIZE];
- *buf = '\0';
- if (fmt) {
- va_start(args, fmt);
- vsnprintf(buf, BUFSIZE - 1, fmt, args);
- va_end(args);
- }
- ircdproto.ircd_cmd_242(buf);
-}
-
-void anope_cmd_243(const char *fmt, ...)
-{
- va_list args;
- char buf[BUFSIZE];
- *buf = '\0';
- if (fmt) {
- va_start(args, fmt);
- vsnprintf(buf, BUFSIZE - 1, fmt, args);
- va_end(args);
- }
- ircdproto.ircd_cmd_243(buf);
-}
-
-void anope_cmd_211(const char *fmt, ...)
-{
- va_list args;
- char buf[BUFSIZE];
- *buf = '\0';
- if (fmt) {
- va_start(args, fmt);
- vsnprintf(buf, BUFSIZE - 1, fmt, args);
- va_end(args);
- }
- ircdproto.ircd_cmd_211(buf);
+ else ircdproto->cmd_part(nick, chan, NULL);
}
void anope_cmd_global(const char *source, const char *fmt, ...)
@@ -418,142 +244,142 @@ void anope_cmd_global(const char *source, const char *fmt, ...)
vsnprintf(buf, BUFSIZE - 1, fmt, args);
va_end(args);
}
- ircdprotonew->cmd_global(source, buf);
+ ircdproto->cmd_global(source, buf);
}
void anope_cmd_sqline(const char *mask, const char *reason)
{
- ircdprotonew->cmd_sqline(mask, reason);
+ ircdproto->cmd_sqline(mask, reason);
}
void anope_cmd_squit(const char *servname, const char *message)
{
- ircdprotonew->cmd_squit(servname, message);
+ ircdproto->cmd_squit(servname, message);
}
void anope_cmd_svso(const char *source, const char *nick, const char *flag)
{
- ircdprotonew->cmd_svso(source, nick, flag);
+ ircdproto->cmd_svso(source, nick, flag);
}
void anope_cmd_chg_nick(const char *oldnick, const char *newnick)
{
- ircdprotonew->cmd_chg_nick(oldnick, newnick);
+ ircdproto->cmd_chg_nick(oldnick, newnick);
}
void anope_cmd_svsnick(const char *source, const char *guest, time_t when)
{
- ircdprotonew->cmd_svsnick(source, guest, when);
+ ircdproto->cmd_svsnick(source, guest, when);
}
void anope_cmd_vhost_on(const char *nick, const char *vIdent, const char *vhost)
{
- ircdprotonew->cmd_vhost_on(nick, vIdent, vhost);
+ ircdproto->cmd_vhost_on(nick, vIdent, vhost);
}
void anope_cmd_connect()
{
- ircdprotonew->cmd_connect();
+ ircdproto->cmd_connect();
}
void anope_cmd_svshold(const char *nick)
{
- ircdprotonew->cmd_svshold(nick);
+ ircdproto->cmd_svshold(nick);
}
void anope_cmd_release_svshold(const char *nick)
{
- ircdprotonew->cmd_release_svshold(nick);
+ ircdproto->cmd_release_svshold(nick);
}
void anope_cmd_unsgline(const char *mask)
{
- ircdprotonew->cmd_unsgline(mask);
+ ircdproto->cmd_unsgline(mask);
}
void anope_cmd_unszline(const char *mask)
{
- ircdprotonew->cmd_unszline(mask);
+ ircdproto->cmd_unszline(mask);
}
void anope_cmd_szline(const char *mask, const char *reason, const char *whom)
{
- ircdprotonew->cmd_szline(mask, reason, whom);
+ ircdproto->cmd_szline(mask, reason, whom);
}
void anope_cmd_sgline(const char *mask, const char *reason)
{
- ircdprotonew->cmd_sgline(mask, reason);
+ ircdproto->cmd_sgline(mask, reason);
}
void anope_cmd_unban(const char *name, const char *nick)
{
- ircdprotonew->cmd_unban(name, nick);
+ ircdproto->cmd_unban(name, nick);
}
void anope_cmd_svsmode_chan(const char *name, const char *mode, const char *nick)
{
- ircdprotonew->cmd_svsmode_chan(name, mode, nick);
+ ircdproto->cmd_svsmode_chan(name, mode, nick);
}
void anope_cmd_svid_umode(const char *nick, time_t ts)
{
- ircdprotonew->cmd_svid_umode(nick, ts);
+ ircdproto->cmd_svid_umode(nick, ts);
}
void anope_cmd_nc_change(User *u)
{
- ircdprotonew->cmd_nc_change(u);
+ ircdproto->cmd_nc_change(u);
}
void anope_cmd_svid_umode2(User *u, const char *ts)
{
- ircdprotonew->cmd_svid_umode2(u, ts);
+ ircdproto->cmd_svid_umode2(u, ts);
}
void anope_cmd_svid_umode3(User *u, const char *ts)
{
- ircdprotonew->cmd_svid_umode3(u, ts);
+ ircdproto->cmd_svid_umode3(u, ts);
}
void anope_cmd_svsjoin(const char *source, const char *nick, const char *chan, const char *param)
{
- ircdprotonew->cmd_svsjoin(source, nick, chan, param);
+ ircdproto->cmd_svsjoin(source, nick, chan, param);
}
void anope_cmd_svspart(const char *source, const char *nick, const char *chan)
{
- ircdprotonew->cmd_svspart(source, nick, chan);
+ ircdproto->cmd_svspart(source, nick, chan);
}
void anope_cmd_swhois(const char *source, const char *who, const char *mask)
{
- ircdprotonew->cmd_swhois(source, who, mask);
+ ircdproto->cmd_swhois(source, who, mask);
}
void anope_cmd_eob()
{
- ircdprotonew->cmd_eob();
+ ircdproto->cmd_eob();
}
int anope_flood_mode_check(const char *value)
{
- return ircdprotonew->flood_mode_check(value);
+ return ircdproto->flood_mode_check(value);
}
void anope_cmd_jupe(const char *jserver, const char *who, const char *reason)
{
- ircdprotonew->cmd_jupe(jserver, who, reason);
+ ircdproto->cmd_jupe(jserver, who, reason);
}
int anope_valid_nick(const char *nick)
{
- return ircdprotonew->valid_nick(nick);
+ return ircdproto->valid_nick(nick);
}
int anope_valid_chan(const char *chan)
{
- return ircdprotonew->valid_chan(chan);
+ return ircdproto->valid_chan(chan);
}
@@ -566,99 +392,24 @@ void anope_cmd_ctcp(const char *source, const char *dest, const char *fmt, ...)
vsnprintf(buf, BUFSIZE - 1, fmt, args);
va_end(args);
}
- ircdprotonew->cmd_ctcp(source, dest, buf);
+ ircdproto->cmd_ctcp(source, dest, buf);
}
-
+void anope_cmd_numeric(const char *source, int numeric, const char *dest, const char *fmt, ...)
+{
+ va_list args;
+ char buf[BUFSIZE] = "";
+ if (fmt) {
+ va_start(args, fmt);
+ vsnprintf(buf, BUFSIZE - 1, fmt, args);
+ va_end(args);
+ }
+ ircdproto->cmd_numeric(source, numeric, dest, *buf ? buf : NULL);
+}
/**
* Set routines for modules to set the prefered function for dealing with things.
**/
-void pmodule_cmd_372(void (*func) (const char *source, const char *msg))
-{
- ircdproto.ircd_cmd_372 = func;
-}
-
-void pmodule_cmd_372_error(void (*func) (const char *source))
-{
- ircdproto.ircd_cmd_372_error = func;
-}
-
-void pmodule_cmd_375(void (*func) (const char *source))
-{
- ircdproto.ircd_cmd_375 = func;
-}
-
-void pmodule_cmd_376(void (*func) (const char *source))
-{
- ircdproto.ircd_cmd_376 = func;
-}
-
-void pmodule_cmd_351(void (*func) (const char *source))
-{
- ircdproto.ircd_cmd_351 = func;
-}
-
-void pmodule_cmd_391(void (*func) (const char *source, const char *timestr))
-{
- ircdproto.ircd_cmd_391 = func;
-}
-
-void pmodule_cmd_250(void (*func) (const char *buf))
-{
- ircdproto.ircd_cmd_250 = func;
-}
-
-void pmodule_cmd_307(void (*func) (const char *buf))
-{
- ircdproto.ircd_cmd_307 = func;
-}
-
-void pmodule_cmd_311(void (*func) (const char *buf))
-{
- ircdproto.ircd_cmd_311 = func;
-}
-
-void pmodule_cmd_312(void (*func) (const char *buf))
-{
- ircdproto.ircd_cmd_312 = func;
-}
-
-void pmodule_cmd_317(void (*func) (const char *buf))
-{
- ircdproto.ircd_cmd_317 = func;
-}
-
-void pmodule_cmd_219(void (*func) (const char *source, const char *letter))
-{
- ircdproto.ircd_cmd_219 = func;
-}
-
-void pmodule_cmd_401(void (*func) (const char *source, const char *who))
-{
- ircdproto.ircd_cmd_401 = func;
-}
-
-void pmodule_cmd_318(void (*func) (const char *source, const char *who))
-{
- ircdproto.ircd_cmd_318 = func;
-}
-
-void pmodule_cmd_242(void (*func) (const char *buf))
-{
- ircdproto.ircd_cmd_242 = func;
-}
-
-void pmodule_cmd_243(void (*func) (const char *buf))
-{
- ircdproto.ircd_cmd_243 = func;
-}
-
-void pmodule_cmd_211(void (*func) (const char *buf))
-{
- ircdproto.ircd_cmd_211 = func;
-}
-
void pmodule_ircd_var(IRCDVar * ircdvar)
{
ircd = ircdvar;