Compare commits

..

No commits in common. "b12a67ae145ce01d3dc97fc76fed8c1698125dc6" and "c631c3d6a340c13adf05dc9b06bd7bd566bd6c9e" have entirely different histories.

10 changed files with 44 additions and 72 deletions

View File

@ -208,11 +208,11 @@
<term><option>nofail</option></term>
<listitem><para>This device will not be a hard dependency of
<filename>cryptsetup.target</filename>. It'll still be pulled in and started, but the system
<filename>cryptsetup.target</filename>. It'll be still pulled in and started, but the system
will not wait for the device to show up and be unlocked, and boot will not fail if this is
unsuccessful. Note that other units that depend on the unlocked device may still fail. In
particular, if the device is used for a mount point, the mount point itself also needs to
have the <option>nofail</option> option, or the boot will fail if the device is not unlocked
particular, if the device is used for a mount point, the mount point itself is also needs to
have <option>noauto</option> option, or the boot will fail if the device is not unlocked
successfully.</para></listitem>
</varlistentry>

View File

@ -1348,9 +1348,8 @@
<ulink url="https://getfedora.org">Fedora</ulink> image and start a shell in it</title>
<programlisting># machinectl pull-raw --verify=no \
https://download.fedoraproject.org/pub/fedora/linux/releases/&fedora_latest_version;/Cloud/x86_64/images/Fedora-Cloud-Base-&fedora_latest_version;-&fedora_cloud_release;.x86_64.raw.xz \
Fedora-Cloud-Base-&fedora_latest_version;-&fedora_cloud_release;.x86-64
# systemd-nspawn -M Fedora-Cloud-Base-&fedora_latest_version;-&fedora_cloud_release;.x86-64</programlisting>
https://download.fedoraproject.org/pub/fedora/linux/releases/&fedora_latest_version;/Cloud/x86_64/images/Fedora-Cloud-Base-&fedora_latest_version;-&fedora_cloud_release;.x86_64.raw.xz
# systemd-nspawn -M Fedora-Cloud-Base-&fedora_latest_version;-&fedora_cloud_release;.x86_64</programlisting>
<para>This downloads an image using
<citerefentry><refentrytitle>machinectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>

View File

@ -25,7 +25,7 @@ int reset_all_signal_handlers(void) {
/* On Linux the first two RT signals are reserved by
* glibc, and sigaction() will return EINVAL for them. */
if (sigaction(sig, &sa, NULL) < 0)
if ((sigaction(sig, &sa, NULL) < 0))
if (errno != EINVAL && r >= 0)
r = -errno;
}

View File

@ -506,10 +506,7 @@ static int enumerator_scan_dir_and_add_devices(sd_device_enumerator *enumerator,
initialized = sd_device_get_is_initialized(device);
if (initialized < 0) {
if (initialized != -ENOENT)
/* this is necessarily racey, so ignore missing devices */
r = initialized;
r = initialized;
continue;
}
@ -642,9 +639,7 @@ static int enumerator_scan_devices_tag(sd_device_enumerator *enumerator, const c
k = sd_device_get_subsystem(device, &subsystem);
if (k < 0) {
if (k != -ENOENT)
/* this is necessarily racy, so ignore missing devices */
r = k;
r = k;
continue;
}

View File

@ -145,7 +145,6 @@ static int network_resolve_stacked_netdevs(Network *network) {
}
int network_verify(Network *network) {
RoutePrefix *route_prefix, *route_prefix_next;
RoutingPolicyRule *rule, *rule_next;
Neighbor *neighbor, *neighbor_next;
AddressLabel *label, *label_next;
@ -305,9 +304,9 @@ int network_verify(Network *network) {
if (section_is_invalid(prefix->section))
prefix_free(prefix);
LIST_FOREACH_SAFE(route_prefixes, route_prefix, route_prefix_next, network->static_route_prefixes)
if (section_is_invalid(route_prefix->section))
route_prefix_free(route_prefix);
LIST_FOREACH_SAFE(prefixes, prefix, prefix_next, network->static_route_prefixes)
if (section_is_invalid(prefix->section))
route_prefix_free(prefix);
LIST_FOREACH_SAFE(rules, rule, rule_next, network->rules)
if (routing_policy_rule_section_verify(rule) < 0)
@ -578,11 +577,10 @@ failure:
static Network *network_free(Network *network) {
IPv6ProxyNDPAddress *ipv6_proxy_ndp_address;
RoutePrefix *route_prefix;
RoutingPolicyRule *rule;
AddressLabel *label;
FdbEntry *fdb_entry;
Neighbor *neighbor;
AddressLabel *label;
Address *address;
NextHop *nexthop;
Prefix *prefix;
@ -656,8 +654,8 @@ static Network *network_free(Network *network) {
while ((prefix = network->static_prefixes))
prefix_free(prefix);
while ((route_prefix = network->static_route_prefixes))
route_prefix_free(route_prefix);
while ((prefix = network->static_route_prefixes))
route_prefix_free(prefix);
while ((rule = network->rules))
routing_policy_rule_free(rule);

View File

@ -245,7 +245,7 @@ struct Network {
LIST_HEAD(Neighbor, neighbors);
LIST_HEAD(AddressLabel, address_labels);
LIST_HEAD(Prefix, static_prefixes);
LIST_HEAD(RoutePrefix, static_route_prefixes);
LIST_HEAD(Prefix, static_route_prefixes);
LIST_HEAD(RoutingPolicyRule, rules);
unsigned n_static_addresses;

View File

@ -36,7 +36,7 @@ void prefix_free(Prefix *prefix) {
free(prefix);
}
static int prefix_new(Prefix **ret) {
int prefix_new(Prefix **ret) {
_cleanup_(prefix_freep) Prefix *prefix = NULL;
prefix = new0(Prefix, 1);
@ -101,10 +101,10 @@ static int prefix_new_static(Network *network, const char *filename,
return 0;
}
static int route_prefix_new(RoutePrefix **ret) {
_cleanup_(route_prefix_freep) RoutePrefix *prefix = NULL;
int route_prefix_new(Prefix **ret) {
_cleanup_(prefix_freep) Prefix *prefix = NULL;
prefix = new0(RoutePrefix, 1);
prefix = new0(Prefix, 1);
if (!prefix)
return -ENOMEM;
@ -116,12 +116,12 @@ static int route_prefix_new(RoutePrefix **ret) {
return 0;
}
void route_prefix_free(RoutePrefix *prefix) {
void route_prefix_free(Prefix *prefix) {
if (!prefix)
return;
if (prefix->network) {
LIST_REMOVE(route_prefixes, prefix->network->static_route_prefixes, prefix);
LIST_REMOVE(prefixes, prefix->network->static_route_prefixes, prefix);
assert(prefix->network->n_static_route_prefixes > 0);
prefix->network->n_static_route_prefixes--;
@ -137,9 +137,9 @@ void route_prefix_free(RoutePrefix *prefix) {
}
static int route_prefix_new_static(Network *network, const char *filename,
unsigned section_line, RoutePrefix **ret) {
unsigned section_line, Prefix **ret) {
_cleanup_(network_config_section_freep) NetworkConfigSection *n = NULL;
_cleanup_(route_prefix_freep) RoutePrefix *prefix = NULL;
_cleanup_(prefix_freep) Prefix *prefix = NULL;
int r;
assert(network);
@ -166,7 +166,7 @@ static int route_prefix_new_static(Network *network, const char *filename,
return r;
prefix->network = network;
LIST_APPEND(route_prefixes, network->static_route_prefixes, prefix);
LIST_APPEND(prefixes, network->static_route_prefixes, prefix);
network->n_static_route_prefixes++;
if (filename) {
@ -331,7 +331,7 @@ int config_parse_route_prefix(const char *unit,
void *userdata) {
Network *network = userdata;
_cleanup_(route_prefix_free_or_set_invalidp) RoutePrefix *p = NULL;
_cleanup_(route_prefix_free_or_set_invalidp) Prefix *p = NULL;
uint8_t prefixlen = 64;
union in_addr_union in6addr;
int r;
@ -373,7 +373,7 @@ int config_parse_route_prefix_lifetime(const char *unit,
void *data,
void *userdata) {
Network *network = userdata;
_cleanup_(route_prefix_free_or_set_invalidp) RoutePrefix *p = NULL;
_cleanup_(route_prefix_free_or_set_invalidp) Prefix *p = NULL;
usec_t usec;
int r;
@ -549,9 +549,8 @@ int radv_emit_dns(Link *link) {
}
int radv_configure(Link *link) {
RoutePrefix *q;
Prefix *p;
int r;
Prefix *p;
assert(link);
assert(link->network);
@ -610,8 +609,8 @@ int radv_configure(Link *link) {
return r;
}
LIST_FOREACH(route_prefixes, q, link->network->static_route_prefixes) {
r = sd_radv_add_route_prefix(link->radv, q->radv_route_prefix, false);
LIST_FOREACH(prefixes, p, link->network->static_route_prefixes) {
r = sd_radv_add_route_prefix(link->radv, p->radv_route_prefix, false);
if (r == -EEXIST)
continue;
if (r < 0)

View File

@ -11,7 +11,6 @@
#include "networkd-util.h"
typedef struct Prefix Prefix;
typedef struct RoutePrefix RoutePrefix;
typedef enum RADVPrefixDelegation {
RADV_PREFIX_DELEGATION_NONE,
@ -27,26 +26,21 @@ struct Prefix {
NetworkConfigSection *section;
sd_radv_prefix *radv_prefix;
LIST_FIELDS(Prefix, prefixes);
};
struct RoutePrefix {
Network *network;
NetworkConfigSection *section;
sd_radv_route_prefix *radv_route_prefix;
LIST_FIELDS(RoutePrefix, route_prefixes);
LIST_FIELDS(Prefix, prefixes);
LIST_FIELDS(Prefix, route_prefixes);
};
int prefix_new(Prefix **ret);
void prefix_free(Prefix *prefix);
DEFINE_NETWORK_SECTION_FUNCTIONS(Prefix, prefix_free);
void route_prefix_free(RoutePrefix *prefix);
int route_prefix_new(Prefix **ret);
void route_prefix_free(Prefix *prefix);
DEFINE_NETWORK_SECTION_FUNCTIONS(RoutePrefix, route_prefix_free);
DEFINE_NETWORK_SECTION_FUNCTIONS(Prefix, route_prefix_free);
int radv_emit_dns(Link *link);
int radv_configure(Link *link);

View File

@ -2,7 +2,6 @@
#include <ctype.h>
#include <net/if.h>
#include <unistd.h>
#include "alloc-util.h"
#include "fd-util.h"
@ -1612,12 +1611,10 @@ int table_print(Table *t, FILE *f) {
}
/* Calculate effective table width */
if (t->width != (size_t) -1)
table_effective_width = t->width;
else if (pager_have() || !isatty(STDOUT_FILENO))
table_effective_width = table_requested_width;
if (t->width == (size_t) -1)
table_effective_width = pager_have() ? table_requested_width : MIN(table_requested_width, columns());
else
table_effective_width = MIN(table_requested_width, columns());
table_effective_width = t->width;
if (table_maximum_width != (size_t) -1 && table_effective_width > table_maximum_width)
table_effective_width = table_maximum_width;

View File

@ -1,7 +1,5 @@
/* SPDX-License-Identifier: LGPL-2.1+ */
#include <unistd.h>
#include "alloc-util.h"
#include "format-table.h"
#include "string-util.h"
@ -156,20 +154,12 @@ int main(int argc, char *argv[]) {
assert_se(table_format(t, &formatted) >= 0);
printf("%s\n", formatted);
if (isatty(STDOUT_FILENO))
assert_se(streq(formatted,
" no a long f… no a long f… a long fi…\n"
" no fäää no fäää fäää \n"
" yes fäää yes fäää fäää \n"
" yes xxx yes xxx xxx \n"
"5min 5min \n"));
else
assert_se(streq(formatted,
" no a long field no a long field a long field\n"
" no fäää no fäää fäää \n"
" yes fäää yes fäää fäää \n"
" yes xxx yes xxx xxx \n"
"5min 5min \n"));
assert_se(streq(formatted,
" no a long f… no a long f… a long fi…\n"
" no fäää no fäää fäää \n"
" yes fäää yes fäää fäää \n"
" yes xxx yes xxx xxx \n"
"5min 5min \n"));
test_issue_9549();