Skip to content

Commit

Permalink
Merge pull request systemd#30297 from keszybz/fixups
Browse files Browse the repository at this point in the history
A few unrelated fixups for recent commits
  • Loading branch information
bluca authored Dec 3, 2023
2 parents c7ce20f + ccd31de commit 1707d5d
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 33 deletions.
40 changes: 22 additions & 18 deletions src/run/run.c
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ static bool arg_remain_after_exit = false;
static bool arg_no_block = false;
static bool arg_wait = false;
static const char *arg_unit = NULL;
static const char *arg_description = NULL;
static char *arg_description = NULL;
static const char *arg_slice = NULL;
static bool arg_slice_inherit = false;
static int arg_expand_environment = -1;
Expand Down Expand Up @@ -74,6 +74,7 @@ static char *arg_working_directory = NULL;
static bool arg_shell = false;
static char **arg_cmdline = NULL;

STATIC_DESTRUCTOR_REGISTER(arg_description, freep);
STATIC_DESTRUCTOR_REGISTER(arg_environment, strv_freep);
STATIC_DESTRUCTOR_REGISTER(arg_property, strv_freep);
STATIC_DESTRUCTOR_REGISTER(arg_path_property, strv_freep);
Expand Down Expand Up @@ -281,7 +282,9 @@ static int parse_argv(int argc, char *argv[]) {
break;

case ARG_DESCRIPTION:
arg_description = optarg;
r = free_and_strdup(&arg_description, optarg);
if (r < 0)
return r;
break;

case ARG_SLICE:
Expand Down Expand Up @@ -1376,7 +1379,10 @@ static int start_transient_service(sd_bus *bus) {
if (r < 0)
return bus_log_parse_error(r);

r = bus_wait_for_jobs_one(w, object, arg_quiet, arg_runtime_scope == RUNTIME_SCOPE_USER ? STRV_MAKE_CONST("--user") : NULL);
r = bus_wait_for_jobs_one(w,
object,
arg_quiet,
arg_runtime_scope == RUNTIME_SCOPE_USER ? STRV_MAKE_CONST("--user") : NULL);
if (r < 0)
return r;
}
Expand Down Expand Up @@ -1908,7 +1914,6 @@ static bool shall_make_executable_absolute(void) {

static int run(int argc, char* argv[]) {
_cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
_cleanup_free_ char *description = NULL;
int r;

log_show_color(true);
Expand All @@ -1933,19 +1938,16 @@ static int run(int argc, char* argv[]) {
}

if (!arg_description) {
if (strv_isempty(arg_cmdline))
arg_description = arg_unit;
else {
_cleanup_free_ char *joined = strv_join(arg_cmdline, " ");
if (!joined)
return log_oom();
char *t;

description = shell_escape(joined, "\"");
if (!description)
return log_oom();
if (strv_isempty(arg_cmdline))
t = strdup(arg_unit);
else
t = quote_command_line(arg_cmdline, SHELL_ESCAPE_EMPTY);
if (!t)
return log_oom();

arg_description = description;
}
free_and_replace(arg_description, t);
}

/* For backward compatibility reasons env var expansion is disabled by default for scopes, and
Expand All @@ -1960,9 +1962,11 @@ static int run(int argc, char* argv[]) {
" Use --expand-environment=yes/no to explicitly control it as needed.");
}

/* If --wait is used connect via the bus, unconditionally, as ref/unref is not supported via the limited direct
* connection */
if (arg_wait || arg_stdio != ARG_STDIO_NONE || (arg_runtime_scope == RUNTIME_SCOPE_USER && arg_transport != BUS_TRANSPORT_LOCAL))
/* If --wait is used connect via the bus, unconditionally, as ref/unref is not supported via the
* limited direct connection */
if (arg_wait ||
arg_stdio != ARG_STDIO_NONE ||
(arg_runtime_scope == RUNTIME_SCOPE_USER && arg_transport != BUS_TRANSPORT_LOCAL))
r = bus_connect_transport(arg_transport, arg_host, arg_runtime_scope, &bus);
else
r = bus_connect_transport_systemd(arg_transport, arg_host, arg_runtime_scope, &bus);
Expand Down
10 changes: 4 additions & 6 deletions src/stdio-bridge/stdio-bridge.c
Original file line number Diff line number Diff line change
Expand Up @@ -183,12 +183,12 @@ static int run(int argc, char *argv[]) {

r = sd_bus_process(a, &m);
if (ERRNO_IS_NEG_DISCONNECT(r)) /* Treat 'connection reset by peer' as clean exit condition */
break;
return 0;
if (r < 0)
return log_error_errno(r, "Failed to process bus a: %m");
if (m) {
if (sd_bus_message_is_signal(m, "org.freedesktop.DBus.Local", "Disconnected"))
break;
return 0;

r = sd_bus_send(b, m, NULL);
if (r < 0)
Expand All @@ -200,12 +200,12 @@ static int run(int argc, char *argv[]) {

r = sd_bus_process(b, &m);
if (ERRNO_IS_NEG_DISCONNECT(r)) /* Treat 'connection reset by peer' as clean exit condition */
break;
return 0;
if (r < 0)
return log_error_errno(r, "Failed to process bus: %m");
if (m) {
if (sd_bus_message_is_signal(m, "org.freedesktop.DBus.Local", "Disconnected"))
break;
return 0;

r = sd_bus_send(a, m, NULL);
if (r < 0)
Expand Down Expand Up @@ -247,8 +247,6 @@ static int run(int argc, char *argv[]) {
if (r < 0 && !ERRNO_IS_TRANSIENT(r)) /* don't be bothered by signals, i.e. EINTR */
return log_error_errno(r, "ppoll() failed: %m");
}

return 0;
}

DEFINE_MAIN_FUNCTION(run);
18 changes: 9 additions & 9 deletions src/test/test-macro.c
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ TEST(saturate_add) {
assert_se(saturate_add(60, 60, 50) == 50);
}

TEST(align_power2) {
TEST(ALIGN_POWER2) {
unsigned long i, p2;

assert_se(ALIGN_POWER2(0) == 0);
Expand Down Expand Up @@ -57,7 +57,7 @@ TEST(align_power2) {
}
}

TEST(max) {
TEST(MAX) {
static const struct {
int a;
int b[CONST_MAX(10, 100)];
Expand Down Expand Up @@ -159,7 +159,7 @@ TEST(container_of) {

#pragma GCC diagnostic pop

TEST(div_round_up) {
TEST(DIV_ROUND_UP) {
int div;

/* basic tests */
Expand Down Expand Up @@ -192,7 +192,7 @@ TEST(div_round_up) {
assert_se(0xfffffffdU / 10U + !!(0xfffffffdU % 10U) == 429496730U);
}

TEST(ptr_to_int) {
TEST(PTR_TO_INT) {
/* Primary reason to have this test is to validate that pointers are large enough to hold entire int range */
assert_se(PTR_TO_INT(INT_TO_PTR(0)) == 0);
assert_se(PTR_TO_INT(INT_TO_PTR(1)) == 1);
Expand All @@ -201,7 +201,7 @@ TEST(ptr_to_int) {
assert_se(PTR_TO_INT(INT_TO_PTR(INT_MIN)) == INT_MIN);
}

TEST(in_set) {
TEST(IN_SET) {
assert_se(IN_SET(1, 1, 2));
assert_se(IN_SET(1, 1, 2, 3, 4));
assert_se(IN_SET(2, 1, 2, 3, 4));
Expand All @@ -221,7 +221,7 @@ TEST(in_set) {
assert_se(!IN_SET(t.x, 2, 3, 4));
}

TEST(foreach_pointer) {
TEST(FOREACH_POINTER) {
int a, b, c, *i;
size_t k = 0;

Expand Down Expand Up @@ -300,7 +300,7 @@ TEST(foreach_pointer) {
assert_se(k == 11);
}

TEST(foreach_va_args) {
TEST(FOREACH_VA_ARGS) {
size_t i;

i = 0;
Expand Down Expand Up @@ -484,7 +484,7 @@ TEST(foreach_va_args) {
assert_se(false);
}

TEST(align_to) {
TEST(ALIGN_TO) {
assert_se(ALIGN_TO(0, 1) == 0);
assert_se(ALIGN_TO(1, 1) == 1);
assert_se(ALIGN_TO(2, 1) == 2);
Expand Down Expand Up @@ -1005,7 +1005,7 @@ TEST(FOREACH_ARRAY) {
assert_se(ROUND_UP(x, y) == max_value); \
})

TEST(round_up) {
TEST(ROUND_UP) {
TEST_ROUND_UP_BY_TYPE(uint8_t, UINT8_MAX);
TEST_ROUND_UP_BY_TYPE(uint16_t, UINT16_MAX);
TEST_ROUND_UP_BY_TYPE(uint32_t, UINT32_MAX);
Expand Down

0 comments on commit 1707d5d

Please sign in to comment.