diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/modules.c | 16 | ||||
-rw-r--r-- | src/modules/hs_moo.c | 11 |
2 files changed, 26 insertions, 1 deletions
diff --git a/src/modules.c b/src/modules.c index bfb9a229f..0cb411905 100644 --- a/src/modules.c +++ b/src/modules.c @@ -318,6 +318,9 @@ int loadModule(Module * m, User * u) const char *err; int (*func) (int, char **); int ret = 0; + char *argv[1]; + int argc = 0; + Module *m2; if (!m || !m->name) { return MOD_ERR_PARAMS; @@ -360,7 +363,18 @@ int loadModule(Module * m, User * u) } if (func) { mod_current_module_name = m->name; - ret = func(0, NULL); /* exec AnopeInit */ + /* argv[0] is the user if there was one, or NULL if not */ + if(u) { + argv[0] = sstrdup(u->nick); + } else { + argv[0] = NULL; + } + argc++; + + ret = func(argc, argv); /* exec AnopeInit */ + if(u) { + free(argv[0]); + } if (ret == MOD_STOP) { alog("%s requested unload...", m->name); unloadModule(m, NULL); diff --git a/src/modules/hs_moo.c b/src/modules/hs_moo.c index 3a2fccfe1..04641e860 100644 --- a/src/modules/hs_moo.c +++ b/src/modules/hs_moo.c @@ -35,6 +35,17 @@ int AnopeInit(int argc, char **argv) /* This will be executed when the mod moduleSetHostHelp(myHostServHelp); /* add us to the .hs help list */ status = moduleAddCommand(HOSTSERV, c, MOD_HEAD); /* Add the command to the HOSTSERV cmd table */ + + /* Check if we have any argv's */ + if(argc>0) { + /* we do, the first will be the nick of the person modload'ing us */ + /* or NULL if we were auto-loaded */ + if(argv[0]) { + alog("hs_moo was modloaded by: [%s]",argv[0]); + } else { + alog("hs_moo was automatically loaded by anope"); + } + } alog("hs_moo.so: Add Command 'moo' Status: %d",status); /* Log the command being added */ moduleAddCallback("test",time(NULL)+dotime("15s"),test,0,NULL); /* set a call-back function to exec in 3 mins time */ |