BIND 10 master, updated. 0e4960761e5bd30e5157e45711da1013d825764e [master] fix 'unrecognized exception' problem

BIND 10 source code commits bind10-changes at lists.isc.org
Mon Oct 10 16:56:09 UTC 2011


The branch, master has been updated
       via  0e4960761e5bd30e5157e45711da1013d825764e (commit)
      from  32007ad7c992f395895eb8f27343003cf4f94a20 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 0e4960761e5bd30e5157e45711da1013d825764e
Author: Jelte Jansen <jelte at isc.org>
Date:   Mon Oct 10 16:54:12 2011 +0000

    [master] fix 'unrecognized exception' problem
    
    use RTLD_GLOBAL when opening modules, otherwise the exceptions some methods raise may not be recognized in catches

-----------------------------------------------------------------------

Summary of changes:
 src/lib/datasrc/factory.cc |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

-----------------------------------------------------------------------
diff --git a/src/lib/datasrc/factory.cc b/src/lib/datasrc/factory.cc
index 70a73e8..1818c70 100644
--- a/src/lib/datasrc/factory.cc
+++ b/src/lib/datasrc/factory.cc
@@ -30,7 +30,9 @@ namespace isc {
 namespace datasrc {
 
 LibraryContainer::LibraryContainer(const std::string& name) {
-    ds_lib_ = dlopen(name.c_str(), RTLD_NOW | RTLD_LOCAL);
+    // use RTLD_GLOBAL so that shared symbols (e.g. exceptions)
+    // are recognized as such
+    ds_lib_ = dlopen(name.c_str(), RTLD_NOW | RTLD_GLOBAL);
     if (ds_lib_ == NULL) {
         isc_throw(DataSourceLibraryError, dlerror());
     }




More information about the bind10-changes mailing list