}
#endif /* WITH_DLOPEN */
+#else /* WITHOUT_LIBLTDL */
+
+/*
+ * Solve the issues of libraries linking to other libraries
+ * by using a newer libltdl API.
+ */
+#ifndef HAVE_LT_DLADVISE_INIT
+#define fr_dlopenext lt_dlopenext
+#else
+static lt_dlhandle fr_dlopenext(const char *filename)
+{
+ lt_dlhandle handle = 0;
+ lt_dladvise advise;
+
+ if (!lt_dladvise_init (&advise) &&
+ !lt_dladvise_ext (&advise) &&
+ !lt_dladvise_global (&advise)) {
+ handle = lt_dlopenadvise (filename, advise);
+ }
+
+ lt_dladvise_destroy (&advise);
+
+ return handle;
+}
+#endif /* HAVE_LT_DLADVISE_INIT */
#endif /* WITHOUT_LIBLTDL */
static int virtual_server_idx(const char *name)
/*
* Keep the handle around so we can dlclose() it.
*/
- handle = lt_dlopenext(module_name);
+ handle = fr_dlopenext(module_name);
if (handle == NULL) {
cf_log_err(cf_sectiontoitem(cs),
"Failed to link to module '%s': %s\n",
}
if (!server) {
- RDEBUG("No such virtual server %s", request->server);
+ RDEBUG("No such virtual server \"%s\"", request->server);
return RLM_MODULE_FAIL;
}
if (idx == 0) {
list = server->mc[comp];
- if (!list) RDEBUG2(" WARNING: Empty section. Using default return values.");
+ if (!list) RDEBUG2(" WARNING: Empty %s section. Using default return values.", section_type_value[comp].section);
} else {
indexed_modcallable *this;
* It's like libtool and libltdl are some kind
* of sick joke.
*/
+#ifdef IE_LIBTOOL_DIE
#define lt__PROGRAM__LTX_preloaded_symbols lt_libltdl_LTX_preloaded_symbols
+#endif
/*
* Set the default list of preloaded symbols.
listener = listener->next) {
char buffer[256];
+#ifdef WITH_PROXY
if (listener->type == RAD_LISTEN_PROXY) continue;
+#endif
cs = cf_section_sub_find_name2(config,
"server", listener->server);