1
1
mirror of https://github.com/systemd/systemd-stable.git synced 2025-03-08 20:58:20 +03:00

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.
This commit is contained in:
Zbigniew Jędrzejewski-Szmek 2021-02-15 19:47:41 +01:00
parent c3470872c6
commit 9c7f220173
2 changed files with 16 additions and 33 deletions

View File

@ -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: {

View File

@ -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;
}