summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRobin Burchell w00t@inspircd.org <Robin Burchell w00t@inspircd.org@5417fbe8-f217-4b02-8779-1006273d7864>2008-09-30 18:45:13 +0000
committerRobin Burchell w00t@inspircd.org <Robin Burchell w00t@inspircd.org@5417fbe8-f217-4b02-8779-1006273d7864>2008-09-30 18:45:13 +0000
commit63304b3a01a237cff2943373e4467dd678eadb53 (patch)
tree92fd01606d977400383f681be343bb6bf4c31e1f /src
parenta03ece92ed1f092995d8bb1cc2c56b188da00ec8 (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.c40
-rw-r--r--src/modules.c1
-rw-r--r--src/protocol/inspircd11.c61
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