summaryrefslogtreecommitdiffhomepage
path: root/modules/luci-mod-status/src/luci-bwc.c
diff options
context:
space:
mode:
Diffstat (limited to 'modules/luci-mod-status/src/luci-bwc.c')
-rw-r--r--modules/luci-mod-status/src/luci-bwc.c16
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(