diff options
Diffstat (limited to 'modules/luci-mod-status')
-rw-r--r-- | modules/luci-mod-status/src/luci-bwc.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/modules/luci-mod-status/src/luci-bwc.c b/modules/luci-mod-status/src/luci-bwc.c index 6f7016ec9d..b7682f9e21 100644 --- a/modules/luci-mod-status/src/luci-bwc.c +++ b/modules/luci-mod-status/src/luci-bwc.c @@ -253,7 +253,21 @@ static void umap_file(struct file_map *m) static void * iw_open(void) { - return dlopen("/usr/lib/libiwinfo.so", RTLD_LAZY); + void *iwlib = NULL; + glob_t paths; + int i; + + if (glob("/usr/lib/libiwinfo.so*", 0, NULL, &paths) != 0) + return NULL; + + for (i = 0; i < paths.gl_pathc && !iwlib; i++) + iwlib = dlopen(paths.gl_pathv[i], RTLD_LAZY | RTLD_LOCAL); + + globfree(&paths); + + if (!iwlib) + return NULL; + return iwlib; } static int iw_update( |