diff options
Diffstat (limited to 'src/ircd.c')
-rw-r--r-- | src/ircd.c | 389 |
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; |