summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changes1
-rw-r--r--include/modules.h7
-rw-r--r--version.log6
3 files changed, 12 insertions, 2 deletions
diff --git a/Changes b/Changes
index a8dc5da50..fa79acd5b 100644
--- a/Changes
+++ b/Changes
@@ -17,6 +17,7 @@ Provided by Anope Dev. <dev@anope.org> - 2006
06/10 F Win32 Makefile for plexus3 support. [#520]
06/11 F Two pointers in modules.c weren't NULL-ified by default. [ #00]
06/11 F Updated InspIRCd protocol support module. [ #00]
+06/11 F Module Clear Error macro was broken on *BSD. [#515]
Provided by ThaPrince <jon@vile.com> - 2006
05/19 A Plexus 3 support. [ #00]
diff --git a/include/modules.h b/include/modules.h
index 9079d80a9..91910ea40 100644
--- a/include/modules.h
+++ b/include/modules.h
@@ -40,7 +40,12 @@ typedef void * ano_module_t;
#define ano_moderr() dlerror()
#define ano_modsym(file, symbol) dlsym(file, DL_PREFIX symbol)
#define ano_modclose(file) dlclose(file)
-#define ano_modclearerr() errno = 0
+/* We call dlerror() here because it clears the module error after being
+ * called. This previously read 'errno = 0', but that didn't work on
+ * all POSIX-compliant architectures. This way the error is guaranteed
+ * to be cleared, POSIX-wise. -GD
+ */
+#define ano_modclearerr() dlerror()
#define MODULE_EXT ".so"
#endif
diff --git a/version.log b/version.log
index f77312726..5584f9f8c 100644
--- a/version.log
+++ b/version.log
@@ -9,10 +9,14 @@ VERSION_MAJOR="1"
VERSION_MINOR="7"
VERSION_PATCH="14"
VERSION_EXTRA=""
-VERSION_BUILD="1044"
+VERSION_BUILD="1045"
# $Log$
#
+# BUILD : 1.7.14 (1045)
+# BUGS :
+# NOTES : Fixed ano_modclearerr() - it was not POSIX-compliant
+#
# BUILD : 1.7.14 (1044)
# BUGS :
# NOTES : Update InspIRCd protocol support module