X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fubox.git;a=blobdiff_plain;f=kmodloader.c;h=49899b3ade0ef5b418e60005135d107a6dd09266;hp=049a868dca7ca6d5603dd10b33ae42f27eb106ff;hb=21737b1ff2e0be28b68293c7ac198a8fe505cbc2;hpb=b766d2b693dbfa4367166c9475e56b0aa3546aa2 diff --git a/kmodloader.c b/kmodloader.c index 049a868..49899b3 100644 --- a/kmodloader.c +++ b/kmodloader.c @@ -56,6 +56,7 @@ struct module { }; static struct avl_tree modules; +static char *prefix = ""; static struct module *find_module(const char *name) { @@ -82,7 +83,7 @@ static char* get_module_path(char *name) return name; uname(&ver); - snprintf(path, 256, DEF_MOD_PATH "%s.ko", ver.release, name); + snprintf(path, 256, "%s" DEF_MOD_PATH "%s.ko", prefix, ver.release, name); if (!stat(path, &s)) return path; @@ -94,7 +95,7 @@ static char* get_module_path(char *name) t++; } - snprintf(path, 256, DEF_MOD_PATH "%s.ko", ver.release, name); + snprintf(path, 256, "%s" DEF_MOD_PATH "%s.ko", prefix, ver.release, name); if (!stat(path, &s)) return path; @@ -610,6 +611,9 @@ static int main_loader(int argc, char **argv) if (argc > 1) dir = argv[1]; + if (argc > 2) + prefix = argv[2]; + path = malloc(strlen(dir) + 2); strcpy(path, dir); strcat(path, "*");