Merge pull request #5972 from sartura/libyang_patch

libyang: add patch
This commit is contained in:
Marko Ratkaj 2018-04-27 12:04:38 +00:00 committed by GitHub
commit 3f5bef3b4d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 47 additions and 0 deletions

View File

@ -0,0 +1,47 @@
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 */