summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changes3
-rw-r--r--docs/EVENTS2
-rw-r--r--include/extern.h1
-rw-r--r--include/modules.h4
-rw-r--r--src/channels.c8
-rw-r--r--src/ircd.c25
-rw-r--r--src/modules.c12
-rw-r--r--version.log9
8 files changed, 47 insertions, 17 deletions
diff --git a/Changes b/Changes
index 04c4e1252..6452a1793 100644
--- a/Changes
+++ b/Changes
@@ -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