cur += sprintf(cur, "%s", argv[i]);
}
- init_module_folders();
+ if (init_module_folders()) {
+ fprintf(stderr, "Failed to find the folder holding the modules\n");
+ return -1;
+ }
if (get_module_path(argv[1])) {
name = argv[1];
static int main_lsmod(int argc, char **argv)
{
struct module *m;
+ char *dep;
if (scan_loaded_modules())
return -1;
avl_for_each_element(&modules, m, avl)
- if (m->state == LOADED)
- printf("%-20s%8d%3d %s\n",
- m->name, m->size, m->usage,
- (*m->depends == '-') ? ("") : (m->depends));
+ if (m->state == LOADED) {
+ printf("%-20s%8d%3d ",
+ m->name, m->size, m->usage);
+ if (m->depends && strcmp(m->depends, "-") && strcmp(m->depends, "")) {
+ dep = m->depends;
+ while (*dep) {
+ printf("%s", dep);
+ dep = dep + strlen(dep) + 1;
+ if (*dep)
+ printf(",");
+ }
+ }
+ printf("\n");
+ }
free_modules();
static int main_loader(int argc, char **argv)
{
int gl_flags = GLOB_NOESCAPE | GLOB_MARK;
- char *dir = "/etc/modules.d/*";
+ char *dir = "/etc/modules.d/";
struct module *m;
glob_t gl;
char *path;
strcpy(path, dir);
strcat(path, "*");
- if (scan_loaded_modules())
+ if (scan_loaded_modules()) {
+ free (path);
return -1;
+ }
- if (scan_module_folders())
+ if (scan_module_folders()) {
+ free (path);
return -1;
+ }
syslog(LOG_INFO, "kmodloader: loading kernel modules from %s\n", path);