]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
journal-remote: fix broken --getter option 2425/head
authorYu Watanabe <watanabe.yu+github@gmail.com>
Sun, 24 Jan 2016 06:55:07 +0000 (15:55 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Sun, 24 Jan 2016 07:12:13 +0000 (16:12 +0900)
This commit fixes the following broken --getter option:
when systemd-journal-remote is called with --getter option,
it causes the error meesage "Zero sources specified" and
the getter command will not be called.

src/journal-remote/journal-remote.c

index 68237be643bcf47f51d89dcae33f457f55ad616a..04bca11277aa12e4095bff3a706d769ad7c3edbb 100644 (file)
@@ -150,7 +150,7 @@ static int spawn_curl(const char* url) {
         return r;
 }
 
-static int spawn_getter(const char *getter, const char *url) {
+static int spawn_getter(const char *getter) {
         int r;
         _cleanup_strv_free_ char **words = NULL;
 
@@ -159,10 +159,6 @@ static int spawn_getter(const char *getter, const char *url) {
         if (r < 0)
                 return log_error_errno(r, "Failed to split getter option: %m");
 
-        r = strv_extend(&words, url);
-        if (r < 0)
-                return log_error_errno(r, "Failed to create command line: %m");
-
         r = spawn_child(words[0], words);
         if (r < 0)
                 log_error_errno(r, "Failed to spawn getter %s: %m", getter);
@@ -897,6 +893,17 @@ static int remoteserver_init(RemoteServer *s,
                                                fd);
         }
 
+        if (arg_getter) {
+                log_info("Spawning getter %s...", arg_getter);
+                fd = spawn_getter(arg_getter);
+                if (fd < 0)
+                        return fd;
+
+                r = add_source(s, fd, (char*) arg_output, false);
+                if (r < 0)
+                        return r;
+        }
+
         if (arg_url) {
                 const char *url;
                 char *hostname, *p;
@@ -910,13 +917,8 @@ static int remoteserver_init(RemoteServer *s,
                 else
                         url = strdupa(arg_url);
 
-                if (arg_getter) {
-                        log_info("Spawning getter %s...", url);
-                        fd = spawn_getter(arg_getter, url);
-                } else {
-                        log_info("Spawning curl %s...", url);
-                        fd = spawn_curl(url);
-                }
+                log_info("Spawning curl %s...", url);
+                fd = spawn_curl(url);
                 if (fd < 0)
                         return fd;