1
0
mirror of https://github.com/systemd/systemd synced 2025-09-30 09:14:46 +02:00

Compare commits

..

No commits in common. "01131684ac66e82faae18e40e110089003d7c536" and "8dfc2beb571f0e0ad780d628c743eac68faf5186" have entirely different histories.

214 changed files with 720 additions and 1681 deletions

View File

@ -43,5 +43,3 @@ jobs:
- fedora-rawhide-aarch64
- fedora-rawhide-i386
- fedora-rawhide-x86_64
- fedora-eln-aarch64
- fedora-eln-x86_64

View File

@ -279,9 +279,3 @@ systemd-sysext:
specify API file systems such as `/proc/` or `/sys/` here, or hierarchies
that have them as submounts. In particular, do not specify the root directory
`/` here.
systemd-tmpfiles:
* `SYSTEMD_TMPFILES_FORCE_SUBVOL` - if unset, v/q/Q lines will create subvolumes only if the
OS itself is installed into a subvolume. If set to 1 (or another true value), these lines will always create
subvolumes (if the backing filesystem supports them). If set to 0, these lines will always create directories.

View File

@ -154,22 +154,20 @@
<xi:include href="standard-options.xml" xpointer="help" />
<xi:include href="standard-options.xml" xpointer="version" />
<varlistentry>
<term><option>--no-legend</option></term>
<listitem><para>Do not print column headers.</para></listitem>
</varlistentry>
<xi:include href="standard-options.xml" xpointer="no-pager" />
<xi:include href="standard-options.xml" xpointer="no-legend" />
<xi:include href="standard-options.xml" xpointer="json" />
<varlistentry>
<term><option>-1</option></term>
<listitem><para>Show information of the most recent core dump only, instead of listing all known core
dumps. (Equivalent to <option>--reverse -n 1</option></para></listitem>
</varlistentry>
<varlistentry>
<term><option>-n</option> <replaceable>INT</replaceable></term>
<listitem><para>Show at most the specified number of entries. The specified parameter must be an
integer greater or equal to 1.</para></listitem>
<listitem><para>Show information of a single core dump only, instead of listing
all known core dumps.</para></listitem>
</varlistentry>
<varlistentry>

View File

@ -155,20 +155,6 @@
to be used in case the unit names do not match the image name as described in the <command>attach</command>.</para>
</varlistentry>
<varlistentry>
<term><command>reattach</command> <replaceable>IMAGE</replaceable> [<replaceable>PREFIX…</replaceable>]</term>
<listitem><para>Detaches an existing portable service image from the host, and immediately attaches it again.
This is useful in case the image was replaced. Running units are not stopped during the process. Partial matching,
to allow for different versions in the image name, is allowed: only the part before the first <literal>_</literal>
character has to match. If the new image doesn't exist, the existing one will not be detached. The parameters
follow the same syntax as the <command>attach</command> command.</para></listitem>
<para>If <option>--now</option> and/or <option>--enable</option> are passed, the portable service(s) are
immediately stopped if removed, started and/or enabled if added, or restarted if updated. Prefixes are also
accepted, in the same way as described in the <command>attach</command> case.</para>
</varlistentry>
<varlistentry>
<term><command>inspect</command> <replaceable>IMAGE</replaceable> [<replaceable>PREFIX…</replaceable>]</term>
@ -342,8 +328,7 @@
<varlistentry>
<term><option>--now</option></term>
<listitem><para>Immediately start/stop/restart the portable service after attaching/before
detaching/after upgrading.</para></listitem>
<listitem><para>Immediately start/stop the portable service after attaching/before detaching.</para></listitem>
</varlistentry>
<varlistentry>

View File

@ -11,7 +11,7 @@ msgstr ""
"Project-Id-Version: systemd master\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-01-08 17:48+0100\n"
"PO-Revision-Date: 2021-02-10 15:40+0000\n"
"PO-Revision-Date: 2021-02-05 20:40+0000\n"
"Last-Translator: Göran Uddeborg <goeran@uddeborg.se>\n"
"Language-Team: Swedish <https://translate.fedoraproject.org/projects/systemd/"
"master/sv/>\n"
@ -532,7 +532,7 @@ msgstr "Autentisering krävs för att ställa in ”orsaken” för omstart i k
#: src/login/org.freedesktop.login1.policy:363
msgid "Indicate to the firmware to boot to setup interface"
msgstr ""
"Indikera till den fasta programvaran att starta upp till "
"Indikera till den fasta programvaran att starta upp i "
"inställningsgränssnittet"
#: src/login/org.freedesktop.login1.policy:364
@ -540,12 +540,12 @@ msgid ""
"Authentication is required to indicate to the firmware to boot to setup "
"interface."
msgstr ""
"Autentisering krävs för att indikera till den fasta programvaran att starta "
"upp till inställningsgränssnitt."
"Autentisering krävs för att indikera till firmware att starta upp till "
"inställningsgränssnitt."
#: src/login/org.freedesktop.login1.policy:374
msgid "Indicate to the boot loader to boot to the boot loader menu"
msgstr "Indikera till startprogrammet att starta upp i uppstartsladdmenyn"
msgstr "Indikera till den startprogrammet att starta upp i uppstartsladdmenyn"
#: src/login/org.freedesktop.login1.policy:375
msgid ""
@ -899,7 +899,7 @@ msgstr "Autentisering krävs för att stoppa \"$(unit)\"."
#: src/core/dbus-unit.c:361
msgid "Authentication is required to reload '$(unit)'."
msgstr "Autentisering krävs för att läsa om \"$(unit)\"."
msgstr "Autentisering krävs för att läsa om tillståndet för \"$(unit)\"."
#: src/core/dbus-unit.c:362 src/core/dbus-unit.c:363
msgid "Authentication is required to restart '$(unit)'."

View File

@ -40,7 +40,7 @@ _coredumpctl() {
local cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]}
local OPTS='-h --help --version --no-pager --no-legend -o --output -F --field -1
-r --reverse -S --since -U --until -D --directory -q --quiet --debugger
-A --debugger-arguments --json -n'
-A --debugger-arguments'
local -A VERBS=(
[LIST]='list info'
@ -58,8 +58,6 @@ _coredumpctl() {
compopt -o filenames
elif __contains_word "$prev" '--field -F'; then
comps=$( compgen -W '${__journal_fields[*]}' -- "$cur" )
elif __contains_word "$prev" '--json'; then
comps=$( compgen -W 'pretty short off' -- "$cur" )
elif [[ $cur = -* ]]; then
comps=${OPTS}
elif __contains_word "$prev" ${VERBS[*]} &&

View File

@ -43,7 +43,7 @@ _loginctl () {
[STANDALONE]='--all -a --help -h --no-pager --version
--no-legend --no-ask-password -l --full --value'
[ARG]='--host -H --kill-who --property -p --signal -s -M --machine
-n --lines -o --output -P'
-n --lines -o --output'
)
if __contains_word "$prev" ${OPTS[ARG]}; then
@ -61,7 +61,7 @@ _loginctl () {
--machine|-M)
comps=$( __get_machines )
;;
--property|-p|-P)
--property|-p)
comps=''
;;
--output|-o)

View File

@ -40,7 +40,7 @@ _portablectl() {
local -A VERBS=(
[STANDALONE]='list'
[IMAGE]='attach detach reattach inspect is-attached set-limit'
[IMAGE]='attach detach inspect is-attached set-limit'
[IMAGES]='remove'
[IMAGE_WITH_BOOL]='read-only'
)

View File

@ -1574,7 +1574,7 @@ static int dump_exit_status(int argc, char *argv[], void *userdata) {
status = exit_status_from_string(argv[i]);
if (status < 0)
return log_error_errno(status, "Invalid exit status \"%s\".", argv[i]);
return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "Invalid exit status \"%s\".", argv[i]);
assert(status >= 0 && (size_t) status < ELEMENTSOF(exit_status_mappings));
r = table_add_many(table,

View File

@ -45,7 +45,7 @@ enum {
ARCHITECTURE_ARC,
ARCHITECTURE_ARC_BE,
_ARCHITECTURE_MAX,
_ARCHITECTURE_INVALID = -EINVAL,
_ARCHITECTURE_INVALID = -1
};
int uname_architecture(void);

View File

@ -32,7 +32,7 @@ typedef enum CGroupController {
CGROUP_CONTROLLER_BPF_DEVICES,
_CGROUP_CONTROLLER_MAX,
_CGROUP_CONTROLLER_INVALID = -EINVAL,
_CGROUP_CONTROLLER_INVALID = -1,
} CGroupController;
#define CGROUP_CONTROLLER_TO_MASK(c) (1U << (c))
@ -97,7 +97,7 @@ typedef enum CGroupIOLimitType {
CGROUP_IO_WIOPS_MAX,
_CGROUP_IO_LIMIT_TYPE_MAX,
_CGROUP_IO_LIMIT_TYPE_INVALID = -EINVAL,
_CGROUP_IO_LIMIT_TYPE_INVALID = -1
} CGroupIOLimitType;
extern const uint64_t cgroup_io_limit_defaults[_CGROUP_IO_LIMIT_TYPE_MAX];
@ -283,7 +283,7 @@ typedef enum ManagedOOMMode {
MANAGED_OOM_AUTO,
MANAGED_OOM_KILL,
_MANAGED_OOM_MODE_MAX,
_MANAGED_OOM_MODE_INVALID = -EINVAL,
_MANAGED_OOM_MODE_INVALID = -1,
} ManagedOOMMode;
const char* managed_oom_mode_to_string(ManagedOOMMode m) _const_;

View File

@ -26,7 +26,7 @@ typedef enum LocaleVariable {
VARIABLE_LC_MEASUREMENT,
VARIABLE_LC_IDENTIFICATION,
_VARIABLE_LC_MAX,
_VARIABLE_LC_INVALID = -EINVAL,
_VARIABLE_LC_INVALID = -1
} LocaleVariable;
int get_locales(char ***l);

View File

@ -1085,7 +1085,7 @@ int log_set_target_from_string(const char *e) {
t = log_target_from_string(e);
if (t < 0)
return t;
return -EINVAL;
log_set_target(t);
return 0;
@ -1096,7 +1096,7 @@ int log_set_max_level_from_string(const char *e) {
t = log_level_from_string(e);
if (t < 0)
return t;
return -EINVAL;
log_set_max_level(t);
return 0;

View File

@ -23,7 +23,7 @@ typedef enum LogTarget{
LOG_TARGET_AUTO, /* console if stderr is not journal, JOURNAL_OR_KMSG otherwise */
LOG_TARGET_NULL,
_LOG_TARGET_MAX,
_LOG_TARGET_INVALID = -EINVAL,
_LOG_TARGET_INVALID = -1
} LogTarget;
/* Note to readers: << and >> have lower precedence than & and | */

View File

@ -24,7 +24,7 @@ typedef enum SmackAttr {
SMACK_ATTR_IPIN,
SMACK_ATTR_IPOUT,
_SMACK_ATTR_MAX,
_SMACK_ATTR_INVALID = -EINVAL,
_SMACK_ATTR_INVALID = -1,
} SmackAttr;
bool mac_smack_use(void);

View File

@ -63,7 +63,7 @@ typedef enum SocketAddressBindIPv6Only {
SOCKET_ADDRESS_BOTH,
SOCKET_ADDRESS_IPV6_ONLY,
_SOCKET_ADDRESS_BIND_IPV6_ONLY_MAX,
_SOCKET_ADDRESS_BIND_IPV6_ONLY_INVALID = -EINVAL,
_SOCKET_ADDRESS_BIND_IPV6_ONLY_INVALID = -1
} SocketAddressBindIPv6Only;
#define socket_address_family(a) ((a)->sockaddr.sa.sa_family)

View File

@ -5,11 +5,11 @@
ssize_t string_table_lookup(const char * const *table, size_t len, const char *key) {
if (!key)
return -EINVAL;
return -1;
for (size_t i = 0; i < len; ++i)
if (streq_ptr(table[i], key))
return (ssize_t) i;
return -EINVAL;
return -1;
}

View File

@ -29,7 +29,7 @@ ssize_t string_table_lookup(const char * const *table, size_t len, const char *k
#define _DEFINE_STRING_TABLE_LOOKUP_FROM_STRING_WITH_BOOLEAN(name,type,yes,scope) \
scope type name##_from_string(const char *s) { \
if (!s) \
return -EINVAL; \
return -1; \
int b = parse_boolean(s); \
if (b == 0) \
return (type) 0; \
@ -60,16 +60,14 @@ ssize_t string_table_lookup(const char * const *table, size_t len, const char *k
unsigned u = 0; \
type i; \
if (!s) \
return -EINVAL; \
return (type) -1; \
i = (type) string_table_lookup(name##_table, ELEMENTSOF(name##_table), s); \
if (i >= 0) \
return i; \
if (safe_atou(s, &u) < 0) \
return -EINVAL; \
if (u > max) \
return -EINVAL; \
if (safe_atou(s, &u) >= 0 && u <= max) \
return (type) u; \
}
return (type) -1; \
} \
#define _DEFINE_STRING_TABLE_LOOKUP(name,type,scope) \
_DEFINE_STRING_TABLE_LOOKUP_TO_STRING(name,type,scope) \

View File

@ -111,7 +111,7 @@ typedef enum ColorMode {
/* Only 256 colors. */
COLOR_256 = 256,
_COLOR_INVALID = -EINVAL,
_COLOR_INVALID = -1,
} ColorMode;
int acquire_terminal(const char *name, AcquireTerminalFlags flags, usec_t timeout);

View File

@ -35,7 +35,7 @@ typedef enum TimestampStyle {
TIMESTAMP_UTC,
TIMESTAMP_US_UTC,
_TIMESTAMP_STYLE_MAX,
_TIMESTAMP_STYLE_INVALID = -EINVAL,
_TIMESTAMP_STYLE_INVALID = -1,
} TimestampStyle;
#define USEC_INFINITY ((usec_t) UINT64_MAX)

View File

@ -22,7 +22,7 @@ typedef enum UnitType {
UNIT_SLICE,
UNIT_SCOPE,
_UNIT_TYPE_MAX,
_UNIT_TYPE_INVALID = -EINVAL,
_UNIT_TYPE_INVALID = -1
} UnitType;
typedef enum UnitLoadState {
@ -34,7 +34,7 @@ typedef enum UnitLoadState {
UNIT_MERGED,
UNIT_MASKED,
_UNIT_LOAD_STATE_MAX,
_UNIT_LOAD_STATE_INVALID = -EINVAL,
_UNIT_LOAD_STATE_INVALID = -1
} UnitLoadState;
typedef enum UnitActiveState {
@ -46,7 +46,7 @@ typedef enum UnitActiveState {
UNIT_DEACTIVATING,
UNIT_MAINTENANCE,
_UNIT_ACTIVE_STATE_MAX,
_UNIT_ACTIVE_STATE_INVALID = -EINVAL,
_UNIT_ACTIVE_STATE_INVALID = -1
} UnitActiveState;
typedef enum FreezerState {
@ -55,7 +55,7 @@ typedef enum FreezerState {
FREEZER_FROZEN,
FREEZER_THAWING,
_FREEZER_STATE_MAX,
_FREEZER_STATE_INVALID = -EINVAL,
_FREEZER_STATE_INVALID = -1
} FreezerState;
typedef enum AutomountState {
@ -64,7 +64,7 @@ typedef enum AutomountState {
AUTOMOUNT_RUNNING,
AUTOMOUNT_FAILED,
_AUTOMOUNT_STATE_MAX,
_AUTOMOUNT_STATE_INVALID = -EINVAL,
_AUTOMOUNT_STATE_INVALID = -1
} AutomountState;
/* We simply watch devices, we cannot plug/unplug them. That
@ -74,7 +74,7 @@ typedef enum DeviceState {
DEVICE_TENTATIVE, /* mounted or swapped, but not (yet) announced by udev */
DEVICE_PLUGGED, /* announced by udev */
_DEVICE_STATE_MAX,
_DEVICE_STATE_INVALID = -EINVAL,
_DEVICE_STATE_INVALID = -1
} DeviceState;
typedef enum MountState {
@ -91,7 +91,7 @@ typedef enum MountState {
MOUNT_FAILED,
MOUNT_CLEANING,
_MOUNT_STATE_MAX,
_MOUNT_STATE_INVALID = -EINVAL,
_MOUNT_STATE_INVALID = -1
} MountState;
typedef enum PathState {
@ -100,7 +100,7 @@ typedef enum PathState {
PATH_RUNNING,
PATH_FAILED,
_PATH_STATE_MAX,
_PATH_STATE_INVALID = -EINVAL,
_PATH_STATE_INVALID = -1
} PathState;
typedef enum ScopeState {
@ -111,7 +111,7 @@ typedef enum ScopeState {
SCOPE_STOP_SIGKILL,
SCOPE_FAILED,
_SCOPE_STATE_MAX,
_SCOPE_STATE_INVALID = -EINVAL,
_SCOPE_STATE_INVALID = -1
} ScopeState;
typedef enum ServiceState {
@ -135,14 +135,14 @@ typedef enum ServiceState {
SERVICE_AUTO_RESTART,
SERVICE_CLEANING,
_SERVICE_STATE_MAX,
_SERVICE_STATE_INVALID = -EINVAL,
_SERVICE_STATE_INVALID = -1
} ServiceState;
typedef enum SliceState {
SLICE_DEAD,
SLICE_ACTIVE,
_SLICE_STATE_MAX,
_SLICE_STATE_INVALID = -EINVAL,
_SLICE_STATE_INVALID = -1
} SliceState;
typedef enum SocketState {
@ -161,7 +161,7 @@ typedef enum SocketState {
SOCKET_FAILED,
SOCKET_CLEANING,
_SOCKET_STATE_MAX,
_SOCKET_STATE_INVALID = -EINVAL,
_SOCKET_STATE_INVALID = -1
} SocketState;
typedef enum SwapState {
@ -175,14 +175,14 @@ typedef enum SwapState {
SWAP_FAILED,
SWAP_CLEANING,
_SWAP_STATE_MAX,
_SWAP_STATE_INVALID = -EINVAL,
_SWAP_STATE_INVALID = -1
} SwapState;
typedef enum TargetState {
TARGET_DEAD,
TARGET_ACTIVE,
_TARGET_STATE_MAX,
_TARGET_STATE_INVALID = -EINVAL,
_TARGET_STATE_INVALID = -1
} TargetState;
typedef enum TimerState {
@ -192,7 +192,7 @@ typedef enum TimerState {
TIMER_ELAPSED,
TIMER_FAILED,
_TIMER_STATE_MAX,
_TIMER_STATE_INVALID = -EINVAL,
_TIMER_STATE_INVALID = -1
} TimerState;
typedef enum UnitDependency {
@ -237,7 +237,7 @@ typedef enum UnitDependency {
UNIT_REFERENCED_BY,
_UNIT_DEPENDENCY_MAX,
_UNIT_DEPENDENCY_INVALID = -EINVAL,
_UNIT_DEPENDENCY_INVALID = -1
} UnitDependency;
typedef enum NotifyAccess {
@ -246,7 +246,7 @@ typedef enum NotifyAccess {
NOTIFY_MAIN,
NOTIFY_EXEC,
_NOTIFY_ACCESS_MAX,
_NOTIFY_ACCESS_INVALID = -EINVAL,
_NOTIFY_ACCESS_INVALID = -1
} NotifyAccess;
char *unit_dbus_path_from_name(const char *name);

View File

@ -26,7 +26,7 @@ enum UnitFileState {
UNIT_FILE_TRANSIENT,
UNIT_FILE_BAD,
_UNIT_FILE_STATE_MAX,
_UNIT_FILE_STATE_INVALID = -EINVAL,
_UNIT_FILE_STATE_INVALID = -1
};
enum UnitFileScope {
@ -34,7 +34,7 @@ enum UnitFileScope {
UNIT_FILE_GLOBAL,
UNIT_FILE_USER,
_UNIT_FILE_SCOPE_MAX,
_UNIT_FILE_SCOPE_INVALID = -EINVAL,
_UNIT_FILE_SCOPE_INVALID = -1
};
bool unit_type_may_alias(UnitType type) _const_;

View File

@ -252,7 +252,7 @@ int unit_name_build(const char *prefix, const char *instance, const char *suffix
type = unit_type_from_string(suffix + 1);
if (type < 0)
return type;
return -EINVAL;
return unit_name_build_from_type(prefix, instance, type, ret);
}

View File

@ -13,7 +13,7 @@ typedef enum UnitNameFlags {
UNIT_NAME_TEMPLATE = 1 << 1, /* Allow foo@.service */
UNIT_NAME_INSTANCE = 1 << 2, /* Allow foo@bar.service */
UNIT_NAME_ANY = UNIT_NAME_PLAIN|UNIT_NAME_TEMPLATE|UNIT_NAME_INSTANCE,
_UNIT_NAME_INVALID = -EINVAL,
_UNIT_NAME_INVALID = -1,
} UnitNameFlags;
bool unit_name_is_valid(const char *n, UnitNameFlags flags) _pure_;

View File

@ -41,7 +41,7 @@ enum {
VIRTUALIZATION_CONTAINER_LAST = VIRTUALIZATION_CONTAINER_OTHER,
_VIRTUALIZATION_MAX,
_VIRTUALIZATION_INVALID = -EINVAL,
_VIRTUALIZATION_INVALID = -1
};
static inline bool VIRTUALIZATION_IS_VM(int x) {

View File

@ -2,14 +2,13 @@
#pragma once
#include <efi.h>
#include <errno.h>
typedef enum RandomSeedMode {
RANDOM_SEED_OFF,
RANDOM_SEED_WITH_SYSTEM_TOKEN,
RANDOM_SEED_ALWAYS,
_RANDOM_SEED_MODE_MAX,
_RANDOM_SEED_MODE_INVALID = -EINVAL,
_RANDOM_SEED_MODE_INVALID = -1,
} RandomSeedMode;
EFI_STATUS process_random_seed(EFI_FILE *root_dir, RandomSeedMode mode);

View File

@ -12,7 +12,7 @@ typedef enum AutomountResult {
AUTOMOUNT_FAILURE_START_LIMIT_HIT,
AUTOMOUNT_FAILURE_MOUNT_START_LIMIT_HIT,
_AUTOMOUNT_RESULT_MAX,
_AUTOMOUNT_RESULT_INVALID = -EINVAL,
_AUTOMOUNT_RESULT_INVALID = -1
} AutomountResult;
struct Automount {

View File

@ -44,7 +44,7 @@ typedef enum CGroupDevicePolicy {
CGROUP_DEVICE_POLICY_STRICT,
_CGROUP_DEVICE_POLICY_MAX,
_CGROUP_DEVICE_POLICY_INVALID = -EINVAL,
_CGROUP_DEVICE_POLICY_INVALID = -1
} CGroupDevicePolicy;
typedef enum FreezerAction {
@ -52,7 +52,7 @@ typedef enum FreezerAction {
FREEZER_THAW,
_FREEZER_ACTION_MAX,
_FREEZER_ACTION_INVALID = -EINVAL,
_FREEZER_ACTION_INVALID = -1,
} FreezerAction;
struct CGroupDeviceAllow {
@ -173,7 +173,7 @@ typedef enum CGroupIPAccountingMetric {
CGROUP_IP_EGRESS_BYTES,
CGROUP_IP_EGRESS_PACKETS,
_CGROUP_IP_ACCOUNTING_METRIC_MAX,
_CGROUP_IP_ACCOUNTING_METRIC_INVALID = -EINVAL,
_CGROUP_IP_ACCOUNTING_METRIC_INVALID = -1,
} CGroupIPAccountingMetric;
/* Used when querying IO accounting data */
@ -183,7 +183,7 @@ typedef enum CGroupIOAccountingMetric {
CGROUP_IO_READ_OPERATIONS,
CGROUP_IO_WRITE_OPERATIONS,
_CGROUP_IO_ACCOUNTING_METRIC_MAX,
_CGROUP_IO_ACCOUNTING_METRIC_INVALID = -EINVAL,
_CGROUP_IO_ACCOUNTING_METRIC_INVALID = -1,
} CGroupIOAccountingMetric;
typedef struct Unit Unit;

View File

@ -1452,7 +1452,7 @@ int bus_cgroup_set_property(
p = cgroup_device_policy_from_string(policy);
if (p < 0)
return p;
return -EINVAL;
if (!UNIT_WRITE_FLAGS_NOOP(flags)) {
c->device_policy = p;

View File

@ -338,7 +338,7 @@ static int bus_timer_set_transient_property(
b = timer_base_from_string(name);
if (b < 0)
return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Unknown timer base %s", name);
return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Unknown timer base");
r = sd_bus_message_read(message, "t", &usec);
if (r < 0)

View File

@ -1982,7 +1982,7 @@ static int bus_unit_set_transient_property(
UnitWriteFlags flags,
sd_bus_error *error) {
UnitDependency d;
UnitDependency d = _UNIT_DEPENDENCY_INVALID;
int r;
assert(u);

View File

@ -1,8 +1,6 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <errno.h>
typedef enum EmergencyAction {
EMERGENCY_ACTION_NONE,
EMERGENCY_ACTION_REBOOT,
@ -15,7 +13,7 @@ typedef enum EmergencyAction {
_EMERGENCY_ACTION_FIRST_USER_ACTION = EMERGENCY_ACTION_EXIT,
EMERGENCY_ACTION_EXIT_FORCE,
_EMERGENCY_ACTION_MAX,
_EMERGENCY_ACTION_INVALID = -EINVAL,
_EMERGENCY_ACTION_INVALID = -1
} EmergencyAction;
typedef enum EmergencyActionFlags {

View File

@ -33,7 +33,7 @@ typedef enum ExecUtmpMode {
EXEC_UTMP_LOGIN,
EXEC_UTMP_USER,
_EXEC_UTMP_MODE_MAX,
_EXEC_UTMP_MODE_INVALID = -EINVAL,
_EXEC_UTMP_MODE_INVALID = -1
} ExecUtmpMode;
typedef enum ExecInput {
@ -46,7 +46,7 @@ typedef enum ExecInput {
EXEC_INPUT_DATA,
EXEC_INPUT_FILE,
_EXEC_INPUT_MAX,
_EXEC_INPUT_INVALID = -EINVAL,
_EXEC_INPUT_INVALID = -1
} ExecInput;
typedef enum ExecOutput {
@ -63,7 +63,7 @@ typedef enum ExecOutput {
EXEC_OUTPUT_FILE_APPEND,
EXEC_OUTPUT_FILE_TRUNCATE,
_EXEC_OUTPUT_MAX,
_EXEC_OUTPUT_INVALID = -EINVAL,
_EXEC_OUTPUT_INVALID = -1
} ExecOutput;
typedef enum ExecPreserveMode {
@ -71,7 +71,7 @@ typedef enum ExecPreserveMode {
EXEC_PRESERVE_YES,
EXEC_PRESERVE_RESTART,
_EXEC_PRESERVE_MODE_MAX,
_EXEC_PRESERVE_MODE_INVALID = -EINVAL,
_EXEC_PRESERVE_MODE_INVALID = -1
} ExecPreserveMode;
typedef enum ExecKeyringMode {
@ -79,7 +79,7 @@ typedef enum ExecKeyringMode {
EXEC_KEYRING_PRIVATE,
EXEC_KEYRING_SHARED,
_EXEC_KEYRING_MODE_MAX,
_EXEC_KEYRING_MODE_INVALID = -EINVAL,
_EXEC_KEYRING_MODE_INVALID = -1,
} ExecKeyringMode;
/* Contains start and exit information about an executed command. */
@ -126,7 +126,7 @@ typedef enum ExecDirectoryType {
EXEC_DIRECTORY_LOGS,
EXEC_DIRECTORY_CONFIGURATION,
_EXEC_DIRECTORY_TYPE_MAX,
_EXEC_DIRECTORY_TYPE_INVALID = -EINVAL,
_EXEC_DIRECTORY_TYPE_INVALID = -1,
} ExecDirectoryType;
typedef struct ExecDirectory {
@ -144,7 +144,7 @@ typedef enum ExecCleanMask {
EXEC_CLEAN_CONFIGURATION = 1U << EXEC_DIRECTORY_CONFIGURATION,
EXEC_CLEAN_NONE = 0,
EXEC_CLEAN_ALL = (1U << _EXEC_DIRECTORY_TYPE_MAX) - 1,
_EXEC_CLEAN_MASK_INVALID = -EINVAL,
_EXEC_CLEAN_MASK_INVALID = -1,
} ExecCleanMask;
/* A credential configured with SetCredential= */

View File

@ -57,14 +57,14 @@ enum JobType {
JOB_RELOAD_OR_START, /* if running, reload, otherwise start */
_JOB_TYPE_MAX,
_JOB_TYPE_INVALID = -EINVAL,
_JOB_TYPE_INVALID = -1
};
enum JobState {
JOB_WAITING,
JOB_RUNNING,
_JOB_STATE_MAX,
_JOB_STATE_INVALID = -EINVAL,
_JOB_STATE_INVALID = -1
};
enum JobMode {
@ -77,7 +77,7 @@ enum JobMode {
JOB_IGNORE_REQUIREMENTS, /* Ignore requirement dependencies */
JOB_TRIGGERING, /* Adds TRIGGERED_BY dependencies to the same transaction */
_JOB_MODE_MAX,
_JOB_MODE_INVALID = -EINVAL,
_JOB_MODE_INVALID = -1
};
enum JobResult {
@ -93,7 +93,7 @@ enum JobResult {
JOB_COLLECTED, /* Job was garbage collected, since nothing needed it anymore */
JOB_ONCE, /* Unit was started before, and hence can't be started again */
_JOB_RESULT_MAX,
_JOB_RESULT_INVALID = -EINVAL,
_JOB_RESULT_INVALID = -1
};
#include "unit.h"

View File

@ -15,7 +15,7 @@ typedef enum KillMode {
KILL_MIXED,
KILL_NONE,
_KILL_MODE_MAX,
_KILL_MODE_INVALID = -EINVAL,
_KILL_MODE_INVALID = -1
} KillMode;
struct KillContext {
@ -37,7 +37,7 @@ typedef enum KillWho {
KILL_CONTROL_FAIL,
KILL_ALL_FAIL,
_KILL_WHO_MAX,
_KILL_WHO_INVALID = -EINVAL,
_KILL_WHO_INVALID = -1
} KillWho;
void kill_context_init(KillContext *c);

View File

@ -510,7 +510,7 @@ static int manager_setup_signals(Manager *m) {
SIGCHLD, /* Child died */
SIGTERM, /* Reexecute daemon */
SIGHUP, /* Reload configuration */
SIGUSR1, /* systemd: reconnect to D-Bus */
SIGUSR1, /* systemd/upstart: reconnect to D-Bus */
SIGUSR2, /* systemd: dump status */
SIGINT, /* Kernel sends us this on control-alt-del */
SIGWINCH, /* Kernel sends us this on kbrequest (alt-arrowup) */
@ -3180,19 +3180,22 @@ static bool manager_timestamp_shall_serialize(ManagerTimestamp t) {
#define DESTROY_IPC_FLAG (UINT32_C(1) << 31)
static void manager_serialize_uid_refs_internal(
Manager *m,
FILE *f,
Hashmap *uid_refs,
Hashmap **uid_refs,
const char *field_name) {
void *p, *k;
assert(m);
assert(f);
assert(uid_refs);
assert(field_name);
/* Serialize the UID reference table. Or actually, just the IPC destruction flag of it, as
* the actual counter of it is better rebuild after a reload/reexec. */
HASHMAP_FOREACH_KEY(p, k, uid_refs) {
HASHMAP_FOREACH_KEY(p, k, *uid_refs) {
uint32_t c;
uid_t uid;
@ -3207,11 +3210,11 @@ static void manager_serialize_uid_refs_internal(
}
static void manager_serialize_uid_refs(Manager *m, FILE *f) {
manager_serialize_uid_refs_internal(f, m->uid_refs, "destroy-ipc-uid");
manager_serialize_uid_refs_internal(m, f, &m->uid_refs, "destroy-ipc-uid");
}
static void manager_serialize_gid_refs(Manager *m, FILE *f) {
manager_serialize_uid_refs_internal(f, m->gid_refs, "destroy-ipc-gid");
manager_serialize_uid_refs_internal(m, f, &m->gid_refs, "destroy-ipc-gid");
}
int manager_serialize(
@ -3471,6 +3474,7 @@ void manager_retry_runtime_watchdog(Manager *m) {
}
static void manager_deserialize_uid_refs_one_internal(
Manager *m,
Hashmap** uid_refs,
const char *value) {
@ -3478,16 +3482,18 @@ static void manager_deserialize_uid_refs_one_internal(
uint32_t c;
int r;
assert(m);
assert(uid_refs);
assert(value);
r = parse_uid(value, &uid);
if (r < 0 || uid == 0) {
log_debug("Unable to parse UID/GID reference serialization: " UID_FMT, uid);
log_debug("Unable to parse UID reference serialization: " UID_FMT, uid);
return;
}
if (hashmap_ensure_allocated(uid_refs, &trivial_hash_ops) < 0) {
r = hashmap_ensure_allocated(uid_refs, &trivial_hash_ops);
if (r < 0) {
log_oom();
return;
}
@ -3500,17 +3506,17 @@ static void manager_deserialize_uid_refs_one_internal(
r = hashmap_replace(*uid_refs, UID_TO_PTR(uid), UINT32_TO_PTR(c));
if (r < 0) {
log_debug_errno(r, "Failed to add UID/GID reference entry: %m");
log_debug_errno(r, "Failed to add UID reference entry: %m");
return;
}
}
static void manager_deserialize_uid_refs_one(Manager *m, const char *value) {
manager_deserialize_uid_refs_one_internal(&m->uid_refs, value);
manager_deserialize_uid_refs_one_internal(m, &m->uid_refs, value);
}
static void manager_deserialize_gid_refs_one(Manager *m, const char *value) {
manager_deserialize_uid_refs_one_internal(&m->gid_refs, value);
manager_deserialize_uid_refs_one_internal(m, &m->gid_refs, value);
}
int manager_deserialize(Manager *m, FILE *f, FDSet *fds) {
@ -4584,13 +4590,16 @@ ManagerState manager_state(Manager *m) {
}
static void manager_unref_uid_internal(
Hashmap *uid_refs,
Manager *m,
Hashmap **uid_refs,
uid_t uid,
bool destroy_now,
int (*_clean_ipc)(uid_t uid)) {
uint32_t c, n;
assert(m);
assert(uid_refs);
assert(uid_is_valid(uid));
assert(_clean_ipc);
@ -4608,14 +4617,14 @@ static void manager_unref_uid_internal(
if (uid == 0) /* We don't keep track of root, and will never destroy it */
return;
c = PTR_TO_UINT32(hashmap_get(uid_refs, UID_TO_PTR(uid)));
c = PTR_TO_UINT32(hashmap_get(*uid_refs, UID_TO_PTR(uid)));
n = c & ~DESTROY_IPC_FLAG;
assert(n > 0);
n--;
if (destroy_now && n == 0) {
hashmap_remove(uid_refs, UID_TO_PTR(uid));
hashmap_remove(*uid_refs, UID_TO_PTR(uid));
if (c & DESTROY_IPC_FLAG) {
log_debug("%s " UID_FMT " is no longer referenced, cleaning up its IPC.",
@ -4625,19 +4634,20 @@ static void manager_unref_uid_internal(
}
} else {
c = n | (c & DESTROY_IPC_FLAG);
assert_se(hashmap_update(uid_refs, UID_TO_PTR(uid), UINT32_TO_PTR(c)) >= 0);
assert_se(hashmap_update(*uid_refs, UID_TO_PTR(uid), UINT32_TO_PTR(c)) >= 0);
}
}
void manager_unref_uid(Manager *m, uid_t uid, bool destroy_now) {
manager_unref_uid_internal(m->uid_refs, uid, destroy_now, clean_ipc_by_uid);
manager_unref_uid_internal(m, &m->uid_refs, uid, destroy_now, clean_ipc_by_uid);
}
void manager_unref_gid(Manager *m, gid_t gid, bool destroy_now) {
manager_unref_uid_internal(m->gid_refs, (uid_t) gid, destroy_now, clean_ipc_by_gid);
manager_unref_uid_internal(m, &m->gid_refs, (uid_t) gid, destroy_now, clean_ipc_by_gid);
}
static int manager_ref_uid_internal(
Manager *m,
Hashmap **uid_refs,
uid_t uid,
bool clean_ipc) {
@ -4645,6 +4655,7 @@ static int manager_ref_uid_internal(
uint32_t c, n;
int r;
assert(m);
assert(uid_refs);
assert(uid_is_valid(uid));
@ -4675,22 +4686,25 @@ static int manager_ref_uid_internal(
}
int manager_ref_uid(Manager *m, uid_t uid, bool clean_ipc) {
return manager_ref_uid_internal(&m->uid_refs, uid, clean_ipc);
return manager_ref_uid_internal(m, &m->uid_refs, uid, clean_ipc);
}
int manager_ref_gid(Manager *m, gid_t gid, bool clean_ipc) {
return manager_ref_uid_internal(&m->gid_refs, (uid_t) gid, clean_ipc);
return manager_ref_uid_internal(m, &m->gid_refs, (uid_t) gid, clean_ipc);
}
static void manager_vacuum_uid_refs_internal(
Hashmap *uid_refs,
Manager *m,
Hashmap **uid_refs,
int (*_clean_ipc)(uid_t uid)) {
void *p, *k;
assert(m);
assert(uid_refs);
assert(_clean_ipc);
HASHMAP_FOREACH_KEY(p, k, uid_refs) {
HASHMAP_FOREACH_KEY(p, k, *uid_refs) {
uint32_t c, n;
uid_t uid;
@ -4708,16 +4722,16 @@ static void manager_vacuum_uid_refs_internal(
(void) _clean_ipc(uid);
}
assert_se(hashmap_remove(uid_refs, k) == p);
assert_se(hashmap_remove(*uid_refs, k) == p);
}
}
static void manager_vacuum_uid_refs(Manager *m) {
manager_vacuum_uid_refs_internal(m->uid_refs, clean_ipc_by_uid);
manager_vacuum_uid_refs_internal(m, &m->uid_refs, clean_ipc_by_uid);
}
static void manager_vacuum_gid_refs(Manager *m) {
manager_vacuum_uid_refs_internal(m->gid_refs, clean_ipc_by_gid);
manager_vacuum_uid_refs_internal(m, &m->gid_refs, clean_ipc_by_gid);
}
static void manager_vacuum(Manager *m) {

View File

@ -36,7 +36,7 @@ typedef enum ManagerState {
MANAGER_MAINTENANCE,
MANAGER_STOPPING,
_MANAGER_STATE_MAX,
_MANAGER_STATE_INVALID = -EINVAL,
_MANAGER_STATE_INVALID = -1
} ManagerState;
typedef enum ManagerObjective {
@ -50,7 +50,7 @@ typedef enum ManagerObjective {
MANAGER_KEXEC,
MANAGER_SWITCH_ROOT,
_MANAGER_OBJECTIVE_MAX,
_MANAGER_OBJECTIVE_INVALID = -EINVAL,
_MANAGER_OBJECTIVE_INVALID = -1
} ManagerObjective;
typedef enum StatusType {
@ -65,7 +65,7 @@ typedef enum OOMPolicy {
OOM_STOP, /* The kernel kills the process it wants to kill, and we stop the unit */
OOM_KILL, /* The kernel kills the process it wants to kill, and all others in the unit, and we stop the unit */
_OOM_POLICY_MAX,
_OOM_POLICY_INVALID = -EINVAL,
_OOM_POLICY_INVALID = -1
} OOMPolicy;
/* Notes:
@ -111,7 +111,7 @@ typedef enum ManagerTimestamp {
MANAGER_TIMESTAMP_INITRD_UNITS_LOAD_START,
MANAGER_TIMESTAMP_INITRD_UNITS_LOAD_FINISH,
_MANAGER_TIMESTAMP_MAX,
_MANAGER_TIMESTAMP_INVALID = -EINVAL,
_MANAGER_TIMESTAMP_INVALID = -1,
} ManagerTimestamp;
typedef enum WatchdogType {
@ -311,25 +311,25 @@ struct Manager {
/* The stat() data the last time we saw /etc/localtime */
usec_t etc_localtime_mtime;
bool etc_localtime_accessible;
bool etc_localtime_accessible:1;
ManagerObjective objective;
ManagerObjective objective:5;
/* Flags */
bool dispatching_load_queue;
bool dispatching_load_queue:1;
bool taint_usr;
bool taint_usr:1;
/* Have we already sent out the READY=1 notification? */
bool ready_sent;
bool ready_sent:1;
/* Have we already printed the taint line if necessary? */
bool taint_logged;
bool taint_logged:1;
/* Have we ever changed the "kernel.pid_max" sysctl? */
bool sysctl_pid_max_changed;
bool sysctl_pid_max_changed:1;
ManagerTestRunFlags test_run_flags;
ManagerTestRunFlags test_run_flags:8;
/* If non-zero, exit with the following value when the systemd
* process terminate. Useful for containers: systemd-nspawn could get
@ -366,8 +366,8 @@ struct Manager {
int original_log_level;
LogTarget original_log_target;
bool log_level_overridden;
bool log_target_overridden;
bool log_level_overridden:1;
bool log_target_overridden:1;
struct rlimit *rlimit[_RLIMIT_MAX];
@ -537,7 +537,7 @@ void manager_unref_uid(Manager *m, uid_t uid, bool destroy_now);
int manager_ref_uid(Manager *m, uid_t uid, bool clean_ipc);
void manager_unref_gid(Manager *m, gid_t gid, bool destroy_now);
int manager_ref_gid(Manager *m, gid_t gid, bool clean_ipc);
int manager_ref_gid(Manager *m, gid_t gid, bool destroy_now);
char *manager_taint_string(Manager *m);

View File

@ -12,7 +12,7 @@ typedef enum MountExecCommand {
MOUNT_EXEC_UNMOUNT,
MOUNT_EXEC_REMOUNT,
_MOUNT_EXEC_COMMAND_MAX,
_MOUNT_EXEC_COMMAND_INVALID = -EINVAL,
_MOUNT_EXEC_COMMAND_INVALID = -1
} MountExecCommand;
typedef enum MountResult {
@ -25,7 +25,7 @@ typedef enum MountResult {
MOUNT_FAILURE_START_LIMIT_HIT,
MOUNT_FAILURE_PROTOCOL,
_MOUNT_RESULT_MAX,
_MOUNT_RESULT_INVALID = -EINVAL,
_MOUNT_RESULT_INVALID = -1
} MountResult;
typedef struct MountParameters {

View File

@ -23,7 +23,7 @@ typedef enum ProtectHome {
PROTECT_HOME_READ_ONLY,
PROTECT_HOME_TMPFS,
_PROTECT_HOME_MAX,
_PROTECT_HOME_INVALID = -EINVAL,
_PROTECT_HOME_INVALID = -1
} ProtectHome;
typedef enum NamespaceType {
@ -35,7 +35,7 @@ typedef enum NamespaceType {
NAMESPACE_PID,
NAMESPACE_NET,
_NAMESPACE_TYPE_MAX,
_NAMESPACE_TYPE_INVALID = -EINVAL,
_NAMESPACE_TYPE_INVALID = -1,
} NamespaceType;
typedef enum ProtectSystem {
@ -44,7 +44,7 @@ typedef enum ProtectSystem {
PROTECT_SYSTEM_FULL,
PROTECT_SYSTEM_STRICT,
_PROTECT_SYSTEM_MAX,
_PROTECT_SYSTEM_INVALID = -EINVAL,
_PROTECT_SYSTEM_INVALID = -1
} ProtectSystem;
typedef enum ProtectProc {
@ -53,14 +53,14 @@ typedef enum ProtectProc {
PROTECT_PROC_INVISIBLE, /* hidepid=invisible */
PROTECT_PROC_PTRACEABLE, /* hidepid=ptraceable */
_PROTECT_PROC_MAX,
_PROTECT_PROC_INVALID = -EINVAL,
_PROTECT_PROC_INVALID = -1,
} ProtectProc;
typedef enum ProcSubset {
PROC_SUBSET_ALL,
PROC_SUBSET_PID, /* subset=pid */
_PROC_SUBSET_MAX,
_PROC_SUBSET_INVALID = -EINVAL,
_PROC_SUBSET_INVALID = -1,
} ProcSubset;
struct NamespaceInfo {

View File

@ -13,7 +13,7 @@ typedef enum PathType {
PATH_CHANGED,
PATH_MODIFIED,
_PATH_TYPE_MAX,
_PATH_TYPE_INVALID = -EINVAL,
_PATH_TYPE_INVALID = -1
} PathType;
typedef struct PathSpec {
@ -47,7 +47,7 @@ typedef enum PathResult {
PATH_FAILURE_START_LIMIT_HIT,
PATH_FAILURE_UNIT_START_LIMIT_HIT,
_PATH_RESULT_MAX,
_PATH_RESULT_INVALID = -EINVAL,
_PATH_RESULT_INVALID = -1
} PathResult;
struct Path {

View File

@ -12,7 +12,7 @@ typedef enum ScopeResult {
SCOPE_FAILURE_RESOURCES,
SCOPE_FAILURE_TIMEOUT,
_SCOPE_RESULT_MAX,
_SCOPE_RESULT_INVALID = -EINVAL,
_SCOPE_RESULT_INVALID = -1
} ScopeResult;
struct Scope {

View File

@ -2738,7 +2738,7 @@ static int service_deserialize_exec_command(
STATE_EXEC_COMMAND_PATH,
STATE_EXEC_COMMAND_ARGS,
_STATE_EXEC_COMMAND_MAX,
_STATE_EXEC_COMMAND_INVALID = -EINVAL,
_STATE_EXEC_COMMAND_INVALID = -1,
} state;
assert(s);
@ -2762,14 +2762,14 @@ static int service_deserialize_exec_command(
case STATE_EXEC_COMMAND_TYPE:
id = service_exec_command_from_string(arg);
if (id < 0)
return id;
return -EINVAL;
state = STATE_EXEC_COMMAND_INDEX;
break;
case STATE_EXEC_COMMAND_INDEX:
r = safe_atou(arg, &idx);
if (r < 0)
return r;
return -EINVAL;
state = STATE_EXEC_COMMAND_PATH;
break;

View File

@ -20,7 +20,7 @@ typedef enum ServiceRestart {
SERVICE_RESTART_ON_ABORT,
SERVICE_RESTART_ALWAYS,
_SERVICE_RESTART_MAX,
_SERVICE_RESTART_INVALID = -EINVAL,
_SERVICE_RESTART_INVALID = -1
} ServiceRestart;
typedef enum ServiceType {
@ -32,7 +32,7 @@ typedef enum ServiceType {
SERVICE_IDLE, /* much like simple, but delay exec() until all jobs are dispatched. */
SERVICE_EXEC, /* we fork and wait until we execute exec() (this means our own setup is waited for) */
_SERVICE_TYPE_MAX,
_SERVICE_TYPE_INVALID = -EINVAL,
_SERVICE_TYPE_INVALID = -1
} ServiceType;
typedef enum ServiceExecCommand {
@ -44,7 +44,7 @@ typedef enum ServiceExecCommand {
SERVICE_EXEC_STOP,
SERVICE_EXEC_STOP_POST,
_SERVICE_EXEC_COMMAND_MAX,
_SERVICE_EXEC_COMMAND_INVALID = -EINVAL,
_SERVICE_EXEC_COMMAND_INVALID = -1
} ServiceExecCommand;
typedef enum NotifyState {
@ -53,7 +53,7 @@ typedef enum NotifyState {
NOTIFY_RELOADING,
NOTIFY_STOPPING,
_NOTIFY_STATE_MAX,
_NOTIFY_STATE_INVALID = -EINVAL,
_NOTIFY_STATE_INVALID = -1
} NotifyState;
/* The values of this enum are referenced in man/systemd.exec.xml and src/shared/bus-unit-util.c.
@ -71,7 +71,7 @@ typedef enum ServiceResult {
SERVICE_FAILURE_OOM_KILL,
SERVICE_SKIP_CONDITION,
_SERVICE_RESULT_MAX,
_SERVICE_RESULT_INVALID = -EINVAL,
_SERVICE_RESULT_INVALID = -1
} ServiceResult;
typedef enum ServiceTimeoutFailureMode {
@ -79,7 +79,7 @@ typedef enum ServiceTimeoutFailureMode {
SERVICE_TIMEOUT_ABORT,
SERVICE_TIMEOUT_KILL,
_SERVICE_TIMEOUT_FAILURE_MODE_MAX,
_SERVICE_TIMEOUT_FAILURE_MODE_INVALID = -EINVAL,
_SERVICE_TIMEOUT_FAILURE_MODE_INVALID = -1
} ServiceTimeoutFailureMode;
struct ServiceFDStore {

View File

@ -14,7 +14,7 @@ typedef enum ShowStatus {
SHOW_STATUS_TEMPORARY, /* enabled temporarily, may flip back to _AUTO */
SHOW_STATUS_YES, /* printing of status is enabled */
_SHOW_STATUS_MAX,
_SHOW_STATUS_INVALID = -EINVAL,
_SHOW_STATUS_INVALID = -1,
} ShowStatus;
typedef enum ShowStatusFlags {
@ -26,7 +26,7 @@ typedef enum StatusUnitFormat {
STATUS_UNIT_FORMAT_NAME,
STATUS_UNIT_FORMAT_DESCRIPTION,
_STATUS_UNIT_FORMAT_MAX,
_STATUS_UNIT_FORMAT_INVALID = -EINVAL,
_STATUS_UNIT_FORMAT_INVALID = -1,
} StatusUnitFormat;
static inline bool show_status_on(ShowStatus s) {

View File

@ -16,7 +16,7 @@ typedef enum SocketExecCommand {
SOCKET_EXEC_STOP_PRE,
SOCKET_EXEC_STOP_POST,
_SOCKET_EXEC_COMMAND_MAX,
_SOCKET_EXEC_COMMAND_INVALID = -EINVAL,
_SOCKET_EXEC_COMMAND_INVALID = -1
} SocketExecCommand;
typedef enum SocketType {
@ -26,7 +26,7 @@ typedef enum SocketType {
SOCKET_MQUEUE,
SOCKET_USB_FUNCTION,
_SOCKET_TYPE_MAX,
_SOCKET_TYPE_INVALID = -EINVAL,
_SOCKET_TYPE_INVALID = -1
} SocketType;
typedef enum SocketResult {
@ -40,7 +40,7 @@ typedef enum SocketResult {
SOCKET_FAILURE_TRIGGER_LIMIT_HIT,
SOCKET_FAILURE_SERVICE_START_LIMIT_HIT,
_SOCKET_RESULT_MAX,
_SOCKET_RESULT_INVALID = -EINVAL,
_SOCKET_RESULT_INVALID = -1
} SocketResult;
typedef struct SocketPort {
@ -63,7 +63,7 @@ typedef enum SocketTimestamping {
SOCKET_TIMESTAMPING_US, /* SO_TIMESTAMP */
SOCKET_TIMESTAMPING_NS, /* SO_TIMESTAMPNS */
_SOCKET_TIMESTAMPING_MAX,
_SOCKET_TIMESTAMPING_INVALID = -EINVAL,
_SOCKET_TIMESTAMPING_INVALID = -1,
} SocketTimestamping;
struct Socket {

View File

@ -14,7 +14,7 @@ typedef enum SwapExecCommand {
SWAP_EXEC_ACTIVATE,
SWAP_EXEC_DEACTIVATE,
_SWAP_EXEC_COMMAND_MAX,
_SWAP_EXEC_COMMAND_INVALID = -EINVAL,
_SWAP_EXEC_COMMAND_INVALID = -1
} SwapExecCommand;
typedef enum SwapResult {
@ -26,7 +26,7 @@ typedef enum SwapResult {
SWAP_FAILURE_CORE_DUMP,
SWAP_FAILURE_START_LIMIT_HIT,
_SWAP_RESULT_MAX,
_SWAP_RESULT_INVALID = -EINVAL,
_SWAP_RESULT_INVALID = -1
} SwapResult;
typedef struct SwapParameters {

View File

@ -14,7 +14,7 @@ typedef enum TimerBase {
TIMER_UNIT_INACTIVE,
TIMER_CALENDAR,
_TIMER_BASE_MAX,
_TIMER_BASE_INVALID = -EINVAL,
_TIMER_BASE_INVALID = -1
} TimerBase;
typedef struct TimerValue {
@ -33,7 +33,7 @@ typedef enum TimerResult {
TIMER_FAILURE_RESOURCES,
TIMER_FAILURE_START_LIMIT_HIT,
_TIMER_RESULT_MAX,
_TIMER_RESULT_INVALID = -EINVAL,
_TIMER_RESULT_INVALID = -1
} TimerResult;
struct Timer {

View File

@ -6094,7 +6094,7 @@ void unit_log_success(Unit *u) {
"MESSAGE_ID=" SD_MESSAGE_UNIT_SUCCESS_STR,
LOG_UNIT_ID(u),
LOG_UNIT_INVOCATION_ID(u),
LOG_UNIT_MESSAGE(u, "Deactivated successfully."));
LOG_UNIT_MESSAGE(u, "Succeeded."));
}
void unit_log_failure(Unit *u, const char *result) {

View File

@ -23,14 +23,14 @@ typedef enum KillOperation {
KILL_KILL,
KILL_WATCHDOG,
_KILL_OPERATION_MAX,
_KILL_OPERATION_INVALID = -EINVAL,
_KILL_OPERATION_INVALID = -1
} KillOperation;
typedef enum CollectMode {
COLLECT_INACTIVE,
COLLECT_INACTIVE_OR_FAILED,
_COLLECT_MODE_MAX,
_COLLECT_MODE_INVALID = -EINVAL,
_COLLECT_MODE_INVALID = -1,
} CollectMode;
static inline bool UNIT_IS_ACTIVE_OR_RELOADING(UnitActiveState t) {

View File

@ -124,7 +124,7 @@ typedef enum CoredumpStorage {
COREDUMP_STORAGE_EXTERNAL,
COREDUMP_STORAGE_JOURNAL,
_COREDUMP_STORAGE_MAX,
_COREDUMP_STORAGE_INVALID = -EINVAL,
_COREDUMP_STORAGE_INVALID = -1
} CoredumpStorage;
static const char* const coredump_storage_table[_COREDUMP_STORAGE_MAX] = {

View File

@ -16,7 +16,6 @@
#include "compress.h"
#include "def.h"
#include "fd-util.h"
#include "format-table.h"
#include "fs-util.h"
#include "glob-util.h"
#include "journal-internal.h"
@ -48,10 +47,9 @@ static const char *arg_debugger = NULL;
static char **arg_debugger_args = NULL;
static const char *arg_directory = NULL;
static char **arg_file = NULL;
static JsonFormatFlags arg_json_format_flags = JSON_FORMAT_OFF;
static PagerFlags arg_pager_flags = 0;
static int arg_legend = true;
static size_t arg_rows_max = SIZE_MAX;
static int arg_no_legend = false;
static int arg_one = false;
static const char* arg_output = NULL;
static bool arg_reverse = false;
static bool arg_quiet = false;
@ -157,23 +155,20 @@ static int help(void) {
if (r < 0)
return log_oom();
printf("%1$s [OPTIONS...] COMMAND ...\n\n"
"%5$sList or retrieve coredumps from the journal.%6$s\n"
"\n%3$sCommands:%4$s\n"
printf("%s [OPTIONS...] COMMAND ...\n\n"
"%sList or retrieve coredumps from the journal.%s\n"
"\nCommands:\n"
" list [MATCHES...] List available coredumps (default)\n"
" info [MATCHES...] Show detailed information about one or more coredumps\n"
" dump [MATCHES...] Print first matching coredump to stdout\n"
" debug [MATCHES...] Start a debugger for the first matching coredump\n"
"\n%3$sOptions:%4$s\n"
"\nOptions:\n"
" -h --help Show this help\n"
" --version Print version string\n"
" --no-pager Do not pipe output into a pager\n"
" --no-legend Do not print the column headers\n"
" --json=pretty|short|off\n"
" Generate JSON output\n"
" --debugger=DEBUGGER Use the given debugger\n"
" -A --debugger-arguments=ARGS Pass the given arguments to the debugger\n"
" -n INT Show maximum number of rows\n"
" -1 Show information about most recent entry only\n"
" -S --since=DATE Only print coredumps since the date\n"
" -U --until=DATE Only print coredumps until the date\n"
@ -183,13 +178,11 @@ static int help(void) {
" --file=PATH Use journal file\n"
" -D --directory=DIR Use journal files from directory\n\n"
" -q --quiet Do not show info messages and privilege warning\n"
"\nSee the %2$s for details.\n",
"\nSee the %s for details.\n",
program_invocation_short_name,
link,
ansi_underline(),
ansi_normal(),
ansi_highlight(),
ansi_normal());
ansi_normal(),
link);
return 0;
}
@ -199,7 +192,6 @@ static int parse_argv(int argc, char *argv[]) {
ARG_VERSION = 0x100,
ARG_NO_PAGER,
ARG_NO_LEGEND,
ARG_JSON,
ARG_DEBUGGER,
ARG_FILE,
};
@ -221,14 +213,13 @@ static int parse_argv(int argc, char *argv[]) {
{ "since", required_argument, NULL, 'S' },
{ "until", required_argument, NULL, 'U' },
{ "quiet", no_argument, NULL, 'q' },
{ "json", required_argument, NULL, ARG_JSON },
{}
};
assert(argc >= 0);
assert(argv);
while ((c = getopt_long(argc, argv, "hA:o:F:1D:rS:U:qn:", options, NULL)) >= 0)
while ((c = getopt_long(argc, argv, "hA:o:F:1D:rS:U:q", options, NULL)) >= 0)
switch(c) {
case 'h':
return help();
@ -241,7 +232,7 @@ static int parse_argv(int argc, char *argv[]) {
break;
case ARG_NO_LEGEND:
arg_legend = false;
arg_no_legend = true;
break;
case ARG_DEBUGGER:
@ -291,22 +282,9 @@ static int parse_argv(int argc, char *argv[]) {
break;
case '1':
arg_rows_max = 1;
arg_reverse = true;
arg_one = true;
break;
case 'n': {
unsigned n;
r = safe_atou(optarg, &n);
if (r < 0 || n < 1)
return log_error_errno(r < 0 ? r : SYNTHETIC_ERRNO(EINVAL),
"Invalid numeric parameter to -n: %s", optarg);
arg_rows_max = n;
break;
}
case 'D':
arg_directory = optarg;
break;
@ -319,13 +297,6 @@ static int parse_argv(int argc, char *argv[]) {
arg_quiet = true;
break;
case ARG_JSON:
r = json_parse_cmdline_parameter_and_warn(optarg, &arg_json_format_flags);
if (r <= 0)
return r;
break;
case '?':
return -EINVAL;
@ -405,78 +376,21 @@ static int print_field(FILE* file, sd_journal *j) {
continue; \
}
static void analyze_coredump_file(
const char *path,
const char **ret_state,
const char **ret_color,
uint64_t *ret_size) {
_cleanup_close_ int fd = -1;
struct stat st;
int r;
assert(path);
assert(ret_state);
assert(ret_color);
assert(ret_size);
fd = open(path, O_PATH|O_CLOEXEC);
if (fd < 0) {
if (errno == ENOENT) {
*ret_state = "missing";
*ret_color = ansi_grey();
*ret_size = UINT64_MAX;
return;
}
r = -errno;
} else
r = access_fd(fd, R_OK);
if (ERRNO_IS_PRIVILEGE(r)) {
*ret_state = "inaccessible";
*ret_color = ansi_highlight_yellow();
*ret_size = UINT64_MAX;
return;
}
if (r < 0)
goto error;
if (fstat(fd, &st) < 0)
goto error;
if (!S_ISREG(st.st_mode))
goto error;
*ret_state = "present";
*ret_color = NULL;
*ret_size = st.st_size;
return;
error:
*ret_state = "error";
*ret_color = ansi_highlight_red();
*ret_size = UINT64_MAX;
}
static int print_list(FILE* file, sd_journal *j, Table *t) {
static int print_list(FILE* file, sd_journal *j, int had_legend) {
_cleanup_free_ char
*mid = NULL, *pid = NULL, *uid = NULL, *gid = NULL,
*sgnl = NULL, *exe = NULL, *comm = NULL, *cmdline = NULL,
*filename = NULL, *truncated = NULL, *coredump = NULL;
const void *d;
size_t l;
usec_t ts;
int r, signal_as_int = 0;
const char *present = NULL, *color = NULL;
uint64_t size = UINT64_MAX;
usec_t t;
char buf[FORMAT_TIMESTAMP_MAX];
int r;
const char *present;
bool normal_coredump;
uid_t uid_as_int = UID_INVALID;
gid_t gid_as_int = GID_INVALID;
pid_t pid_as_int = 0;
assert(file);
assert(j);
assert(t);
SD_JOURNAL_FOREACH_DATA(j, d, l) {
RETRIEVE(d, l, "MESSAGE_ID", mid);
@ -492,46 +406,54 @@ static int print_list(FILE* file, sd_journal *j, Table *t) {
RETRIEVE(d, l, "COREDUMP", coredump);
}
if (!pid && !uid && !gid && !sgnl && !exe && !comm && !cmdline && !filename)
return log_warning_errno(SYNTHETIC_ERRNO(EINVAL), "Empty coredump log entry");
if (!pid && !uid && !gid && !sgnl && !exe && !comm && !cmdline && !filename) {
log_warning("Empty coredump log entry");
return -EINVAL;
}
(void) parse_uid(uid, &uid_as_int);
(void) parse_gid(gid, &gid_as_int);
(void) parse_pid(pid, &pid_as_int);
signal_as_int = signal_from_string(sgnl);
r = sd_journal_get_realtime_usec(j, &ts);
r = sd_journal_get_realtime_usec(j, &t);
if (r < 0)
return log_error_errno(r, "Failed to get realtime timestamp: %m");
format_timestamp(buf, sizeof(buf), t);
if (!had_legend && !arg_no_legend)
fprintf(file, "%-*s %*s %*s %*s %*s %-*s %s\n",
FORMAT_TIMESTAMP_WIDTH, "TIME",
6, "PID",
5, "UID",
5, "GID",
3, "SIG",
9, "COREFILE",
"EXE");
normal_coredump = streq_ptr(mid, SD_MESSAGE_COREDUMP_STR);
if (filename)
analyze_coredump_file(filename, &present, &color, &size);
if (access(filename, R_OK) == 0)
present = "present";
else if (errno == ENOENT)
present = "missing";
else
present = "error";
else if (coredump)
present = "journal";
else if (normal_coredump) {
else if (normal_coredump)
present = "none";
color = ansi_grey();
} else
present = NULL;
else
present = "-";
if (STRPTR_IN_SET(present, "present", "journal") && truncated && parse_boolean(truncated) > 0)
if (STR_IN_SET(present, "present", "journal") && truncated && parse_boolean(truncated) > 0)
present = "truncated";
r = table_add_many(
t,
TABLE_TIMESTAMP, ts,
TABLE_PID, pid_as_int,
TABLE_UID, uid_as_int,
TABLE_GID, gid_as_int,
TABLE_SIGNAL, normal_coredump ? signal_as_int : 0,
TABLE_STRING, present,
TABLE_SET_COLOR, color,
TABLE_STRING, exe ?: comm ?: cmdline,
TABLE_SIZE, size);
if (r < 0)
return table_log_add_error(r);
fprintf(file, "%-*s %*s %*s %*s %*s %-*s %s\n",
FORMAT_TIMESTAMP_WIDTH, buf,
6, strna(pid),
5, strna(uid),
5, strna(gid),
3, normal_coredump ? strna(sgnl) : "-",
9, present,
strna(exe ?: (comm ?: cmdline)));
return 0;
}
@ -690,27 +612,24 @@ static int print_info(FILE *file, sd_journal *j, bool need_space) {
fprintf(file, " Hostname: %s\n", hostname);
if (filename) {
const char *state = NULL, *color = NULL;
uint64_t size = UINT64_MAX;
char buf[FORMAT_BYTES_MAX];
bool inacc, trunc;
analyze_coredump_file(filename, &state, &color, &size);
inacc = access(filename, R_OK) < 0;
trunc = truncated && parse_boolean(truncated) > 0;
if (STRPTR_IN_SET(state, "present", "journal") && truncated && parse_boolean(truncated) > 0)
state = "truncated";
fprintf(file,
" Storage: %s%s (%s)%s\n",
strempty(color),
if (inacc || trunc)
fprintf(file, " Storage: %s%s (%s%s%s)%s\n",
ansi_highlight_red(),
filename,
state,
inacc ? "inaccessible" : "",
inacc && trunc ? ", " : "",
trunc ? "truncated" : "",
ansi_normal());
else
fprintf(file, " Storage: %s\n", filename);
}
if (size != UINT64_MAX)
fprintf(file,
" Disk Size: %s\n",
format_bytes(buf, sizeof(buf), size));
} else if (coredump)
else if (coredump)
fprintf(file, " Storage: journal\n");
else
fprintf(file, " Storage: none\n");
@ -740,61 +659,43 @@ static int focus(sd_journal *j) {
return r;
}
static int print_entry(
sd_journal *j,
size_t n_found,
Table *t) {
static int print_entry(sd_journal *j, unsigned n_found, bool verb_is_info) {
assert(j);
if (t)
return print_list(stdout, j, t);
if (verb_is_info)
return print_info(stdout, j, n_found);
else if (arg_field)
return print_field(stdout, j);
else
return print_info(stdout, j, n_found > 0);
return print_list(stdout, j, n_found);
}
static int dump_list(int argc, char **argv, void *userdata) {
_cleanup_(sd_journal_closep) sd_journal *j = NULL;
_cleanup_(table_unrefp) Table *t = NULL;
size_t n_found = 0;
unsigned n_found = 0;
bool verb_is_info;
int r;
verb_is_info = argc >= 1 && streq(argv[0], "info");
verb_is_info = (argc >= 1 && streq(argv[0], "info"));
r = acquire_journal(&j, argv + 1);
if (r < 0)
return r;
/* The coredumps are likely compressed, and for just listing them we don't need to decompress them,
* so let's pick a fairly low data threshold here */
(void) sd_journal_set_data_threshold(j, 4096);
if (!verb_is_info && !arg_field) {
t = table_new("time", "pid", "uid", "gid", "sig", "corefile", "exe", "size");
if (!t)
return log_oom();
(void) table_set_align_percent(t, TABLE_HEADER_CELL(1), 100);
(void) table_set_align_percent(t, TABLE_HEADER_CELL(2), 100);
(void) table_set_align_percent(t, TABLE_HEADER_CELL(3), 100);
(void) table_set_align_percent(t, TABLE_HEADER_CELL(7), 100);
(void) table_set_empty_string(t, "-");
} else
(void) pager_open(arg_pager_flags);
/* The coredumps are likely to compressed, and for just
* listing them we don't need to decompress them, so let's
* pick a fairly low data threshold here */
sd_journal_set_data_threshold(j, 4096);
/* "info" without pattern implies "-1" */
if ((arg_rows_max == 1 && arg_reverse) || (verb_is_info && argc == 1)) {
if (arg_one || (verb_is_info && argc == 1)) {
r = focus(j);
if (r < 0)
return r;
r = print_entry(j, 0, t);
if (r < 0)
return r;
return print_entry(j, 0, verb_is_info);
} else {
if (arg_since != USEC_INFINITY && !arg_reverse)
r = sd_journal_seek_realtime_usec(j, arg_since);
@ -812,8 +713,10 @@ static int dump_list(int argc, char **argv, void *userdata) {
r = sd_journal_next(j);
else
r = sd_journal_previous(j);
if (r < 0)
return log_error_errno(r, "Failed to iterate through journal: %m");
if (r == 0)
break;
@ -837,12 +740,9 @@ static int dump_list(int argc, char **argv, void *userdata) {
continue;
}
r = print_entry(j, n_found++, t);
r = print_entry(j, n_found++, verb_is_info);
if (r < 0)
return r;
if (arg_rows_max != SIZE_MAX && n_found >= arg_rows_max)
break;
}
if (!arg_field && n_found <= 0) {
@ -852,12 +752,6 @@ static int dump_list(int argc, char **argv, void *userdata) {
}
}
if (t) {
r = table_print_with_pager(t, arg_json_format_flags, arg_pager_flags, arg_legend);
if (r < 0)
return r;
}
return 0;
}

View File

@ -1,8 +1,6 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <errno.h>
typedef enum EnrollType {
ENROLL_PASSWORD,
ENROLL_RECOVERY,
@ -10,7 +8,7 @@ typedef enum EnrollType {
ENROLL_FIDO2,
ENROLL_TPM2,
_ENROLL_TYPE_MAX,
_ENROLL_TYPE_INVALID = -EINVAL,
_ENROLL_TYPE_INVALID = -1,
} EnrollType;
typedef enum WipeScope {
@ -18,7 +16,7 @@ typedef enum WipeScope {
WIPE_ALL, /* wipe all slots */
WIPE_EMPTY_PASSPHRASE, /* wipe slots with empty passphrases plus listed slots */
_WIPE_SCOPE_MAX,
_WIPE_SCOPE_INVALID = -EINVAL,
_WIPE_SCOPE_INVALID = -1,
} WipeScope;
const char* enroll_type_to_string(EnrollType t);

View File

@ -82,16 +82,17 @@ static int parse_argv(int argc, char *argv[]) {
case ARG_VERSION:
return version();
case ARG_SUFFIX: {
UnitType t = unit_type_from_string(optarg);
if (t < 0)
return log_error_errno(t, "Invalid unit suffix type \"%s\".", optarg);
case ARG_SUFFIX:
if (unit_type_from_string(optarg) < 0)
return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
"Invalid unit suffix type %s.", optarg);
arg_suffix = optarg;
break;
}
case ARG_TEMPLATE:
if (!unit_name_is_valid(optarg, UNIT_NAME_TEMPLATE))
return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
"Template name %s is not valid.", optarg);

View File

@ -888,7 +888,7 @@ static int parse_proc_cmdline_item(const char *key, const char *value, void *dat
if (value) {
m = volatile_mode_from_string(value);
if (m < 0)
log_warning_errno(m, "Failed to parse systemd.volatile= argument: %s", value);
log_warning("Failed to parse systemd.volatile= argument: %s", value);
else
arg_volatile_mode = m;
} else

View File

@ -2393,7 +2393,7 @@ static int parse_argv(int argc, char *argv[]) {
l = rlimit_from_string_harder(field);
if (l < 0)
return log_error_errno(l, "Unknown resource limit type: %s", field);
return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "Unknown resource limit type: %s", field);
if (isempty(eq + 1)) {
/* Remove only the specific rlimit */

View File

@ -37,7 +37,7 @@ typedef enum HomeState {
HOME_AUTHENTICATING_WHILE_ACTIVE,
HOME_AUTHENTICATING_FOR_ACQUIRE, /* authenticating because Acquire() was called */
_HOME_STATE_MAX,
_HOME_STATE_INVALID = -EINVAL,
_HOME_STATE_INVALID = -1
} HomeState;
static inline bool HOME_STATE_IS_ACTIVE(HomeState state) {

View File

@ -14,7 +14,7 @@ typedef enum OperationType {
OPERATION_DEACTIVATE_FORCE, /* enqueued on hard $HOME unplug */
OPERATION_IMMEDIATE, /* this is never enqueued, it's just a marker we immediately started executing an operation without enqueuing anything first. */
_OPERATION_MAX,
_OPERATION_INVALID = -EINVAL,
_OPERATION_INVALID = -1,
} OperationType;
/* Encapsulates an operation on one or more home directories. This has two uses:

View File

@ -14,7 +14,7 @@ typedef enum UserReconcileMode {
USER_RECONCILE_REQUIRE_NEWER, /* host version must be newer than embedded version */
USER_RECONCILE_REQUIRE_NEWER_OR_EQUAL, /* similar, but may also be equal */
_USER_RECONCILE_MODE_MAX,
_USER_RECONCILE_MODE_INVALID = -EINVAL,
_USER_RECONCILE_MODE_INVALID = -1,
} UserReconcileMode;
enum { /* return values */

View File

@ -59,7 +59,7 @@ enum {
PROP_OS_CPE_NAME,
PROP_OS_HOME_URL,
_PROP_MAX,
_PROP_INVALID = -EINVAL,
_PROP_INVALID = -1,
};
typedef struct Context {

View File

@ -17,7 +17,7 @@ typedef enum ImportCompressType {
IMPORT_COMPRESS_GZIP,
IMPORT_COMPRESS_BZIP2,
_IMPORT_COMPRESS_TYPE_MAX,
_IMPORT_COMPRESS_TYPE_INVALID = -EINVAL,
_IMPORT_COMPRESS_TYPE_INVALID = -1,
} ImportCompressType;
typedef struct ImportCompress {

View File

@ -46,7 +46,7 @@ typedef enum TransferType {
TRANSFER_PULL_TAR,
TRANSFER_PULL_RAW,
_TRANSFER_TYPE_MAX,
_TRANSFER_TYPE_INVALID = -EINVAL,
_TRANSFER_TYPE_INVALID = -1,
} TransferType;
struct Transfer {

View File

@ -33,7 +33,7 @@ typedef enum VerificationStyle {
VERIFICATION_PER_FILE, /* SuSE-style ".sha256" files with inline gpg signature */
VERIFICATION_PER_DIRECTORY, /* Ubuntu-style SHA256SUM files with detached SHA256SUM.gpg signatures */
_VERIFICATION_STYLE_MAX,
_VERIFICATION_STYLE_INVALID = -EINVAL,
_VERIFICATION_STYLE_INVALID = -1,
} VerificationStyle;
int verification_style_from_url(const char *url, VerificationStyle *style);

View File

@ -22,7 +22,7 @@ typedef enum PullJobState {
PULL_JOB_DONE,
PULL_JOB_FAILED,
_PULL_JOB_STATE_MAX,
_PULL_JOB_STATE_INVALID = -EINVAL,
_PULL_JOB_STATE_INVALID = -1,
} PullJobState;
#define PULL_JOB_IS_COMPLETE(j) (IN_SET((j)->state, PULL_JOB_DONE, PULL_JOB_FAILED))

View File

@ -961,14 +961,16 @@ static int parse_argv(int argc, char *argv[]) {
case ARG_SPLIT_MODE:
arg_split_mode = journal_write_split_mode_from_string(optarg);
if (arg_split_mode == _JOURNAL_WRITE_SPLIT_INVALID)
return log_error_errno(arg_split_mode, "Invalid split mode: %s", optarg);
return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
"Invalid split mode: %s", optarg);
break;
case ARG_COMPRESS:
if (optarg) {
r = parse_boolean(optarg);
if (r < 0)
return log_error_errno(r, "Failed to parse --compress= parameter.");
return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
"Failed to parse --compress= parameter.");
arg_compress = !!r;
} else

View File

@ -36,5 +36,5 @@ typedef enum JournalWriteSplitMode {
JOURNAL_WRITE_SPLIT_NONE,
JOURNAL_WRITE_SPLIT_HOST,
_JOURNAL_WRITE_SPLIT_MAX,
_JOURNAL_WRITE_SPLIT_INVALID = -EINVAL,
_JOURNAL_WRITE_SPLIT_INVALID = -1
} JournalWriteSplitMode;

View File

@ -413,7 +413,7 @@ static int setup_uploader(Uploader *u, const char *url, const char *state_file)
assert(url);
*u = (Uploader) {
.input = -1,
.input = -1
};
host = STARTSWITH_SET(url, "http://", "https://");

View File

@ -565,7 +565,7 @@ static int parse_argv(int argc, char *argv[]) {
arg_output = output_mode_from_string(optarg);
if (arg_output < 0)
return log_error_errno(arg_output, "Unknown output format '%s'.", optarg);
return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "Unknown output format '%s'.", optarg);
if (IN_SET(arg_output, OUTPUT_EXPORT, OUTPUT_JSON, OUTPUT_JSON_PRETTY, OUTPUT_JSON_SSE, OUTPUT_JSON_SEQ, OUTPUT_CAT))
arg_quiet = true;
@ -835,7 +835,7 @@ static int parse_argv(int argc, char *argv[]) {
to = log_level_from_string(dots + 2);
if (from < 0 || to < 0)
return log_error_errno(from < 0 ? from : to,
return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
"Failed to parse log level range %s", optarg);
arg_priorities = 0;
@ -853,7 +853,8 @@ static int parse_argv(int argc, char *argv[]) {
p = log_level_from_string(optarg);
if (p < 0)
return log_error_errno(p, "Unknown log level %s", optarg);
return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
"Unknown log level %s", optarg);
arg_priorities = 0;
@ -884,7 +885,8 @@ static int parse_argv(int argc, char *argv[]) {
num = log_facility_unshifted_from_string(fac);
if (num < 0)
return log_error_errno(num, "Bad --facility= argument \"%s\".", fac);
return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
"Bad --facility= argument \"%s\".", fac);
if (set_ensure_put(&arg_facilities, NULL, INT_TO_PTR(num)) < 0)
return log_oom();

View File

@ -368,7 +368,7 @@ static int client_context_read_log_level_max(
ll = log_level_from_string(value);
if (ll < 0)
return ll;
return -EINVAL;
c->log_level_max = ll;
return 0;

View File

@ -25,7 +25,7 @@ typedef enum Storage {
STORAGE_PERSISTENT,
STORAGE_NONE,
_STORAGE_MAX,
_STORAGE_INVALID = -EINVAL,
_STORAGE_INVALID = -1
} Storage;
typedef enum SplitMode {
@ -33,7 +33,7 @@ typedef enum SplitMode {
SPLIT_LOGIN, /* deprecated */
SPLIT_NONE,
_SPLIT_MAX,
_SPLIT_INVALID = -EINVAL,
_SPLIT_INVALID = -1
} SplitMode;
typedef struct JournalCompressOptions {

View File

@ -60,7 +60,7 @@ typedef enum LineBreak {
LINE_BREAK_EOF,
LINE_BREAK_PID_CHANGE,
_LINE_BREAK_MAX,
_LINE_BREAK_INVALID = -EINVAL,
_LINE_BREAK_INVALID = -1,
} LineBreak;
struct StdoutStream {

View File

@ -46,7 +46,7 @@ typedef enum IPv4ACDState {
IPV4ACD_STATE_ANNOUNCING,
IPV4ACD_STATE_RUNNING,
_IPV4ACD_STATE_MAX,
_IPV4ACD_STATE_INVALID = -EINVAL,
_IPV4ACD_STATE_INVALID = -1
} IPv4ACDState;
struct sd_ipv4acd {

View File

@ -122,22 +122,22 @@ typedef enum BusSlotType {
BUS_NODE_ENUMERATOR,
BUS_NODE_VTABLE,
BUS_NODE_OBJECT_MANAGER,
_BUS_SLOT_INVALID = -EINVAL,
_BUS_SLOT_INVALID = -1,
} BusSlotType;
struct sd_bus_slot {
unsigned n_ref;
BusSlotType type:8;
BusSlotType type:5;
/* Slots can be "floating" or not. If they are not floating (the usual case) then they reference the
* bus object they are associated with. This means the bus object stays allocated at least as long as
* there is a slot around associated with it. If it is floating, then the slot's lifecycle is bound
* to the lifecycle of the bus: it will be disconnected from the bus when the bus is destroyed, and
* it keeping the slot reffed hence won't mean the bus stays reffed too. Internally this means the
* reference direction is reversed: floating slots objects are referenced by the bus object, and not
* vice versa. */
bool floating;
bool match_added;
/* Slots can be "floating" or not. If they are not floating (the usual case) then they reference the bus object
* they are associated with. This means the bus object stays allocated at least as long as there is a slot
* around associated with it. If it is floating, then the slot's lifecycle is bound to the lifecycle of the
* bus: it will be disconnected from the bus when the bus is destroyed, and it keeping the slot reffed hence
* won't mean the bus stays reffed too. Internally this means the reference direction is reversed: floating
* slots objects are referenced by the bus object, and not vice versa. */
bool floating:1;
bool match_added:1;
sd_bus *bus;
void *userdata;

View File

@ -27,7 +27,7 @@ enum bus_match_node_type {
BUS_MATCH_ARG_HAS,
BUS_MATCH_ARG_HAS_LAST = BUS_MATCH_ARG_HAS + 63,
_BUS_MATCH_NODE_TYPE_MAX,
_BUS_MATCH_NODE_TYPE_INVALID = -EINVAL,
_BUS_MATCH_NODE_TYPE_INVALID = -1
};
struct bus_match_node {

View File

@ -15,7 +15,7 @@ static void test_error(void) {
const sd_bus_error temporarily_const_error = {
.name = SD_BUS_ERROR_ACCESS_DENIED,
.message = "oh! no",
._need_free = -1,
._need_free = -1
};
assert_se(!sd_bus_error_is_set(&error));

View File

@ -21,7 +21,7 @@ typedef enum DeviceEnumerationType {
DEVICE_ENUMERATION_TYPE_DEVICES,
DEVICE_ENUMERATION_TYPE_SUBSYSTEMS,
_DEVICE_ENUMERATION_TYPE_MAX,
_DEVICE_ENUMERATION_TYPE_INVALID = -EINVAL,
_DEVICE_ENUMERATION_TYPE_INVALID = -1,
} DeviceEnumerationType;
struct sd_device_enumerator {

View File

@ -1,8 +1,6 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <errno.h>
#include "sd-device.h"
typedef enum MonitorNetlinkGroup {
@ -10,7 +8,7 @@ typedef enum MonitorNetlinkGroup {
MONITOR_GROUP_KERNEL,
MONITOR_GROUP_UDEV,
_MONITOR_NETLINK_GROUP_MAX,
_MONITOR_NETLINK_GROUP_INVALID = -EINVAL,
_MONITOR_NETLINK_GROUP_INVALID = -1,
} MonitorNetlinkGroup;
int device_monitor_new_full(sd_device_monitor **ret, MonitorNetlinkGroup group, int fd);

View File

@ -204,7 +204,7 @@ static int device_set_action(sd_device *device, const char *action) {
a = device_action_from_string(action);
if (a < 0)
return a;
return -EINVAL;
r = device_add_property_internal(device, "ACTION", action);
if (r < 0)

View File

@ -20,7 +20,7 @@ typedef enum DeviceAction {
DEVICE_ACTION_BIND,
DEVICE_ACTION_UNBIND,
_DEVICE_ACTION_MAX,
_DEVICE_ACTION_INVALID = -EINVAL,
_DEVICE_ACTION_INVALID = -1,
} DeviceAction;
int device_new_from_nulstr(sd_device **ret, uint8_t *nulstr, size_t len);

View File

@ -28,7 +28,7 @@ typedef enum EventSourceType {
SOURCE_WATCHDOG,
SOURCE_INOTIFY,
_SOURCE_EVENT_SOURCE_TYPE_MAX,
_SOURCE_EVENT_SOURCE_TYPE_INVALID = -EINVAL,
_SOURCE_EVENT_SOURCE_TYPE_INVALID = -1
} EventSourceType;
/* All objects we use in epoll events start with this value, so that
@ -40,7 +40,7 @@ typedef enum WakeupType {
WAKEUP_SIGNAL_DATA,
WAKEUP_INOTIFY_DATA,
_WAKEUP_TYPE_MAX,
_WAKEUP_TYPE_INVALID = -EINVAL,
_WAKEUP_TYPE_INVALID = -1,
} WakeupType;
struct inode_data;
@ -56,7 +56,7 @@ struct sd_event_source {
char *description;
EventSourceType type;
EventSourceType type:5;
signed int enabled:3;
bool pending:1;
bool dispatching:1;

View File

@ -33,17 +33,17 @@ struct match_callback {
typedef enum NetlinkSlotType {
NETLINK_REPLY_CALLBACK,
NETLINK_MATCH_CALLBACK,
_NETLINK_SLOT_INVALID = -EINVAL,
_NETLINK_SLOT_INVALID = -1,
} NetlinkSlotType;
struct sd_netlink_slot {
unsigned n_ref;
NetlinkSlotType type:8;
bool floating;
sd_netlink *netlink;
void *userdata;
sd_netlink_destroy_t destroy_callback;
NetlinkSlotType type:2;
bool floating:1;
char *description;
LIST_FIELDS(sd_netlink_slot, slots);

View File

@ -93,7 +93,7 @@ typedef enum NLUnionLinkInfoData {
NL_UNION_LINK_INFO_DATA_IFB,
NL_UNION_LINK_INFO_DATA_BAREUDP,
_NL_UNION_LINK_INFO_DATA_MAX,
_NL_UNION_LINK_INFO_DATA_INVALID = -EINVAL,
_NL_UNION_LINK_INFO_DATA_INVALID = -1
} NLUnionLinkInfoData;
const char *nl_union_link_info_data_to_string(NLUnionLinkInfoData p) _const_;
@ -115,7 +115,7 @@ typedef enum NLUnionTCAOptionData {
NL_UNION_TCA_OPTION_DATA_SFB,
NL_UNION_TCA_OPTION_DATA_TBF,
_NL_UNION_TCA_OPTION_DATA_MAX,
_NL_UNION_TCA_OPTION_DATA_INVALID = -EINVAL,
_NL_UNION_TCA_OPTION_DATA_INVALID = -1,
} NLUnionTCAOptionData;
const char *nl_union_tca_option_data_to_string(NLUnionTCAOptionData p) _const_;
@ -131,7 +131,7 @@ typedef enum NLUnionNFTExprData {
NL_UNION_NFT_EXPR_DATA_META,
NL_UNION_NFT_EXPR_DATA_NAT,
_NL_UNION_NFT_EXPR_DATA_MAX,
_NL_UNION_NFT_EXPR_DATA_INVALID = -EINVAL,
_NL_UNION_NFT_EXPR_DATA_INVALID = -1,
} NLUnionNFTExprData;
const char *nl_union_nft_expr_data_to_string(NLUnionNFTExprData p) _const_;

View File

@ -22,7 +22,7 @@ typedef enum LinkOperationalState {
LINK_OPERSTATE_ENSLAVED,
LINK_OPERSTATE_ROUTABLE,
_LINK_OPERSTATE_MAX,
_LINK_OPERSTATE_INVALID = -EINVAL,
_LINK_OPERSTATE_INVALID = -1
} LinkOperationalState;
typedef enum LinkCarrierState {
@ -33,7 +33,7 @@ typedef enum LinkCarrierState {
LINK_CARRIER_STATE_CARRIER = LINK_OPERSTATE_CARRIER,
LINK_CARRIER_STATE_ENSLAVED = LINK_OPERSTATE_ENSLAVED,
_LINK_CARRIER_STATE_MAX,
_LINK_CARRIER_STATE_INVALID = -EINVAL,
_LINK_CARRIER_STATE_INVALID = -1
} LinkCarrierState;
typedef enum LinkAddressState {
@ -41,7 +41,7 @@ typedef enum LinkAddressState {
LINK_ADDRESS_STATE_DEGRADED,
LINK_ADDRESS_STATE_ROUTABLE,
_LINK_ADDRESS_STATE_MAX,
_LINK_ADDRESS_STATE_INVALID = -EINVAL,
_LINK_ADDRESS_STATE_INVALID = -1
} LinkAddressState;
const char* link_operstate_to_string(LinkOperationalState s) _const_;

View File

@ -1371,7 +1371,8 @@ static int parse_argv(int argc, char *argv[]) {
arg_output = output_mode_from_string(optarg);
if (arg_output < 0)
return log_error_errno(arg_output, "Unknown output '%s'.", optarg);
return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
"Unknown output '%s'.", optarg);
if (OUTPUT_MODE_IS_JSON(arg_output))
arg_legend = false;
@ -1402,7 +1403,8 @@ static int parse_argv(int argc, char *argv[]) {
arg_signal = signal_from_string(optarg);
if (arg_signal < 0)
return log_error_errno(arg_signal, "Failed to parse signal string %s.", optarg);
return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
"Failed to parse signal string %s.", optarg);
break;
case 'H':

View File

@ -15,7 +15,7 @@ typedef enum HandleAction {
HANDLE_SUSPEND_THEN_HIBERNATE,
HANDLE_LOCK,
_HANDLE_ACTION_MAX,
_HANDLE_ACTION_INVALID = -EINVAL,
_HANDLE_ACTION_INVALID = -1
} HandleAction;
#include "logind-inhibit.h"

View File

@ -13,14 +13,14 @@ typedef enum InhibitWhat {
INHIBIT_HANDLE_LID_SWITCH = 1 << 6,
INHIBIT_HANDLE_REBOOT_KEY = 1 << 7,
_INHIBIT_WHAT_MAX = 1 << 8,
_INHIBIT_WHAT_INVALID = -EINVAL,
_INHIBIT_WHAT_INVALID = -1
} InhibitWhat;
typedef enum InhibitMode {
INHIBIT_BLOCK,
INHIBIT_DELAY,
_INHIBIT_MODE_MAX,
_INHIBIT_MODE_INVALID = -EINVAL,
_INHIBIT_MODE_INVALID = -1
} InhibitMode;
#include "logind.h"

View File

@ -15,7 +15,7 @@ typedef enum SessionState {
SESSION_ACTIVE, /* Logged in and in the fg */
SESSION_CLOSING, /* Logged out, but scope is still there */
_SESSION_STATE_MAX,
_SESSION_STATE_INVALID = -EINVAL,
_SESSION_STATE_INVALID = -1
} SessionState;
typedef enum SessionClass {
@ -24,7 +24,7 @@ typedef enum SessionClass {
SESSION_LOCK_SCREEN,
SESSION_BACKGROUND,
_SESSION_CLASS_MAX,
_SESSION_CLASS_INVALID = -EINVAL,
_SESSION_CLASS_INVALID = -1
} SessionClass;
typedef enum SessionType {
@ -35,7 +35,7 @@ typedef enum SessionType {
SESSION_MIR,
SESSION_WEB,
_SESSION_TYPE_MAX,
_SESSION_TYPE_INVALID = -EINVAL,
_SESSION_TYPE_INVALID = -1
} SessionType;
#define SESSION_TYPE_IS_GRAPHICAL(type) IN_SET(type, SESSION_X11, SESSION_WAYLAND, SESSION_MIR)
@ -44,7 +44,7 @@ enum KillWho {
KILL_LEADER,
KILL_ALL,
_KILL_WHO_MAX,
_KILL_WHO_INVALID = -EINVAL,
_KILL_WHO_INVALID = -1
};
typedef enum TTYValidity {
@ -52,7 +52,7 @@ typedef enum TTYValidity {
TTY_FROM_UTMP,
TTY_UTMP_INCONSISTENT, /* may happen on ssh sessions with multiplexed TTYs */
_TTY_VALIDITY_MAX,
_TTY_VALIDITY_INVALID = -EINVAL,
_TTY_VALIDITY_INVALID = -1,
} TTYValidity;
struct Session {

View File

@ -16,7 +16,7 @@ typedef enum UserState {
USER_ACTIVE, /* User logged in and has a session in the fg */
USER_CLOSING, /* User logged out, but processes still remain and lingering is not enabled */
_USER_STATE_MAX,
_USER_STATE_INVALID = -EINVAL,
_USER_STATE_INVALID = -1
} UserState;
struct User {

View File

@ -14,7 +14,7 @@ typedef enum MachineState {
MACHINE_RUNNING, /* Machine is running */
MACHINE_CLOSING, /* Machine is terminating */
_MACHINE_STATE_MAX,
_MACHINE_STATE_INVALID = -EINVAL,
_MACHINE_STATE_INVALID = -1
} MachineState;
typedef enum MachineClass {
@ -22,14 +22,14 @@ typedef enum MachineClass {
MACHINE_VM,
MACHINE_HOST,
_MACHINE_CLASS_MAX,
_MACHINE_CLASS_INVALID = -EINVAL,
_MACHINE_CLASS_INVALID = -1
} MachineClass;
enum KillWho {
KILL_LEADER,
KILL_ALL,
_KILL_WHO_MAX,
_KILL_WHO_INVALID = -EINVAL,
_KILL_WHO_INVALID = -1
};
struct Machine {

View File

@ -2693,10 +2693,10 @@ static int parse_argv(int argc, char *argv[]) {
return 0;
}
r = output_mode_from_string(optarg);
if (r < 0)
return log_error_errno(r, "Unknown output '%s'.", optarg);
arg_output = r;
arg_output = output_mode_from_string(optarg);
if (arg_output < 0)
return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
"Unknown output '%s'.", optarg);
if (OUTPUT_MODE_IS_JSON(arg_output))
arg_legend = false;
@ -2720,10 +2720,10 @@ static int parse_argv(int argc, char *argv[]) {
return 0;
}
r = signal_from_string(optarg);
if (r < 0)
return log_error_errno(r, "Failed to parse signal string %s.", optarg);
arg_signal = r;
arg_signal = signal_from_string(optarg);
if (arg_signal < 0)
return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
"Failed to parse signal string %s.", optarg);
break;
case ARG_NO_ASK_PASSWORD:
@ -2758,10 +2758,10 @@ static int parse_argv(int argc, char *argv[]) {
return 0;
}
r = import_verify_from_string(optarg);
if (r < 0)
return log_error_errno(r, "Failed to parse --verify= setting: %s", optarg);
arg_verify = r;
arg_verify = import_verify_from_string(optarg);
if (arg_verify < 0)
return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
"Failed to parse --verify= setting: %s", optarg);
break;
case ARG_FORCE:

View File

@ -313,7 +313,7 @@ static int network_set_dhcp_type(Context *context, const char *ifname, const cha
t = dracut_dhcp_type_from_string(dhcp_type);
if (t < 0)
return t;
return -EINVAL;
network = network_get(context, ifname);
if (!network) {

View File

@ -19,7 +19,7 @@ typedef enum DHCPType {
DHCP_TYPE_EITHER6,
DHCP_TYPE_IBFT,
_DHCP_TYPE_MAX,
_DHCP_TYPE_INVALID = -EINVAL,
_DHCP_TYPE_INVALID = -1,
} DHCPType;
typedef struct Address Address;

View File

@ -15,7 +15,7 @@ typedef enum BareUDPProtocol {
BARE_UDP_PROTOCOL_MPLS_UC = ETH_P_MPLS_UC,
BARE_UDP_PROTOCOL_MPLS_MC = ETH_P_MPLS_MC,
_BARE_UDP_PROTOCOL_MAX,
_BARE_UDP_PROTOCOL_INVALID = -EINVAL,
_BARE_UDP_PROTOCOL_INVALID = -1
} BareUDPProtocol;
struct BareUDP {

View File

@ -35,7 +35,7 @@ typedef enum MulticastRouter {
MULTICAST_ROUTER_PERMANENT = MDB_RTR_TYPE_PERM,
MULTICAST_ROUTER_TEMPORARY = MDB_RTR_TYPE_TEMP,
_MULTICAST_ROUTER_MAX,
_MULTICAST_ROUTER_INVALID = -EINVAL,
_MULTICAST_ROUTER_INVALID = -1,
} MulticastRouter;
DEFINE_NETDEV_CAST(BRIDGE, Bridge);

View File

@ -12,7 +12,7 @@ typedef enum FooOverUDPEncapType {
NETDEV_FOO_OVER_UDP_ENCAP_DIRECT = FOU_ENCAP_DIRECT,
NETDEV_FOO_OVER_UDP_ENCAP_GUE = FOU_ENCAP_GUE,
_NETDEV_FOO_OVER_UDP_ENCAP_MAX,
_NETDEV_FOO_OVER_UDP_ENCAP_INVALID = -EINVAL,
_NETDEV_FOO_OVER_UDP_ENCAP_INVALID = -1,
} FooOverUDPEncapType;
typedef struct FouTunnel {

View File

@ -14,7 +14,7 @@ typedef enum GeneveDF {
NETDEV_GENEVE_DF_YES = GENEVE_DF_SET,
NETDEV_GENEVE_DF_INHERIT = GENEVE_DF_INHERIT,
_NETDEV_GENEVE_DF_MAX,
_NETDEV_GENEVE_DF_INVALID = -EINVAL,
_NETDEV_GENEVE_DF_INVALID = -1
} GeneveDF;
struct Geneve {

View File

@ -12,14 +12,14 @@ typedef enum L2tpL2specType {
NETDEV_L2TP_L2SPECTYPE_NONE = L2TP_L2SPECTYPE_NONE,
NETDEV_L2TP_L2SPECTYPE_DEFAULT = L2TP_L2SPECTYPE_DEFAULT,
_NETDEV_L2TP_L2SPECTYPE_MAX,
_NETDEV_L2TP_L2SPECTYPE_INVALID = -EINVAL,
_NETDEV_L2TP_L2SPECTYPE_INVALID = -1,
} L2tpL2specType;
typedef enum L2tpEncapType {
NETDEV_L2TP_ENCAPTYPE_UDP = L2TP_ENCAPTYPE_UDP,
NETDEV_L2TP_ENCAPTYPE_IP = L2TP_ENCAPTYPE_IP,
_NETDEV_L2TP_ENCAPTYPE_MAX,
_NETDEV_L2TP_ENCAPTYPE_INVALID = -EINVAL,
_NETDEV_L2TP_ENCAPTYPE_INVALID = -1,
} L2tpEncapType;
typedef enum L2tpLocalAddressType {
@ -27,7 +27,7 @@ typedef enum L2tpLocalAddressType {
NETDEV_L2TP_LOCAL_ADDRESS_STATIC,
NETDEV_L2TP_LOCAL_ADDRESS_DYNAMIC,
_NETDEV_L2TP_LOCAL_ADDRESS_MAX,
_NETDEV_L2TP_LOCAL_ADDRESS_INVALID = -EINVAL,
_NETDEV_L2TP_LOCAL_ADDRESS_INVALID = -1,
} L2tpLocalAddressType;
typedef struct L2tpTunnel L2tpTunnel;

View File

@ -85,7 +85,7 @@ typedef enum NetDevKind {
NETDEV_KIND_BAREUDP,
_NETDEV_KIND_MAX,
_NETDEV_KIND_TUNNEL, /* Used by config_parse_stacked_netdev() */
_NETDEV_KIND_INVALID = -EINVAL,
_NETDEV_KIND_INVALID = -1
} NetDevKind;
typedef enum NetDevState {
@ -95,7 +95,7 @@ typedef enum NetDevState {
NETDEV_STATE_READY,
NETDEV_STATE_LINGER,
_NETDEV_STATE_MAX,
_NETDEV_STATE_INVALID = -EINVAL,
_NETDEV_STATE_INVALID = -1,
} NetDevState;
typedef enum NetDevCreateType {
@ -104,7 +104,7 @@ typedef enum NetDevCreateType {
NETDEV_CREATE_STACKED,
NETDEV_CREATE_AFTER_CONFIGURED,
_NETDEV_CREATE_MAX,
_NETDEV_CREATE_INVALID = -EINVAL,
_NETDEV_CREATE_INVALID = -1,
} NetDevCreateType;
typedef struct Manager Manager;

View File

@ -12,13 +12,13 @@ typedef enum Ip6TnlMode {
NETDEV_IP6_TNL_MODE_IPIP6,
NETDEV_IP6_TNL_MODE_ANYIP6,
_NETDEV_IP6_TNL_MODE_MAX,
_NETDEV_IP6_TNL_MODE_INVALID = -EINVAL,
_NETDEV_IP6_TNL_MODE_INVALID = -1,
} Ip6TnlMode;
typedef enum IPv6FlowLabel {
NETDEV_IPV6_FLOWLABEL_INHERIT = 0xFFFFF + 1,
_NETDEV_IPV6_FLOWLABEL_MAX,
_NETDEV_IPV6_FLOWLABEL_INVALID = -EINVAL,
_NETDEV_IPV6_FLOWLABEL_INVALID = -1,
} IPv6FlowLabel;
typedef struct Tunnel {

View File

@ -16,7 +16,7 @@ typedef enum VxLanDF {
NETDEV_VXLAN_DF_YES = VXLAN_DF_SET,
NETDEV_VXLAN_DF_INHERIT = VXLAN_DF_INHERIT,
_NETDEV_VXLAN_DF_MAX,
_NETDEV_VXLAN_DF_INVALID = -EINVAL,
_NETDEV_VXLAN_DF_INVALID = -1
} VxLanDF;
struct VxLan {

View File

@ -1754,6 +1754,7 @@ int config_parse_duplicate_address_detection(
Network *network = userdata;
_cleanup_(address_free_or_set_invalidp) Address *n = NULL;
AddressFamily a;
int r;
assert(filename);
@ -1782,14 +1783,14 @@ int config_parse_duplicate_address_detection(
return 0;
}
AddressFamily a = duplicate_address_detection_address_family_from_string(rvalue);
a = duplicate_address_detection_address_family_from_string(rvalue);
if (a < 0) {
log_syntax(unit, LOG_WARNING, filename, line, a,
log_syntax(unit, LOG_WARNING, filename, line, SYNTHETIC_ERRNO(EINVAL),
"Failed to parse %s=, ignoring: %s", lvalue, rvalue);
return 0;
}
n->duplicate_address_detection = a;
n->duplicate_address_detection = a;
TAKE_PTR(n);
return 0;
}

Some files were not shown because too many files have changed in this diff Show More