diff options
author | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2021-02-15 19:47:41 +0100 |
---|---|---|
committer | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2021-02-17 21:08:50 +0100 |
commit | 9c7f2201731fe04cc41aa067c8be21d35b803bce (patch) | |
tree | 37062ed9b0440e546fbf5f3407b80d89b1bb5f49 /src/journal-remote | |
parent | c3470872c6c12d64c895643bd3b02022beb0589e (diff) | |
download | systemd-9c7f2201731fe04cc41aa067c8be21d35b803bce.tar.gz |
journal-remote: convert to parse_boolean_argument() and fix type confusion
We were passing a reference to 'int arg_seal' to config_parse_bool(),
which expects a 'bool *'. Luckily, this would work, because 'bool'
is smaller than 'int', so config_parse_bool() would set the least-significant
byte of arg_seal. At least I think so. But let's use consistent types ;)
Also, modernize style a bit and don't use integers in boolean context.
Diffstat (limited to 'src/journal-remote')
-rw-r--r-- | src/journal-remote/journal-remote-main.c | 30 | ||||
-rw-r--r-- | src/journal-remote/journal-upload.c | 19 |
2 files changed, 16 insertions, 33 deletions
diff --git a/src/journal-remote/journal-remote-main.c b/src/journal-remote/journal-remote-main.c index b9e793c08c..355a258be1 100644 --- a/src/journal-remote/journal-remote-main.c +++ b/src/journal-remote/journal-remote-main.c @@ -14,6 +14,7 @@ #include "journal-remote.h" #include "main-func.h" #include "memory-util.h" +#include "parse-argument.h" #include "pretty-print.h" #include "process-util.h" #include "rlimit-util.h" @@ -34,8 +35,8 @@ static const char* arg_listen_raw = NULL; static const char* arg_listen_http = NULL; static const char* arg_listen_https = NULL; static char** arg_files = NULL; /* Do not free this. */ -static int arg_compress = true; -static int arg_seal = false; +static bool arg_compress = true; +static bool arg_seal = false; static int http_socket = -1, https_socket = -1; static char** arg_gnutls_log = NULL; @@ -965,28 +966,15 @@ static int parse_argv(int argc, char *argv[]) { break; case ARG_COMPRESS: - if (optarg) { - r = parse_boolean(optarg); - if (r < 0) - return log_error_errno(r, "Failed to parse --compress= parameter."); - - arg_compress = !!r; - } else - arg_compress = true; - + r = parse_boolean_argument("--compress", optarg, &arg_compress); + if (r < 0) + return r; break; case ARG_SEAL: - if (optarg) { - r = parse_boolean(optarg); - if (r < 0) - return log_error_errno(SYNTHETIC_ERRNO(EINVAL), - "Failed to parse --seal= parameter."); - - arg_seal = !!r; - } else - arg_seal = true; - + r = parse_boolean_argument("--seal", optarg, &arg_seal); + if (r < 0) + return r; break; case ARG_GNUTLS_LOG: { diff --git a/src/journal-remote/journal-upload.c b/src/journal-remote/journal-upload.c index 4d6041e911..e56e336b4f 100644 --- a/src/journal-remote/journal-upload.c +++ b/src/journal-remote/journal-upload.c @@ -22,6 +22,7 @@ #include "log.h" #include "main-func.h" #include "mkdir.h" +#include "parse-argument.h" #include "parse-util.h" #include "path-util.h" #include "pretty-print.h" @@ -356,7 +357,7 @@ static int open_file_for_upload(Uploader *u, const char *filename) { u->input = fd; - if (arg_follow) { + if (arg_follow != 0) { r = sd_event_add_io(u->events, &u->input_event, fd, EPOLLIN, dispatch_fd_input, u); if (r < 0) { @@ -747,16 +748,10 @@ static int parse_argv(int argc, char *argv[]) { break; case ARG_FOLLOW: - if (optarg) { - r = parse_boolean(optarg); - if (r < 0) - return log_error_errno(SYNTHETIC_ERRNO(EINVAL), - "Failed to parse --follow= parameter."); - - arg_follow = !!r; - } else - arg_follow = true; - + r = parse_boolean_argument("--follow", optarg, NULL); + if (r < 0) + return r; + arg_follow = r; break; case ARG_SAVE_STATE: @@ -857,7 +852,7 @@ static int run(int argc, char **argv) { r = open_journal_for_upload(&u, j, arg_cursor ?: u.last_cursor, arg_cursor ? arg_after_cursor : true, - !!arg_follow); + arg_follow != 0); if (r < 0) return r; } |