diff options
-rw-r--r-- | Changes | 3 | ||||
-rw-r--r-- | docs/EVENTS | 2 | ||||
-rw-r--r-- | include/extern.h | 1 | ||||
-rw-r--r-- | include/modules.h | 4 | ||||
-rw-r--r-- | src/channels.c | 8 | ||||
-rw-r--r-- | src/ircd.c | 25 | ||||
-rw-r--r-- | src/modules.c | 12 | ||||
-rw-r--r-- | version.log | 9 |
8 files changed, 47 insertions, 17 deletions
@@ -43,6 +43,7 @@ Provided by Anope Dev. <dev@anope.org> - 2006 06/26 F A few small bugs with module configure scripts. [ #00] 07/02 F Fixed readonly stuff on memoserv del. [#529] 07/13 F Fixed socket buffering, hopefully should make inspircd play nice. [ #00] +07/14 F Removed old HAS_RTLD_LOCAL check. [#541] Provided by ThaPrince <jon@vile.com> - 2006 05/19 A Plexus 3 support. [ #00] @@ -51,6 +52,8 @@ Provided by ThaPrince <jon@vile.com> - 2006 Provided by Trystan <trystan@nomadirc.net> - 2006 06/15 F NS Resend delay. [ #00] 07/02 F Fixed module version stuff. [#531] +07/14 F Another version fix. [#545] +07/14 A Added anope_cmd_action() and new param for EVENT_PART_CHANNEL. [#550] Anope Version 1.7.14 -------------------- diff --git a/docs/EVENTS b/docs/EVENTS index 878ec5545..80bba31c0 100644 --- a/docs/EVENTS +++ b/docs/EVENTS @@ -350,6 +350,8 @@ Anope Internal Events this has been done. av[1] The nickname of the user parting the channel. av[2] The name of the channel the user has parted. + av[3] The reason the user parted the channel, this is not always sent + so check the count to make sure it was passed. (ac == 4) EVENT_RELOAD This event is emitted after the configuration file has been reloaded. diff --git a/include/extern.h b/include/extern.h index ad6274754..bc0cc42ec 100644 --- a/include/extern.h +++ b/include/extern.h @@ -1212,6 +1212,7 @@ E void anope_cmd_part(char *nick, char *chan, const char *fmt, ...); /* P E void anope_cmd_pass(char *pass); /* PASS */ E void anope_cmd_pong(char *servname, char *who); /* PONG */ E void anope_cmd_privmsg(char *source, char *dest, const char *fmt, ...); /* PRIVMSG */ +E void anope_cmd_action(char *source, char *dest, const char *fmt, ...); /* PRIVMSG */ E void anope_cmd_privmsg2(char *source, char *dest, char *msg); /* PRIVMSG */ E void anope_cmd_serv_privmsg(char *source, char *dest, char *msg); /* PRIVMSG */ E void anope_cmd_protoctl(); /* PROTOCTL */ diff --git a/include/modules.h b/include/modules.h index 49d7a8dbd..30d346150 100644 --- a/include/modules.h +++ b/include/modules.h @@ -32,11 +32,7 @@ typedef HMODULE ano_module_t; #else typedef void * ano_module_t; -#ifdef HAS_RTLD_LOCAL -#define ano_modopen(file) dlopen(file, RTLD_LAZY|RTLD_LOCAL) -#else #define ano_modopen(file) dlopen(file, RTLD_LAZY) -#endif #define ano_moderr() dlerror() #define ano_modsym(file, symbol) dlsym(file, DL_PREFIX symbol) #define ano_modclose(file) dlclose(file) diff --git a/src/channels.c b/src/channels.c index f174eb54f..bce64bd4c 100644 --- a/src/channels.c +++ b/src/channels.c @@ -670,8 +670,8 @@ void do_part(const char *source, int ac, char **av) return; } channame = sstrdup(c->chan->name); - send_event(EVENT_PART_CHANNEL, 3, EVENT_START, user->nick, - channame); + send_event(EVENT_PART_CHANNEL, (ac >= 2 ? 4 : 3), EVENT_START, user->nick,
+ channame, (ac >= 2 ? av[1] : "")); chan_deluser(user, c->chan); if (c->next) @@ -682,8 +682,8 @@ void do_part(const char *source, int ac, char **av) user->chans = c->next; free(c); - send_event(EVENT_PART_CHANNEL, 3, EVENT_STOP, user->nick, - channame); + send_event(EVENT_PART_CHANNEL, (ac >= 2 ? 4 : 3), EVENT_STOP, user->nick,
+ channame, (ac >= 2 ? av[1] : "")); free(channame); } } diff --git a/src/ircd.c b/src/ircd.c index de85c05de..ce4840301 100644 --- a/src/ircd.c +++ b/src/ircd.c @@ -254,6 +254,31 @@ void anope_cmd_notice2(char *source, char *dest, char *msg) ircdproto.ircd_cmd_notice2(source, dest, msg); } +void anope_cmd_action(char *source, 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(char *source, char *dest, const char *fmt, ...) { va_list args; diff --git a/src/modules.c b/src/modules.c index ba93f317e..b8aff99cc 100644 --- a/src/modules.c +++ b/src/modules.c @@ -584,17 +584,17 @@ int loadModule(Module * m, User * u) return MOD_ERR_NOLOAD; } if (func) { - version = (int (*)())ano_modsym(m->handle,"getAnopeBuildVersion"); + version = (int (*)())ano_modsym(m->handle,"getAnopeBuildVersion");
if (version) {
if (version() >= VERSION_BUILD ) {
if(debug) {
- alog("Module %s compiled against current or newer anope revision %d, this is %d",m->name,version(),VERSION_BUILD);
+ alog("Module %s compiled against current or newer anope revision %d, this is %d",m->name,version(),VERSION_BUILD);
}
- } else { - ano_modclose(m->handle); + } else {
+ alog("Module %s is compiled against an old version of anope (%d) current is %d", m->name, version(), VERSION_BUILD); + alog("Rebuild module %s against the current version to resolve this error", m->name); + ano_modclose(m->handle);
ano_modclearerr();
- alog("Module %s is compiled against an old version of anope (%d) current is %d", m->name, version(), VERSION_BUILD);
- alog("Rebuild module %s against the current version to resolve this error", m->name);
return MOD_ERR_NOLOAD;
}
} else {
diff --git a/version.log b/version.log index edf06c3ff..e49618ab1 100644 --- a/version.log +++ b/version.log @@ -9,20 +9,23 @@ VERSION_MAJOR="1" VERSION_MINOR="7" VERSION_PATCH="14" VERSION_EXTRA="" -VERSION_BUILD="1086" +VERSION_BUILD="1087" # $Log$ # + +# BUILD : 1.7.14 (1087) +# BUGS : 545 550 541 +# NOTES : Various fixes. +# # BUILD : 1.7.14 (1086) # BUGS : N/A # NOTES : Applied gds socket buffering patch, we should play nice with inspircd now. # -# # BUILD : 1.7.14 (1085) # BUGS : 544 # NOTES : Applied Heinzy-mcHeinzs documentation update # -# # BUILD : 1.7.14 (1084) # BUGS : N/A # NOTES : Added ns_noop_convert.c |