mirror of
https://github.com/systemd/systemd
synced 2024-07-21 18:24:38 +00:00
![Yu Watanabe](/assets/img/avatar_default.png)
Then, try to drop multiple protocol specifiers at the end. Strictly speaking, this breaks backward compatibility: if eth0 and eth0.42 exists, then previously, echo 'nameserver 192.168.0.1' | resolvconf -a eth0.42 adds the DNS server to eth0 instead of eth0.42, as we unconditionally dropped the specifier after the last dot, and echo 'nameserver 192.168.0.1' | resolvconf -a eth0.42.dhcp adds the DNS server to eth0.42. However, with this commit, now the both commands add the DNS server to eth0.42. But, hopefully, this should be preferable behavior. Fixes #25032.
36 lines
942 B
C
36 lines
942 B
C
/* SPDX-License-Identifier: LGPL-2.1-or-later */
|
|
#pragma once
|
|
|
|
#include <in-addr-util.h>
|
|
#include <stdbool.h>
|
|
#include <sys/types.h>
|
|
|
|
typedef enum ExecutionMode {
|
|
MODE_RESOLVE_HOST,
|
|
MODE_RESOLVE_RECORD,
|
|
MODE_RESOLVE_SERVICE,
|
|
MODE_RESOLVE_OPENPGP,
|
|
MODE_RESOLVE_TLSA,
|
|
MODE_STATISTICS,
|
|
MODE_RESET_STATISTICS,
|
|
MODE_FLUSH_CACHES,
|
|
MODE_RESET_SERVER_FEATURES,
|
|
MODE_STATUS,
|
|
MODE_SET_LINK,
|
|
MODE_REVERT_LINK,
|
|
_MODE_INVALID = -EINVAL,
|
|
} ExecutionMode;
|
|
|
|
extern ExecutionMode arg_mode;
|
|
extern char **arg_set_dns;
|
|
extern char **arg_set_domain;
|
|
extern bool arg_ifindex_permissive;
|
|
|
|
int ifname_mangle_full(const char *s, bool drop_protocol_specifier);
|
|
static inline int ifname_mangle(const char *s) {
|
|
return ifname_mangle_full(s, false);
|
|
}
|
|
static inline int ifname_resolvconf_mangle(const char *s) {
|
|
return ifname_mangle_full(s, true);
|
|
}
|