Skip to content

Commit edc8dd2

Browse files
authored
Merge pull request systemd#15392 from keszybz/flag-helper
Flag setting helper and some other minor cleanups
2 parents b05e122 + 0da9650 commit edc8dd2

File tree

6 files changed

+89
-69
lines changed

6 files changed

+89
-69
lines changed

man/systemd.network.xml

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1930,10 +1930,9 @@
19301930
<varlistentry>
19311931
<term><varname>POP3Servers=</varname></term>
19321932

1933-
<listitem><para>Similar to the <varname>DNS=</varname> settings described above, these
1934-
settings configure whether and what POP3 server information shall be emitted as part of
1935-
the DHCP lease. The same syntax, propagation semantics and defaults apply as for
1936-
<term><varname>SMTPServers=</varname></term>
1933+
<listitem><para>Similar to the <varname>DNS=</varname> setting described above, this setting
1934+
configures whether and what POP3 server information shall be emitted as part of the DHCP lease. The
1935+
same syntax, propagation semantics and defaults apply as for
19371936
<varname>DNS=</varname>.</para></listitem>
19381937
</varlistentry>
19391938

src/basic/btrfs-util.c

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -175,11 +175,7 @@ int btrfs_subvol_set_read_only_fd(int fd, bool b) {
175175
if (ioctl(fd, BTRFS_IOC_SUBVOL_GETFLAGS, &flags) < 0)
176176
return -errno;
177177

178-
if (b)
179-
nflags = flags | BTRFS_SUBVOL_RDONLY;
180-
else
181-
nflags = flags & ~BTRFS_SUBVOL_RDONLY;
182-
178+
nflags = UPDATE_FLAG(flags, BTRFS_SUBVOL_RDONLY, b);
183179
if (flags == nflags)
184180
return 0;
185181

src/basic/fd-util.c

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -144,11 +144,7 @@ int fd_nonblock(int fd, bool nonblock) {
144144
if (flags < 0)
145145
return -errno;
146146

147-
if (nonblock)
148-
nflags = flags | O_NONBLOCK;
149-
else
150-
nflags = flags & ~O_NONBLOCK;
151-
147+
nflags = UPDATE_FLAG(flags, O_NONBLOCK, nonblock);
152148
if (nflags == flags)
153149
return 0;
154150

@@ -167,11 +163,7 @@ int fd_cloexec(int fd, bool cloexec) {
167163
if (flags < 0)
168164
return -errno;
169165

170-
if (cloexec)
171-
nflags = flags | FD_CLOEXEC;
172-
else
173-
nflags = flags & ~FD_CLOEXEC;
174-
166+
nflags = UPDATE_FLAG(flags, FD_CLOEXEC, cloexec);
175167
if (nflags == flags)
176168
return 0;
177169

src/basic/macro.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -451,8 +451,10 @@ static inline int __coverity_check_and_return__(int condition) {
451451
ans; \
452452
})
453453

454+
#define UPDATE_FLAG(orig, flag, b) \
455+
((b) ? ((orig) | (flag)) : ((orig) & ~(flag)))
454456
#define SET_FLAG(v, flag, b) \
455-
(v) = (b) ? ((v) | (flag)) : ((v) & ~(flag))
457+
(v) = UPDATE_FLAG(v, flag, b)
456458
#define FLAGS_SET(v, flags) \
457459
((~(v) & (flags)) == 0)
458460

src/busctl/busctl.c

Lines changed: 79 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,8 @@ static int acquire_bus(bool set_monitor, sd_bus **ret) {
101101

102102
r = sd_bus_set_watch_bind(bus, arg_watch_bind);
103103
if (r < 0)
104-
return log_error_errno(r, "Failed to set watch-bind setting to '%s': %m", yes_no(arg_watch_bind));
104+
return log_error_errno(r, "Failed to set watch-bind setting to '%s': %m",
105+
yes_no(arg_watch_bind));
105106

106107
if (arg_address)
107108
r = sd_bus_set_address(bus, arg_address);
@@ -172,7 +173,9 @@ static int list_bus_names(int argc, char **argv, void *userdata) {
172173
if (r < 0)
173174
return r;
174175

175-
r = sd_bus_list_names(bus, (arg_acquired || arg_unique) ? &acquired : NULL, arg_activatable ? &activatable : NULL);
176+
r = sd_bus_list_names(bus,
177+
(arg_acquired || arg_unique) ? &acquired : NULL,
178+
arg_activatable ? &activatable : NULL);
176179
if (r < 0)
177180
return log_error_errno(r, "Failed to list names: %m");
178181

@@ -192,7 +195,16 @@ static int list_bus_names(int argc, char **argv, void *userdata) {
192195
return log_error_errno(r, "Failed to add to hashmap: %m");
193196
}
194197

195-
table = table_new("activatable", "name", "pid", "process", "user", "connection", "unit", "session", "description", "machine");
198+
table = table_new("activatable",
199+
"name",
200+
"pid",
201+
"process",
202+
"user",
203+
"connection",
204+
"unit",
205+
"session",
206+
"description",
207+
"machine");
196208
if (!table)
197209
return log_oom();
198210

@@ -354,11 +366,11 @@ static int list_bus_names(int argc, char **argv, void *userdata) {
354366
return log_error_errno(r, "Failed to fill line: %m");
355367
}
356368

357-
if (IN_SET(arg_json, JSON_OFF, JSON_PRETTY))
358-
(void) pager_open(arg_pager_flags);
369+
(void) pager_open(arg_pager_flags);
359370

360371
if (arg_json)
361-
r = table_print_json(table, stdout, (arg_json == JSON_PRETTY ? JSON_FORMAT_PRETTY : JSON_FORMAT_NEWLINE) | JSON_FORMAT_COLOR_AUTO);
372+
r = table_print_json(table, stdout,
373+
(arg_json == JSON_PRETTY ? JSON_FORMAT_PRETTY : JSON_FORMAT_NEWLINE) | JSON_FORMAT_COLOR_AUTO);
362374
else
363375
r = table_print(table, stdout);
364376
if (r < 0)
@@ -405,7 +417,10 @@ static void print_subtree(const char *prefix, const char *path, char **l) {
405417
n++;
406418
}
407419

408-
printf("%s%s%s\n", prefix, special_glyph(has_more ? SPECIAL_GLYPH_TREE_BRANCH : SPECIAL_GLYPH_TREE_RIGHT), *l);
420+
printf("%s%s%s\n",
421+
prefix,
422+
special_glyph(has_more ? SPECIAL_GLYPH_TREE_BRANCH : SPECIAL_GLYPH_TREE_RIGHT),
423+
*l);
409424

410425
print_subtree(has_more ? vertical : space, *l, l);
411426
l = n;
@@ -460,12 +475,16 @@ static int find_nodes(sd_bus *bus, const char *service, const char *path, Set *p
460475
const char *xml;
461476
int r;
462477

463-
r = sd_bus_call_method(bus, service, path, "org.freedesktop.DBus.Introspectable", "Introspect", &error, &reply, "");
478+
r = sd_bus_call_method(bus, service, path,
479+
"org.freedesktop.DBus.Introspectable", "Introspect",
480+
&error, &reply, "");
464481
if (r < 0) {
465482
if (many)
466-
printf("Failed to introspect object %s of service %s: %s\n", path, service, bus_error_message(&error, r));
483+
printf("Failed to introspect object %s of service %s: %s\n",
484+
path, service, bus_error_message(&error, r));
467485
else
468-
log_error_errno(r, "Failed to introspect object %s of service %s: %s", path, service, bus_error_message(&error, r));
486+
log_error_errno(r, "Failed to introspect object %s of service %s: %s",
487+
path, service, bus_error_message(&error, r));
469488
return r;
470489
}
471490

@@ -994,16 +1013,20 @@ static int introspect(int argc, char **argv, void *userdata) {
9941013
if (!members)
9951014
return log_oom();
9961015

997-
r = sd_bus_call_method(bus, argv[1], argv[2], "org.freedesktop.DBus.Introspectable", "Introspect", &error, &reply_xml, "");
1016+
r = sd_bus_call_method(bus, argv[1], argv[2],
1017+
"org.freedesktop.DBus.Introspectable", "Introspect",
1018+
&error, &reply_xml, "");
9981019
if (r < 0)
999-
return log_error_errno(r, "Failed to introspect object %s of service %s: %s", argv[2], argv[1], bus_error_message(&error, r));
1020+
return log_error_errno(r, "Failed to introspect object %s of service %s: %s",
1021+
argv[2], argv[1], bus_error_message(&error, r));
10001022

10011023
r = sd_bus_message_read(reply_xml, "s", &xml);
10021024
if (r < 0)
10031025
return bus_log_parse_error(r);
10041026

10051027
if (arg_xml_interface) {
10061028
/* Just dump the received XML and finish */
1029+
(void) pager_open(arg_pager_flags);
10071030
puts(xml);
10081031
return 0;
10091032
}
@@ -1026,7 +1049,9 @@ static int introspect(int argc, char **argv, void *userdata) {
10261049
if (argv[3] && !streq(argv[3], m->interface))
10271050
continue;
10281051

1029-
r = sd_bus_call_method(bus, argv[1], argv[2], "org.freedesktop.DBus.Properties", "GetAll", &error, &reply, "s", m->interface);
1052+
r = sd_bus_call_method(bus, argv[1], argv[2],
1053+
"org.freedesktop.DBus.Properties", "GetAll",
1054+
&error, &reply, "s", m->interface);
10301055
if (r < 0)
10311056
return log_error_errno(r, "Failed to get all properties on interface %s: %s",
10321057
m->interface, bus_error_message(&error, r));
@@ -1088,17 +1113,14 @@ static int introspect(int argc, char **argv, void *userdata) {
10881113
return bus_log_parse_error(r);
10891114
}
10901115

1091-
(void) pager_open(arg_pager_flags);
1092-
1093-
name_width = STRLEN("NAME");
1094-
type_width = STRLEN("TYPE");
1095-
signature_width = STRLEN("SIGNATURE");
1096-
result_width = STRLEN("RESULT/VALUE");
1116+
name_width = strlen("NAME");
1117+
type_width = strlen("TYPE");
1118+
signature_width = strlen("SIGNATURE");
1119+
result_width = strlen("RESULT/VALUE");
10971120

10981121
sorted = newa(Member*, set_size(members));
10991122

11001123
SET_FOREACH(m, members, i) {
1101-
11021124
if (argv[3] && !streq(argv[3], m->interface))
11031125
continue;
11041126

@@ -1123,6 +1145,8 @@ static int introspect(int argc, char **argv, void *userdata) {
11231145

11241146
typesafe_qsort(sorted, k, member_compare_funcp);
11251147

1148+
(void) pager_open(arg_pager_flags);
1149+
11261150
if (arg_legend) {
11271151
printf("%-*s %-*s %-*s %-*s %s\n",
11281152
(int) name_width, "NAME",
@@ -1159,7 +1183,8 @@ static int introspect(int argc, char **argv, void *userdata) {
11591183
printf("%s%s%-*s%s %-*s %-*s %-*s%s%s%s%s%s%s\n",
11601184
is_interface ? ansi_highlight() : "",
11611185
is_interface ? "" : ".",
1162-
- !is_interface + (int) name_width, empty_to_dash(streq_ptr(m->type, "interface") ? m->interface : m->name),
1186+
- !is_interface + (int) name_width,
1187+
empty_to_dash(streq_ptr(m->type, "interface") ? m->interface : m->name),
11631188
is_interface ? ansi_normal() : "",
11641189
(int) type_width, empty_to_dash(m->type),
11651190
(int) signature_width, empty_to_dash(m->signature),
@@ -1196,22 +1221,22 @@ static int message_json(sd_bus_message *m, FILE *f) {
11961221
e[1] = 0;
11971222

11981223
r = json_build(&w, JSON_BUILD_OBJECT(
1199-
JSON_BUILD_PAIR("type", JSON_BUILD_STRING(bus_message_type_to_string(m->header->type))),
1200-
JSON_BUILD_PAIR("endian", JSON_BUILD_STRING(e)),
1201-
JSON_BUILD_PAIR("flags", JSON_BUILD_INTEGER(m->header->flags)),
1202-
JSON_BUILD_PAIR("version", JSON_BUILD_INTEGER(m->header->version)),
1203-
JSON_BUILD_PAIR("cookie", JSON_BUILD_INTEGER(BUS_MESSAGE_COOKIE(m))),
1204-
JSON_BUILD_PAIR_CONDITION(m->reply_cookie != 0, "reply_cookie", JSON_BUILD_INTEGER(m->reply_cookie)),
1205-
JSON_BUILD_PAIR_CONDITION(m->sender, "sender", JSON_BUILD_STRING(m->sender)),
1206-
JSON_BUILD_PAIR_CONDITION(m->destination, "destination", JSON_BUILD_STRING(m->destination)),
1207-
JSON_BUILD_PAIR_CONDITION(m->path, "path", JSON_BUILD_STRING(m->path)),
1208-
JSON_BUILD_PAIR_CONDITION(m->interface, "interface", JSON_BUILD_STRING(m->interface)),
1209-
JSON_BUILD_PAIR_CONDITION(m->member, "member", JSON_BUILD_STRING(m->member)),
1210-
JSON_BUILD_PAIR_CONDITION(m->monotonic != 0, "monotonic", JSON_BUILD_INTEGER(m->monotonic)),
1211-
JSON_BUILD_PAIR_CONDITION(m->realtime != 0, "realtime", JSON_BUILD_INTEGER(m->realtime)),
1212-
JSON_BUILD_PAIR_CONDITION(m->seqnum != 0, "seqnum", JSON_BUILD_INTEGER(m->seqnum)),
1213-
JSON_BUILD_PAIR_CONDITION(m->error.name, "error_name", JSON_BUILD_STRING(m->error.name)),
1214-
JSON_BUILD_PAIR("payload", JSON_BUILD_VARIANT(v))));
1224+
JSON_BUILD_PAIR("type", JSON_BUILD_STRING(bus_message_type_to_string(m->header->type))),
1225+
JSON_BUILD_PAIR("endian", JSON_BUILD_STRING(e)),
1226+
JSON_BUILD_PAIR("flags", JSON_BUILD_INTEGER(m->header->flags)),
1227+
JSON_BUILD_PAIR("version", JSON_BUILD_INTEGER(m->header->version)),
1228+
JSON_BUILD_PAIR("cookie", JSON_BUILD_INTEGER(BUS_MESSAGE_COOKIE(m))),
1229+
JSON_BUILD_PAIR_CONDITION(m->reply_cookie != 0, "reply_cookie", JSON_BUILD_INTEGER(m->reply_cookie)),
1230+
JSON_BUILD_PAIR_CONDITION(m->sender, "sender", JSON_BUILD_STRING(m->sender)),
1231+
JSON_BUILD_PAIR_CONDITION(m->destination, "destination", JSON_BUILD_STRING(m->destination)),
1232+
JSON_BUILD_PAIR_CONDITION(m->path, "path", JSON_BUILD_STRING(m->path)),
1233+
JSON_BUILD_PAIR_CONDITION(m->interface, "interface", JSON_BUILD_STRING(m->interface)),
1234+
JSON_BUILD_PAIR_CONDITION(m->member, "member", JSON_BUILD_STRING(m->member)),
1235+
JSON_BUILD_PAIR_CONDITION(m->monotonic != 0, "monotonic", JSON_BUILD_INTEGER(m->monotonic)),
1236+
JSON_BUILD_PAIR_CONDITION(m->realtime != 0, "realtime", JSON_BUILD_INTEGER(m->realtime)),
1237+
JSON_BUILD_PAIR_CONDITION(m->seqnum != 0, "seqnum", JSON_BUILD_INTEGER(m->seqnum)),
1238+
JSON_BUILD_PAIR_CONDITION(m->error.name, "error_name", JSON_BUILD_STRING(m->error.name)),
1239+
JSON_BUILD_PAIR("payload", JSON_BUILD_VARIANT(v))));
12151240
if (r < 0)
12161241
return log_error_errno(r, "Failed to build JSON object: %m");
12171242

@@ -1375,6 +1400,8 @@ static int status(int argc, char **argv, void *userdata) {
13751400
if (r < 0)
13761401
return r;
13771402

1403+
(void) pager_open(arg_pager_flags);
1404+
13781405
if (!isempty(argv[1])) {
13791406
r = parse_pid(argv[1], &pid);
13801407
if (r < 0)
@@ -1402,7 +1429,8 @@ static int status(int argc, char **argv, void *userdata) {
14021429

14031430
r = sd_bus_get_bus_id(bus, &bus_id);
14041431
if (r >= 0)
1405-
printf("BusID=%s" SD_ID128_FORMAT_STR "%s\n", ansi_highlight(), SD_ID128_FORMAT_VAL(bus_id), ansi_normal());
1432+
printf("BusID=%s" SD_ID128_FORMAT_STR "%s\n",
1433+
ansi_highlight(), SD_ID128_FORMAT_VAL(bus_id), ansi_normal());
14061434

14071435
r = sd_bus_get_owner_creds(
14081436
bus,
@@ -1562,7 +1590,6 @@ static int message_append_cmdline(sd_bus_message *m, const char *signature, char
15621590
return log_error_errno(r, "Invalid array signature: %m");
15631591

15641592
{
1565-
unsigned i;
15661593
char s[k + 1];
15671594
memcpy(s, signature, k);
15681595
s[k] = 0;
@@ -1571,7 +1598,7 @@ static int message_append_cmdline(sd_bus_message *m, const char *signature, char
15711598
if (r < 0)
15721599
return bus_log_create_error(r);
15731600

1574-
for (i = 0; i < n; i++) {
1601+
for (unsigned i = 0; i < n; i++) {
15751602
r = message_append_cmdline(m, s, &p);
15761603
if (r < 0)
15771604
return r;
@@ -1612,7 +1639,9 @@ static int message_append_cmdline(sd_bus_message *m, const char *signature, char
16121639
memcpy(s, signature + 1, k - 2);
16131640
s[k - 2] = 0;
16141641

1615-
r = sd_bus_message_open_container(m, t == SD_BUS_TYPE_STRUCT_BEGIN ? SD_BUS_TYPE_STRUCT : SD_BUS_TYPE_DICT_ENTRY, s);
1642+
const char ctype = t == SD_BUS_TYPE_STRUCT_BEGIN ?
1643+
SD_BUS_TYPE_STRUCT : SD_BUS_TYPE_DICT_ENTRY;
1644+
r = sd_bus_message_open_container(m, ctype, s);
16161645
if (r < 0)
16171646
return bus_log_create_error(r);
16181647

@@ -2033,7 +2062,8 @@ static int call(int argc, char **argv, void *userdata) {
20332062
return r;
20342063

20352064
if (*p)
2036-
return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "Too many parameters for signature.");
2065+
return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
2066+
"Too many parameters for signature.");
20372067
}
20382068

20392069
if (!arg_expect_reply) {
@@ -2121,7 +2151,8 @@ static int emit_signal(int argc, char **argv, void *userdata) {
21212151
return r;
21222152

21232153
if (*p)
2124-
return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "Too many parameters for signature.");
2154+
return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
2155+
"Too many parameters for signature.");
21252156
}
21262157

21272158
r = sd_bus_send(bus, m, NULL);
@@ -2146,7 +2177,9 @@ static int get_property(int argc, char **argv, void *userdata) {
21462177
const char *contents = NULL;
21472178
char type;
21482179

2149-
r = sd_bus_call_method(bus, argv[1], argv[2], "org.freedesktop.DBus.Properties", "Get", &error, &reply, "ss", argv[3], *i);
2180+
r = sd_bus_call_method(bus, argv[1], argv[2],
2181+
"org.freedesktop.DBus.Properties", "Get",
2182+
&error, &reply, "ss", argv[3], *i);
21502183
if (r < 0)
21512184
return log_error_errno(r, "Failed to get property %s on interface %s: %s",
21522185
*i, argv[3],
@@ -2208,7 +2241,8 @@ static int set_property(int argc, char **argv, void *userdata) {
22082241
if (r < 0)
22092242
return r;
22102243

2211-
r = sd_bus_message_new_method_call(bus, &m, argv[1], argv[2], "org.freedesktop.DBus.Properties", "Set");
2244+
r = sd_bus_message_new_method_call(bus, &m, argv[1], argv[2],
2245+
"org.freedesktop.DBus.Properties", "Set");
22122246
if (r < 0)
22132247
return bus_log_create_error(r);
22142248

src/shared/efi-loader.c

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -135,10 +135,7 @@ int efi_set_reboot_to_firmware(bool value) {
135135
if (r < 0)
136136
return r;
137137

138-
if (value)
139-
b_new = b | EFI_OS_INDICATIONS_BOOT_TO_FW_UI;
140-
else
141-
b_new = b & ~EFI_OS_INDICATIONS_BOOT_TO_FW_UI;
138+
b_new = UPDATE_FLAG(b, EFI_OS_INDICATIONS_BOOT_TO_FW_UI, value);
142139

143140
/* Avoid writing to efi vars store if we can due to firmware bugs. */
144141
if (b != b_new)

0 commit comments

Comments
 (0)