Merge branch 'master' of github.com:atheme/atheme-contrib-modules

This commit is contained in:
Alex Iadicicco 2013-10-14 16:01:36 -07:00
commit 9efc2d9e6a
3 changed files with 15 additions and 11 deletions

View File

@ -1,6 +1,6 @@
#include "atheme-compat.h" #include "atheme-compat.h"
#ifdef __Linux__ #if defined( __linux__) || defined(__Linux__)
#include <execinfo.h> #include <execinfo.h>
DECLARE_MODULE_V1 DECLARE_MODULE_V1

View File

@ -8,12 +8,13 @@
#include "atheme-compat.h" #include "atheme-compat.h"
/* /* Changed to allow for dynamic configuration, to configure this, set
* Set this to the string of mlock changes you want to make. * chanserv::mlocktweak to the mode string you want set on channels as
* This is in addition to the default mlock, so -nt if you want to * they are registered. Keep in mind that +nt will be applied as well,
* remove those mlocks, etcetera. * so if you do not want +n or +t, negate them in the configuration.
* - Quora
*/ */
#define MLOCK_CHANGE "-t+c" char * mlocktweak;
DECLARE_MODULE_V1 DECLARE_MODULE_V1
( (
@ -26,12 +27,14 @@ static void handle_channel_register(hook_channel_req_t *hdata);
void _modinit(module_t *m) void _modinit(module_t *m)
{ {
add_dupstr_conf_item("MLOCKTWEAK", &chansvs.me->conf_table, 0, &mlocktweak, "-t+c");
hook_add_event("channel_register"); hook_add_event("channel_register");
hook_add_first_channel_register(handle_channel_register); hook_add_first_channel_register(handle_channel_register);
} }
void _moddeinit(module_unload_intent_t intent) void _moddeinit(module_unload_intent_t intent)
{ {
del_conf_item("MLOCKTWEAK", &chansvs.me->conf_table);
hook_del_channel_register(handle_channel_register); hook_del_channel_register(handle_channel_register);
} }
@ -39,13 +42,12 @@ static void handle_channel_register(hook_channel_req_t *hdata)
{ {
mychan_t *mc = hdata->mc; mychan_t *mc = hdata->mc;
unsigned int *target; unsigned int *target;
char *it, *str = MLOCK_CHANGE; char *it = mlocktweak;
if (mc == NULL) if (mc == NULL)
return; return;
target = &mc->mlock_on; target = &mc->mlock_on;
it = str;
while (*it != '\0') while (*it != '\0')
{ {

View File

@ -49,6 +49,7 @@ static void klinechan_check_join(hook_channel_joinpart_t *hdata)
chanuser_t *cu = hdata->cu; chanuser_t *cu = hdata->cu;
service_t *svs; service_t *svs;
char reason[256]; char reason[256];
const char *khost;
svs = service_find("operserv"); svs = service_find("operserv");
if (svs == NULL) if (svs == NULL)
@ -62,6 +63,7 @@ static void klinechan_check_join(hook_channel_joinpart_t *hdata)
if (metadata_find(mc, "private:klinechan:closer")) if (metadata_find(mc, "private:klinechan:closer"))
{ {
khost = cu->user->ip ? cu->user->ip : cu->user->host;
if (has_priv_user(cu->user, PRIV_JOIN_STAFFONLY)) if (has_priv_user(cu->user, PRIV_JOIN_STAFFONLY))
notice(svs->me->nick, cu->user->nick, notice(svs->me->nick, cu->user->nick,
"Warning: %s klines normal users", "Warning: %s klines normal users",
@ -70,7 +72,7 @@ static void klinechan_check_join(hook_channel_joinpart_t *hdata)
{ {
char buf[BUFSIZE]; char buf[BUFSIZE];
snprintf(buf, sizeof(buf), "Not klining *@%s due to klinechan %s (user %s!%s@%s is exempt)", snprintf(buf, sizeof(buf), "Not klining *@%s due to klinechan %s (user %s!%s@%s is exempt)",
cu->user->host, cu->chan->name, khost, cu->chan->name,
cu->user->nick, cu->user->user, cu->user->host); cu->user->nick, cu->user->user, cu->user->host);
wallops_sts(buf); wallops_sts(buf);
} }
@ -79,10 +81,10 @@ static void klinechan_check_join(hook_channel_joinpart_t *hdata)
snprintf(reason, sizeof reason, "Joining %s", snprintf(reason, sizeof reason, "Joining %s",
cu->chan->name); cu->chan->name);
slog(LG_INFO, "klinechan_check_join(): klining \2*@%s\2 (user \2%s!%s@%s\2 joined \2%s\2)", slog(LG_INFO, "klinechan_check_join(): klining \2*@%s\2 (user \2%s!%s@%s\2 joined \2%s\2)",
cu->user->host, cu->user->nick, khost, cu->user->nick,
cu->user->user, cu->user->host, cu->user->user, cu->user->host,
cu->chan->name); cu->chan->name);
kline_sts("*", "*", cu->user->host, 86400, reason); kline_sts("*", "*", khost, 86400, reason);
} }
} }
} }