diff options
Diffstat (limited to 'src')
37 files changed, 407 insertions, 307 deletions
diff --git a/src/ircd.c b/src/ircd.c index 6e267c872..1d9c46d96 100644 --- a/src/ircd.c +++ b/src/ircd.c @@ -16,10 +16,11 @@ #include "extern.h" IRCDProto ircdproto; +IRCDProtoNew *ircdprotonew; IRCDModes ircd_modes; /** - * Globals we want from the protocol file + * Globals we want from the protocol file **/ IRCDVar *ircd; IRCDCAPAB *ircdcap; @@ -33,6 +34,11 @@ CMMode cmmodes[128]; char csmodes[128]; int UseTSMODE; +void pmodule_ircd_proto(IRCDProtoNew *proto) +{ + ircdprotonew = proto; +} + /** * Initiate a protocol struct ready for use **/ @@ -268,27 +274,49 @@ void anope_cmd_notice2(const char *source, const char *dest, const char *msg) ircdproto.ircd_cmd_notice2(source, dest, msg); } -void anope_cmd_action(const char *source, const char *dest, const char *fmt, ...)
-{ -
va_list args; -
char buf[BUFSIZE]; -
char actionbuf[BUFSIZE]; -
*buf = '\0'; -
*actionbuf = '\0'; -
if (fmt) { -
va_start(args, fmt); -
vsnprintf(buf, BUFSIZE - 1, fmt, args); -
va_end(args); -
} else { -
return; -
} -
if (!buf) { -
return; -
} -
snprintf(actionbuf, BUFSIZE - 1, "%cACTION %s %c", 1, buf, 1); -
ircdproto.ircd_cmd_privmsg(source, dest, actionbuf); -
} -
void anope_cmd_privmsg(const char *source, const char *dest, const char *fmt, ...) +void anope_cmd_action(const char *source, const char *dest, const char *fmt, ...) +{ + +va_list args; + +char buf[BUFSIZE]; + +char actionbuf[BUFSIZE]; + + +*buf = '\0'; + +*actionbuf = '\0'; + + +if (fmt) { + +va_start(args, fmt); + +vsnprintf(buf, BUFSIZE - 1, fmt, args); + +va_end(args); + +} else { + +return; + +} + + +if (!buf) { + +return; + +} + +snprintf(actionbuf, BUFSIZE - 1, "%cACTION %s %c", 1, buf, 1); + +ircdproto.ircd_cmd_privmsg(source, dest, actionbuf); + +} + +void anope_cmd_privmsg(const char *source, const char *dest, const char *fmt, ...) { va_list args; char buf[BUFSIZE]; diff --git a/src/protocol/bahamut.c b/src/protocol/bahamut.c index e00fa2a45..201fc4ee9 100644 --- a/src/protocol/bahamut.c +++ b/src/protocol/bahamut.c @@ -6,8 +6,8 @@ * 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. - * + * Based on the original code of Services by Andy Church. + * * */ @@ -544,7 +544,7 @@ int anope_event_sjoin(char *source, int ac, char **av) ** parv[7] = servicestamp ** parv[8] = IP ** parv[9] = info -** NICK - change +** NICK - change ** source = oldnick ** parv[0] = new nickname ** parv[1] = hopcount @@ -793,7 +793,7 @@ void bahamut_cmd_burst() } /* AKILL */ -/* parv[1]=host +/* parv[1]=host * parv[2]=user * parv[3]=length * parv[4]=akiller @@ -842,8 +842,8 @@ void bahamut_cmd_svsmode(User * u, int ac, char **av) /* SQUIT */ /* - * parv[0] = sender prefix - * parv[1] = server name + * parv[0] = sender prefix + * parv[1] = server name * parv[2] = comment */ void bahamut_cmd_squit(char *servname, char *message) @@ -858,11 +858,11 @@ void bahamut_cmd_pong(char *servname, char *who) } /* - * SVINFO - * parv[0] = sender prefix - * parv[1] = TS_CURRENT for the server - * parv[2] = TS_MIN for the server - * parv[3] = server is standalone or connected to non-TS only + * SVINFO + * parv[0] = sender prefix + * parv[1] = TS_CURRENT for the server + * parv[2] = TS_MIN for the server + * parv[3] = server is standalone or connected to non-TS only * parv[4] = server's idea of UTC time */ void bahamut_cmd_svinfo() @@ -933,10 +933,10 @@ int anope_event_privmsg(char *source, int ac, char **av) /* EVENT : SVINFO */ /* - * parv[0] = sender prefix - * parv[1] = TS_CURRENT for the server - * parv[2] = TS_MIN for the server - * parv[3] = server is standalone or connected to non-TS only + * parv[0] = sender prefix + * parv[1] = TS_CURRENT for the server + * parv[2] = TS_MIN for the server + * parv[3] = server is standalone or connected to non-TS only * parv[4] = server's idea of UTC time */ int anope_event_svinfo(char *source, int ac, char **av) @@ -1517,7 +1517,7 @@ void bahamut_cmd_global_legacy(char *source, char *fmt) send_cmd(source ? source : ServerName, "GLOBOPS :%s", fmt); } -/* +/* 1 = valid nick 0 = nick is in valid */ @@ -1527,7 +1527,7 @@ int bahamut_valid_nick(char *nick) return 1; } -/* +/* 1 = valid chan 0 = nick is in chan */ @@ -1641,7 +1641,7 @@ void moduleAddAnopeCmds() pmodule_set_umode(bahamut_set_umode); } -/** +/** * Now tell anope how to use us. **/ int AnopeInit(int argc, char **argv) @@ -1674,6 +1674,7 @@ int AnopeInit(int argc, char **argv) pmodule_limit_mode(CMODE_l); moduleAddAnopeCmds(); + pmodule_ircd_proto(&ircd_proto); moduleAddIRCDMsgs(); return MOD_CONT; diff --git a/src/protocol/bahamut.h b/src/protocol/bahamut.h index 1b60733a9..9ccafb15d 100644 --- a/src/protocol/bahamut.h +++ b/src/protocol/bahamut.h @@ -6,8 +6,8 @@ * Please read COPYING and README for furhter details. * * Based on the original code of Epona by Lara. - * Based on the original code of Services by Andy Church. - * + * Based on the original code of Services by Andy Church. + * * */ @@ -129,3 +129,6 @@ void bahamut_cmd_jupe(char *jserver, char *who, char *reason); int bahamut_valid_nick(char *nick); void bahamut_cmd_ctcp(char *source, char *dest, char *buf); +class BahamutIRCdProto : public IRCDProtoNew { + public: +} ircd_proto; diff --git a/src/protocol/charybdis.c b/src/protocol/charybdis.c index 23c758324..465dc240d 100644 --- a/src/protocol/charybdis.c +++ b/src/protocol/charybdis.c @@ -7,7 +7,7 @@ * Please read COPYING and README for furhter details. * * Based on the original code of Epona by Lara. - * Based on the original code of Services by Andy Church. + * Based on the original code of Services by Andy Church. */ #include "services.h" @@ -691,7 +691,7 @@ int anope_event_topic(char *source, int ac, char **av) c->topic_time = topic_time; record_topic(av[0]); - + if (ac > 1 && *av[1]) send_event(EVENT_TOPIC_UPDATED, 2, av[0], av[1]); else @@ -765,10 +765,10 @@ int anope_event_436(char *source, int ac, char **av) /* *INDENT-OFF* */ -void moduleAddIRCDMsgs(void) +void moduleAddIRCDMsgs(void) { Message *m; - + updateProtectDetails("PROTECT","PROTECTME","protect","deprotect","AUTOPROTECT","+","-"); if (UseTS6) { @@ -810,7 +810,7 @@ void moduleAddIRCDMsgs(void) m = createMessage("ADMIN", anope_event_admin); addCoreMessage(IRCD,m); m = createMessage("ERROR", anope_event_error); addCoreMessage(IRCD,m); m = createMessage("421", anope_event_null); addCoreMessage(IRCD,m); - m = createMessage("ENCAP", anope_event_null); addCoreMessage(IRCD,m); + m = createMessage("ENCAP", anope_event_null); addCoreMessage(IRCD,m); m = createMessage("SID", anope_event_sid); addCoreMessage(IRCD,m); m = createMessage("EUID", anope_event_euid); addCoreMessage(IRCD,m); } @@ -980,18 +980,18 @@ void charybdis_cmd_svsinfo() /* CAPAB */ /* QS - Can handle quit storm removal - EX - Can do channel +e exemptions + EX - Can do channel +e exemptions CHW - Can do channel wall @# - LL - Can do lazy links - IE - Can do invite exceptions + LL - Can do lazy links + IE - Can do invite exceptions EOB - Can do EOB message - KLN - Can do KLINE message - GLN - Can do GLINE message - HUB - This server is a HUB + KLN - Can do KLINE message + GLN - Can do GLINE message + HUB - This server is a HUB UID - Can do UIDs ZIP - Can do ZIPlinks - ENC - Can do ENCrypted links - KNOCK - supports KNOCK + ENC - Can do ENCrypted links + KNOCK - supports KNOCK TBURST - supports TBURST PARA - supports invite broadcasting for +p ENCAP - supports message encapsulation @@ -1812,7 +1812,7 @@ void charybdis_cmd_jupe(char *jserver, char *who, char *reason) new_server(me_server, jserver, rbuf, SERVER_JUPED, NULL); } -/* +/* 1 = valid nick 0 = nick is in valid */ @@ -1824,7 +1824,7 @@ int charybdis_valid_nick(char *nick) return 1; } -/* +/* 1 = valid chan 0 = chan is invalid */ @@ -1949,7 +1949,7 @@ void moduleAddAnopeCmds() pmodule_set_umode(charybdis_set_umode); } -/** +/** * Now tell anope how to use us. **/ int AnopeInit(int argc, char **argv) @@ -1982,6 +1982,7 @@ int AnopeInit(int argc, char **argv) pmodule_limit_mode(CMODE_l); moduleAddAnopeCmds(); + pmodule_ircd_proto(&ircd_proto); moduleAddIRCDMsgs(); hk = createEventHook(EVENT_NICK_IDENTIFY, charybdis_send_account); diff --git a/src/protocol/charybdis.h b/src/protocol/charybdis.h index 4208c4d43..5eae1e275 100644 --- a/src/protocol/charybdis.h +++ b/src/protocol/charybdis.h @@ -6,8 +6,8 @@ * Please read COPYING and README for furhter details. * * Based on the original code of Epona by Lara. - * Based on the original code of Services by Andy Church. - * + * Based on the original code of Services by Andy Church. + * * */ @@ -117,4 +117,6 @@ void charybdis_cmd_jupe(char *jserver, char *who, char *reason); int charybdis_valid_nick(char *nick); void charybdis_cmd_ctcp(char *source, char *dest, char *buf); - +class CharybdisProto : public IRCDProtoNew { + public: +} ircd_proto; diff --git a/src/protocol/dreamforge.c b/src/protocol/dreamforge.c index 3809f3bd7..3e0bf958d 100644 --- a/src/protocol/dreamforge.c +++ b/src/protocol/dreamforge.c @@ -6,8 +6,8 @@ * 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. - * + * Based on the original code of Services by Andy Church. + * * */ @@ -1228,7 +1228,7 @@ void dreamforge_cmd_global_legacy(char *source, char *fmt) send_cmd(source ? source : ServerName, "GLOBOPS :%s", fmt); } -/* +/* 1 = valid nick 0 = nick is in valid */ @@ -1238,7 +1238,7 @@ int dreamforge_valid_nick(char *nick) return 1; } -/* +/* 1 = valid chan 0 = chan is in valid */ @@ -1346,7 +1346,7 @@ void moduleAddAnopeCmds() pmodule_set_umode(dreamforge_set_umode); } -/** +/** * Now tell anope how to use us. **/ int AnopeInit(int argc, char **argv) @@ -1378,6 +1378,7 @@ int AnopeInit(int argc, char **argv) pmodule_limit_mode(CMODE_l); moduleAddAnopeCmds(); + pmodule_ircd_proto(&ircd_proto); moduleAddIRCDMsgs(); return MOD_CONT; diff --git a/src/protocol/dreamforge.h b/src/protocol/dreamforge.h index 057ea3b91..fdd9035fc 100644 --- a/src/protocol/dreamforge.h +++ b/src/protocol/dreamforge.h @@ -6,12 +6,12 @@ * Please read COPYING and README for furhter details. * * Based on the original code of Epona by Lara. - * Based on the original code of Services by Andy Church. - * + * Based on the original code of Services by Andy Church. + * * */ -#define UMODE_a 0x00000001 /* Services Admin */ +#define UMODE_a 0x00000001 /* Services Admin */ #define UMODE_h 0x00000002 /* Help system operator */ #define UMODE_i 0x00000004 /* makes user invisible */ #define UMODE_o 0x00000008 /* Operator */ @@ -109,3 +109,6 @@ void dreamforge_cmd_jupe(char *jserver, char *who, char *reason); int dreamforge_valid_nick(char *nick); void dreamforge_cmd_ctcp(char *source, char *dest, char *buf); +class DreamForgeProto : public IRCDProtoNew { + public: +} ircd_proto; diff --git a/src/protocol/hybrid.c b/src/protocol/hybrid.c index 454913517..a4102ccab 100644 --- a/src/protocol/hybrid.c +++ b/src/protocol/hybrid.c @@ -6,8 +6,8 @@ * 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. - * + * Based on the original code of Services by Andy Church. + * * */ @@ -658,7 +658,7 @@ void hybrid_cmd_sqline(char *mask, char *reason) if (!mask || !reason) { return; } - + send_cmd(ServerName, "RESV * %s :%s", mask, reason); } void hybrid_cmd_unsgline(char *mask) @@ -666,7 +666,7 @@ void hybrid_cmd_unsgline(char *mask) if (!mask) { return; } - + send_cmd(ServerName, "UNXLINE * %s", mask); } @@ -694,7 +694,7 @@ void hybrid_cmd_sgline(char *mask, char *reason) if (!mask || !reason) { return; } - + send_cmd(ServerName, "XLINE * %s 0 :%s", mask, reason); } @@ -725,7 +725,7 @@ void hybrid_cmd_unsqline(char *user) if (!user) { return; } - + send_cmd(ServerName, "UNRESV * %s", user); } @@ -786,20 +786,20 @@ void hybrid_cmd_svinfo() /* CAPAB */ /* QS - Can handle quit storm removal - EX - Can do channel +e exemptions + EX - Can do channel +e exemptions CHW - Can do channel wall @# - LL - Can do lazy links - IE - Can do invite exceptions + LL - Can do lazy links + IE - Can do invite exceptions EOB - Can do EOB message - KLN - Can do KLINE message - GLN - Can do GLINE message + KLN - Can do KLINE message + GLN - Can do GLINE message HOPS - can do half ops (+h) - HUB - This server is a HUB - AOPS - Can do anon ops (+a) + HUB - This server is a HUB + AOPS - Can do anon ops (+a) UID - Can do UIDs ZIP - Can do ZIPlinks - ENC - Can do ENCrypted links - KNOCK - supports KNOCK + ENC - Can do ENCrypted links + KNOCK - supports KNOCK TBURST - supports TBURST PARA - supports invite broadcasting for +p ENCAP - ? @@ -1234,10 +1234,10 @@ int anope_event_capab(char *source, int ac, char **av) int argc; char **argv; char *str; - + if (ac < 1) return MOD_CONT; - + /* We get the params as one arg, we should split it for capab_parse */ argv = scalloc(argvsize, sizeof(char *)); argc = 0; @@ -1249,15 +1249,15 @@ int anope_event_capab(char *source, int ac, char **av) argv[argc] = str; argc++; } - + capab_parse(argc, argv); - + /* Free our built ac/av */ for (argvsize = 0; argvsize < argc; argvsize++) { free(argv[argvsize]); } free(argv); - + return MOD_CONT; } @@ -1417,7 +1417,7 @@ void hybrid_cmd_jupe(char *jserver, char *who, char *reason) new_server(me_server, jserver, rbuf, SERVER_JUPED, NULL); } -/* +/* 1 = valid nick 0 = nick is in valid */ @@ -1427,7 +1427,7 @@ int hybrid_valid_nick(char *nick) return 1; } -/* +/* 1 = valid chan 0 = chan is in valid */ @@ -1535,7 +1535,7 @@ void moduleAddAnopeCmds() pmodule_set_umode(hybrid_set_umode); } -/** +/** * Now tell anope how to use us. **/ int AnopeInit(int argc, char **argv) @@ -1567,6 +1567,7 @@ int AnopeInit(int argc, char **argv) pmodule_limit_mode(CMODE_l); moduleAddAnopeCmds(); + pmodule_ircd_proto(&ircd_proto); moduleAddIRCDMsgs(); return MOD_CONT; diff --git a/src/protocol/hybrid.h b/src/protocol/hybrid.h index b4437888c..7e116ed3d 100644 --- a/src/protocol/hybrid.h +++ b/src/protocol/hybrid.h @@ -6,8 +6,8 @@ * Please read COPYING and README for furhter details. * * Based on the original code of Epona by Lara. - * Based on the original code of Services by Andy Church. - * + * Based on the original code of Services by Andy Church. + * * */ @@ -113,3 +113,7 @@ int hybrid_flood_mode_check(char *value); void hybrid_cmd_jupe(char *jserver, char *who, char *reason); int hybrid_valid_nick(char *nick); void hybrid_cmd_ctcp(char *source, char *dest, char *buf); + +class HybridIRCdProto : public IRCDProtoNew { + public: +} ircd_proto; diff --git a/src/protocol/inspircd10.c b/src/protocol/inspircd10.c index 30ced466d..030cd6207 100644 --- a/src/protocol/inspircd10.c +++ b/src/protocol/inspircd10.c @@ -7,8 +7,8 @@ * 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. - * + * Based on the original code of Services by Andy Church. + * * */ @@ -1154,12 +1154,12 @@ int anope_event_topic(char *source, int ac, char **av) c->topic_time = topic_time; record_topic(av[0]); - + if (ac > 1 && *av[1]) send_event(EVENT_TOPIC_UPDATED, 2, av[0], av[1]); else send_event(EVENT_TOPIC_UPDATED, 2, av[0], ""); - + return MOD_CONT; } @@ -1675,7 +1675,7 @@ void moduleAddAnopeCmds() pmodule_set_umode(inspircd_set_umode); } -/** +/** * Now tell anope how to use us. **/ int AnopeInit(int argc, char **argv) @@ -1707,6 +1707,7 @@ int AnopeInit(int argc, char **argv) pmodule_limit_mode(CMODE_l); moduleAddAnopeCmds(); + pmodule_ircd_proto(&ircd_proto); moduleAddIRCDMsgs(); return MOD_CONT; diff --git a/src/protocol/inspircd10.h b/src/protocol/inspircd10.h index d23876029..6a992efaf 100644 --- a/src/protocol/inspircd10.h +++ b/src/protocol/inspircd10.h @@ -6,8 +6,8 @@ * Please read COPYING and README for furhter details. * * Based on the original code of Epona by Lara. - * Based on the original code of Services by Andy Church. - * + * Based on the original code of Services by Andy Church. + * * */ @@ -131,3 +131,7 @@ int anope_event_sapart(char *source, int ac, char **av); int anope_event_version(char *source, int ac, char **av); int anope_event_opertype(char *source, int ac, char **av); int anope_event_idle(char* source, int ac, char **av); + +class InspIRCdProto : public IRCDProtoNew { + public: +} ircd_proto; diff --git a/src/protocol/inspircd11.c b/src/protocol/inspircd11.c index eb2b3c4a2..6416521b5 100644 --- a/src/protocol/inspircd11.c +++ b/src/protocol/inspircd11.c @@ -7,8 +7,8 @@ * 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. - * + * Based on the original code of Services by Andy Church. + * * */ @@ -383,7 +383,7 @@ CUMode myCumodes[128] = { static int has_servicesmod = 0; static int has_globopsmod = 0; -/* These are sanity checks to insure we are supported. +/* These are sanity checks to insure we are supported. The ircd tends to /squit us if we issue unsupported cmds. - katsklaw */ static int has_svsholdmod = 0; @@ -623,7 +623,7 @@ void inspircd_cmd_mode(char *source, char *dest, char *buf) if (!buf) { return; } - + c = findchan(dest); send_cmd(source ? source : s_OperServ, "FMODE %s %u %s", dest, (unsigned int)((c) ? c->creation_time : time(NULL)), buf); } @@ -692,7 +692,7 @@ int anope_event_fmode(char *source, int ac, char **av) /* Got FMODE for a non-existing channel */ return MOD_CONT; } - + /* TS's are equal now, so we can proceed with parsing */ n = o = 0; while (n < ac) { @@ -1244,13 +1244,13 @@ int anope_event_rsquit(char *source, int ac, char **av) { if (ac < 1 || ac > 3) return MOD_CONT; - + /* Horrible workaround to an insp bug (#) in how RSQUITs are sent - mark */ if (ac > 1 && strcmp(ServerName, av[0]) == 0) do_squit(source, ac - 1, av + 1); else do_squit(source, ac, av); - + return MOD_CONT; } @@ -1427,10 +1427,10 @@ int anope_event_nick(char *source, int ac, char **av) if (ac == 8) { int svid = 0; int ts = strtoul(av[0], NULL, 10); - + if (strchr(av[5], 'r') != NULL) svid = ts; - + inet_aton(av[6], &addy); user = do_nick("", av[1], /* nick */ av[4], /* username */ @@ -1524,13 +1524,13 @@ int anope_event_capab(char *source, int ac, char **av) if (strstr(av[1], "m_services.so")) { has_servicesmod = 1; } - if (strstr(av[1], "m_svshold.so")) { + if (strstr(av[1], "m_svshold.so")) { has_svsholdmod = 1; } if (strstr(av[1], "m_chghost.so")) { has_chghostmod = 1; } - if (strstr(av[1], "m_chgident.so")) { + if (strstr(av[1], "m_chgident.so")) { has_chgidentmod = 1; } if (strstr(av[1], "m_messageflood.so")) { @@ -1566,9 +1566,9 @@ int anope_event_capab(char *source, int ac, char **av) if (!has_chgidentmod) { anope_cmd_global(s_OperServ, "CHGIDENT missing, Usage disabled until module is loaded."); } - if (has_messagefloodmod) { + if (has_messagefloodmod) { cbmi = myCbmodeinfos; - + /* Find 'f' in myCbmodeinfos and add the relevant bits to myCbmodes and myCbmodeinfos * to enable +f support if found. This is needed because we're really not set up to * handle modular ircds which can have modes enabled/disabled as they please :( - mark @@ -1579,15 +1579,15 @@ int anope_event_capab(char *source, int ac, char **av) if (cbmi) { cbmi->getvalue = get_flood; cbmi->csgetvalue = cs_get_flood; - + myCbmodes['f'].flag = CMODE_f; myCbmodes['f'].flags = 0; myCbmodes['f'].setvalue = set_flood; myCbmodes['f'].cssetvalue = cs_set_flood; - + pmodule_ircd_cbmodeinfos(myCbmodeinfos); pmodule_ircd_cbmodes(myCbmodes); - + ircd->fmode = 1; } else { @@ -1612,7 +1612,7 @@ int anope_event_capab(char *source, int ac, char **av) if (has_banexceptionmod || has_inviteexceptionmod) { pmodule_ircd_cmmodes(myCmmodes); } - + /* Generate a fake capabs parsing call so things like NOQUIT work * fine. It's ugly, but it works.... */ @@ -1888,7 +1888,7 @@ void moduleAddAnopeCmds() pmodule_set_umode(inspircd_set_umode); } -/** +/** * Now tell anope how to use us. **/ int AnopeInit(int argc, char **argv) @@ -1921,6 +1921,7 @@ int AnopeInit(int argc, char **argv) pmodule_limit_mode(CMODE_l); moduleAddAnopeCmds(); + pmodule_ircd_proto(&ircd_proto); moduleAddIRCDMsgs(); return MOD_CONT; diff --git a/src/protocol/inspircd11.h b/src/protocol/inspircd11.h index d079b2c97..e12b3f9f5 100755 --- a/src/protocol/inspircd11.h +++ b/src/protocol/inspircd11.h @@ -6,8 +6,8 @@ * Please read COPYING and README for furhter details. * * Based on the original code of Epona by Lara. - * Based on the original code of Services by Andy Church. - * + * Based on the original code of Services by Andy Church. + * * */ @@ -132,3 +132,7 @@ int anope_event_version(char *source, int ac, char **av); int anope_event_opertype(char *source, int ac, char **av); int anope_event_idle(char* source, int ac, char **av); int anope_event_rsquit(char *source, int ac, char **av); + +class InspIRCdProto : public IRCDProtoNew { + public: +} ircd_proto; diff --git a/src/protocol/plexus2.c b/src/protocol/plexus2.c index 0a91194f4..f3d250ab5 100644 --- a/src/protocol/plexus2.c +++ b/src/protocol/plexus2.c @@ -206,7 +206,7 @@ plexus_set_umode (User * user, int ac, char **av) } } -/* +/* * Local valid_op, and valid_halfop overrides. * These are nessecary due to the way hybrid-based ircds handle halfops. * hybrid-based ircds treat a -o as a -h as well. So if a user is set -o, @@ -667,12 +667,12 @@ anope_event_topic (char *source, int ac, char **av) c->topic_time = topic_time; record_topic (av[0]); - + if (ac > 1 && *av[1]) send_event(EVENT_TOPIC_UPDATED, 2, av[0], av[1]); |
