]> git.ipfire.org Git - thirdparty/systemd.git/blobdiff - src/modules-load/modules-load.c
util-lib: split our string related calls from util.[ch] into its own file string...
[thirdparty/systemd.git] / src / modules-load / modules-load.c
index 30c67a41bdf143c87610e4bd49c6d99e89c8781d..4a58ce10823c529b80a92cb0787f8a28761baecc 100644 (file)
   along with systemd; If not, see <http://www.gnu.org/licenses/>.
 ***/
 
-#include <unistd.h>
-#include <fcntl.h>
 #include <errno.h>
-#include <string.h>
-#include <sys/stat.h>
-#include <limits.h>
-#include <dirent.h>
 #include <getopt.h>
 #include <libkmod.h>
+#include <limits.h>
+#include <string.h>
+#include <sys/stat.h>
 
+#include "conf-files.h"
 #include "log.h"
-#include "util.h"
+#include "string-util.h"
 #include "strv.h"
-#include "conf-files.h"
-#include "fileio.h"
-#include "build.h"
+#include "util.h"
 
 static char **arg_proc_cmdline_modules = NULL;
 
@@ -55,7 +51,7 @@ static int add_modules(const char *p) {
         if (!k)
                 return log_oom();
 
-        if (strv_extend_strv(&arg_proc_cmdline_modules, k) < 0)
+        if (strv_extend_strv(&arg_proc_cmdline_modules, k, true) < 0)
                 return log_oom();
 
         return 0;
@@ -81,10 +77,8 @@ static int load_module(struct kmod_ctx *ctx, const char *m) {
         log_debug("load: %s", m);
 
         r = kmod_module_new_from_lookup(ctx, m, &modlist);
-        if (r < 0) {
-                log_error_errno(-r, "Failed to lookup alias '%s': %m", m);
-                return r;
-        }
+        if (r < 0)
+                return log_error_errno(r, "Failed to lookup alias '%s': %m", m);
 
         if (!modlist) {
                 log_error("Failed to find module '%s'", m);
@@ -116,8 +110,7 @@ static int load_module(struct kmod_ctx *ctx, const char *m) {
                         else if (err == KMOD_PROBE_APPLY_BLACKLIST)
                                 log_info("Module '%s' is blacklisted", kmod_module_get_name(mod));
                         else {
-                                log_error("Failed to insert '%s': %s", kmod_module_get_name(mod),
-                                          strerror(-err));
+                                log_error_errno(err, "Failed to insert '%s': %m", kmod_module_get_name(mod));
                                 r = err;
                         }
                 }
@@ -142,8 +135,7 @@ static int apply_file(struct kmod_ctx *ctx, const char *path, bool ignore_enoent
                 if (ignore_enoent && r == -ENOENT)
                         return 0;
 
-                log_error_errno(-r, "Failed to open %s, ignoring: %m", path);
-                return r;
+                return log_error_errno(r, "Failed to open %s, ignoring: %m", path);
         }
 
         log_debug("apply: %s", path);
@@ -155,7 +147,7 @@ static int apply_file(struct kmod_ctx *ctx, const char *path, bool ignore_enoent
                         if (feof(f))
                                 break;
 
-                        log_error("Failed to read file '%s', ignoring: %m", path);
+                        log_error_errno(errno, "Failed to read file '%s', ignoring: %m", path);
                         return -errno;
                 }
 
@@ -207,9 +199,7 @@ static int parse_argv(int argc, char *argv[]) {
                         return 0;
 
                 case ARG_VERSION:
-                        puts(PACKAGE_STRING);
-                        puts(SYSTEMD_FEATURES);
-                        return 0;
+                        return version();
 
                 case '?':
                         return -EINVAL;
@@ -237,7 +227,7 @@ int main(int argc, char *argv[]) {
 
         r = parse_proc_cmdline(parse_proc_cmdline_item);
         if (r < 0)
-                log_warning_errno(-r, "Failed to parse kernel command line, ignoring: %m");
+                log_warning_errno(r, "Failed to parse kernel command line, ignoring: %m");
 
         ctx = kmod_new(NULL, NULL);
         if (!ctx) {
@@ -260,7 +250,7 @@ int main(int argc, char *argv[]) {
                 }
 
         } else {
-                _cleanup_free_ char **files = NULL;
+                _cleanup_strv_free_ char **files = NULL;
                 char **fn, **i;
 
                 STRV_FOREACH(i, arg_proc_cmdline_modules) {
@@ -271,7 +261,7 @@ int main(int argc, char *argv[]) {
 
                 k = conf_files_list_nulstr(&files, ".conf", NULL, conf_file_dirs);
                 if (k < 0) {
-                        log_error_errno(-k, "Failed to enumerate modules-load.d files: %m");
+                        log_error_errno(k, "Failed to enumerate modules-load.d files: %m");
                         if (r == 0)
                                 r = k;
                         goto finish;