|
|
- Index: libyang-0.14.53-2698bd6484526facbf82b1263810b938b82a2f23/src/extensions.c
- ===================================================================
- --- libyang-0.14.53-2698bd6484526facbf82b1263810b938b82a2f23.orig/src/extensions.c
- +++ libyang-0.14.53-2698bd6484526facbf82b1263810b938b82a2f23/src/extensions.c
- @@ -123,11 +123,14 @@ lyext_load_plugins(void)
-
- /* and construct the filepath */
- asprintf(&str, "%s/%s", pluginsdir, file->d_name);
- -
- - /* load the plugin - first, try if it is already loaded... */
- - dlhandler = dlopen(str, RTLD_NOW | RTLD_NOLOAD);
- - dlerror(); /* Clear any existing error */
- - if (dlhandler) {
- + /* load the plugin */
- + dlhandler = dlopen(str, RTLD_NOW);
- + if (!dlhandler) {
- + LOGERR(LY_ESYS, "Loading \"%s\" as a plugin failed (%s).", str, dlerror());
- + free(str);
- + continue;
- + }
- + if (ly_set_contains(&dlhandlers, dlhandler) != -1) {
- /* the plugin is already loaded */
- LOGVRB("Extension plugin \"%s\" already loaded.", str);
- free(str);
- @@ -137,14 +140,6 @@ lyext_load_plugins(void)
- continue;
- }
-
- - /* ... and if not, load it */
- - dlhandler = dlopen(str, RTLD_NOW);
- - if (!dlhandler) {
- - LOGERR(LY_ESYS, "Loading \"%s\" as an extension plugin failed (%s).", str, dlerror());
- - free(str);
- - continue;
- - }
- - LOGVRB("Extension plugin \"%s\" successfully loaded.", str);
- free(str);
- dlerror(); /* Clear any existing error */
-
- @@ -156,6 +151,7 @@ lyext_load_plugins(void)
- dlclose(dlhandler);
- continue;
- }
- + LOGVRB("Plugin \"%s\" successfully loaded.", str)
-
- for(u = 0; plugin[u].name; u++) {
- /* check extension implementations for collisions */
|