diff options
author | Robin Burchell w00t@inspircd.org <Robin Burchell w00t@inspircd.org@5417fbe8-f217-4b02-8779-1006273d7864> | 2008-09-30 18:45:13 +0000 |
---|---|---|
committer | Robin Burchell w00t@inspircd.org <Robin Burchell w00t@inspircd.org@5417fbe8-f217-4b02-8779-1006273d7864> | 2008-09-30 18:45:13 +0000 |
commit | 63304b3a01a237cff2943373e4467dd678eadb53 (patch) | |
tree | 92fd01606d977400383f681be343bb6bf4c31e1f /src | |
parent | a03ece92ed1f092995d8bb1cc2c56b188da00ec8 (diff) |
Add MODULE_INIT workaround for modules, so they are loadable. Inspired by InspIRCd solution to this.
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@1272 5417fbe8-f217-4b02-8779-1006273d7864
Diffstat (limited to 'src')
-rw-r--r-- | src/mod_version.c | 40 | ||||
-rw-r--r-- | src/modules.c | 1 | ||||
-rw-r--r-- | src/protocol/inspircd11.c | 61 |
3 files changed, 55 insertions, 47 deletions
diff --git a/src/mod_version.c b/src/mod_version.c index e314b8b42..f8327d54f 100644 --- a/src/mod_version.c +++ b/src/mod_version.c @@ -13,24 +13,30 @@ #endif #endif -E int getAnopeBuildVersion(); -E int getAnopeMajorVersion(); -E int getAnopeMinorVersion(); -E int getAnopePatchVersion(); +extern "C" +{ + E int getAnopeBuildVersion(); + E int getAnopeMajorVersion(); + E int getAnopeMinorVersion(); + E int getAnopePatchVersion(); -int getAnopeBuildVersion() { - return VERSION_BUILD; -} + int getAnopeBuildVersion() + { + return VERSION_BUILD; + } -int getAnopeMajorVersion() { - return VERSION_MAJOR; -} + int getAnopeMajorVersion() + { + return VERSION_MAJOR; + } -int getAnopeMinorVersion() { - return VERSION_MINOR; -} - -int getAnopePatchVersion() { - return VERSION_PATCH; -} + int getAnopeMinorVersion() + { + return VERSION_MINOR; + } + int getAnopePatchVersion() + { + return VERSION_PATCH; + } +}
\ No newline at end of file diff --git a/src/modules.c b/src/modules.c index 24e4d7b13..05f077331 100644 --- a/src/modules.c +++ b/src/modules.c @@ -624,6 +624,7 @@ int loadModule(Module * m, User * u) ano_modclearerr(); func = (int (*)(int, char **))ano_modsym(m->handle, "AnopeInit"); if ( func == NULL && (err = ano_moderr()) != NULL) { + alog("No AnopeInit found, not an Anope module."); ano_modclose(m->handle); /* If no AnopeInit - it isnt an Anope Module, close it */ return MOD_ERR_NOLOAD; } diff --git a/src/protocol/inspircd11.c b/src/protocol/inspircd11.c index 1dc7fd785..a1200f578 100644 --- a/src/protocol/inspircd11.c +++ b/src/protocol/inspircd11.c @@ -1473,7 +1473,7 @@ void InspIRCdProto::cmd_unszline(const char *mask) } /* SZLINE */ -void inspircd_cmd_szline(const char *mask, const char *reason, const char *whom) +void InspIRCdProto::cmd_szline(const char *mask, const char *reason, const char *whom) { send_cmd(ServerName, "ADDLINE Z %s %s %ld 0 :%s", mask, whom, static_cast<long>(time(NULL)), reason); } @@ -1582,36 +1582,37 @@ void moduleAddAnopeCmds() int AnopeInit(int argc, char **argv) { - moduleAddAuthor("Anope"); - moduleAddVersion - ("$Id$"); - moduleSetType(PROTOCOL); - - pmodule_ircd_version("inspircdIRCd 1.1"); - pmodule_ircd_cap(myIrcdcap); - pmodule_ircd_var(myIrcd); - pmodule_ircd_cbmodeinfos(myCbmodeinfos); - pmodule_ircd_cumodes(myCumodes); - pmodule_ircd_flood_mode_char_set("+f"); - pmodule_ircd_flood_mode_char_remove("-f"); - pmodule_ircd_cbmodes(myCbmodes); - pmodule_ircd_cmmodes(myCmmodes); - pmodule_ircd_csmodes(myCsmodes); - pmodule_ircd_useTSMode(0); - - /** Deal with modes anope _needs_ to know **/ - pmodule_invis_umode(UMODE_i); - pmodule_oper_umode(UMODE_o); - pmodule_invite_cmode(CMODE_i); - pmodule_secret_cmode(CMODE_s); - pmodule_private_cmode(CMODE_p); - pmodule_key_mode(CMODE_k); - pmodule_limit_mode(CMODE_l); - - moduleAddAnopeCmds(); + moduleAddAuthor("Anope"); + moduleAddVersion + ("$Id$"); + moduleSetType(PROTOCOL); + + pmodule_ircd_version("inspircdIRCd 1.1"); + pmodule_ircd_cap(myIrcdcap); + pmodule_ircd_var(myIrcd); + pmodule_ircd_cbmodeinfos(myCbmodeinfos); + pmodule_ircd_cumodes(myCumodes); + pmodule_ircd_flood_mode_char_set("+f"); + pmodule_ircd_flood_mode_char_remove("-f"); + pmodule_ircd_cbmodes(myCbmodes); + pmodule_ircd_cmmodes(myCmmodes); + pmodule_ircd_csmodes(myCsmodes); + pmodule_ircd_useTSMode(0); + + /** Deal with modes anope _needs_ to know **/ + pmodule_invis_umode(UMODE_i); + pmodule_oper_umode(UMODE_o); + pmodule_invite_cmode(CMODE_i); + pmodule_secret_cmode(CMODE_s); + pmodule_private_cmode(CMODE_p); + pmodule_key_mode(CMODE_k); + pmodule_limit_mode(CMODE_l); + + moduleAddAnopeCmds(); pmodule_ircd_proto(&ircd_proto); - moduleAddIRCDMsgs(); + moduleAddIRCDMsgs(); - return MOD_CONT; + return MOD_CONT; } +MODULE_INIT("inspircd11")
\ No newline at end of file |