mirror of
https://github.com/systemd/systemd.git
synced 2025-03-09 12:58:26 +03:00
Merge pull request #24805 from yuwata/sd-network
sd-network: several cleanups
This commit is contained in:
commit
dd51b0f952
@ -25,40 +25,37 @@ static int network_get_string(const char *field, char **ret) {
|
||||
assert_return(ret, -EINVAL);
|
||||
|
||||
r = parse_env_file(NULL, "/run/systemd/netif/state", field, &s);
|
||||
if (r == -ENOENT)
|
||||
return -ENODATA;
|
||||
if (r < 0)
|
||||
return r;
|
||||
if (isempty(s))
|
||||
return -ENODATA;
|
||||
|
||||
*ret = TAKE_PTR(s);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int sd_network_get_operational_state(char **state) {
|
||||
return network_get_string("OPER_STATE", state);
|
||||
int sd_network_get_operational_state(char **ret) {
|
||||
return network_get_string("OPER_STATE", ret);
|
||||
}
|
||||
|
||||
int sd_network_get_carrier_state(char **state) {
|
||||
return network_get_string("CARRIER_STATE", state);
|
||||
int sd_network_get_carrier_state(char **ret) {
|
||||
return network_get_string("CARRIER_STATE", ret);
|
||||
}
|
||||
|
||||
int sd_network_get_address_state(char **state) {
|
||||
return network_get_string("ADDRESS_STATE", state);
|
||||
int sd_network_get_address_state(char **ret) {
|
||||
return network_get_string("ADDRESS_STATE", ret);
|
||||
}
|
||||
|
||||
int sd_network_get_ipv4_address_state(char **state) {
|
||||
return network_get_string("IPV4_ADDRESS_STATE", state);
|
||||
int sd_network_get_ipv4_address_state(char **ret) {
|
||||
return network_get_string("IPV4_ADDRESS_STATE", ret);
|
||||
}
|
||||
|
||||
int sd_network_get_ipv6_address_state(char **state) {
|
||||
return network_get_string("IPV6_ADDRESS_STATE", state);
|
||||
int sd_network_get_ipv6_address_state(char **ret) {
|
||||
return network_get_string("IPV6_ADDRESS_STATE", ret);
|
||||
}
|
||||
|
||||
int sd_network_get_online_state(char **state) {
|
||||
return network_get_string("ONLINE_STATE", state);
|
||||
int sd_network_get_online_state(char **ret) {
|
||||
return network_get_string("ONLINE_STATE", ret);
|
||||
}
|
||||
|
||||
static int network_get_strv(const char *key, char ***ret) {
|
||||
@ -69,16 +66,12 @@ static int network_get_strv(const char *key, char ***ret) {
|
||||
assert_return(ret, -EINVAL);
|
||||
|
||||
r = parse_env_file(NULL, "/run/systemd/netif/state", key, &s);
|
||||
if (r == -ENOENT)
|
||||
return -ENODATA;
|
||||
if (r < 0)
|
||||
return r;
|
||||
if (isempty(s)) {
|
||||
*ret = NULL;
|
||||
return 0;
|
||||
}
|
||||
if (isempty(s))
|
||||
return -ENODATA;
|
||||
|
||||
a = strv_split(s, " ");
|
||||
a = strv_split(s, NULL);
|
||||
if (!a)
|
||||
return -ENOMEM;
|
||||
|
||||
@ -86,7 +79,6 @@ static int network_get_strv(const char *key, char ***ret) {
|
||||
r = (int) strv_length(a);
|
||||
|
||||
*ret = TAKE_PTR(a);
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
@ -117,20 +109,27 @@ static int network_link_get_string(int ifindex, const char *field, char **ret) {
|
||||
xsprintf(path, "/run/systemd/netif/links/%i", ifindex);
|
||||
|
||||
r = parse_env_file(NULL, path, field, &s);
|
||||
if (r == -ENOENT)
|
||||
return -ENODATA;
|
||||
if (r < 0)
|
||||
return r;
|
||||
if (isempty(s))
|
||||
return -ENODATA;
|
||||
|
||||
*ret = TAKE_PTR(s);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int network_link_get_boolean(int ifindex, const char *key) {
|
||||
_cleanup_free_ char *s = NULL;
|
||||
int r;
|
||||
|
||||
r = network_link_get_string(ifindex, key, &s);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
return parse_boolean(s);
|
||||
}
|
||||
|
||||
static int network_link_get_strv(int ifindex, const char *key, char ***ret) {
|
||||
char path[STRLEN("/run/systemd/netif/links/") + DECIMAL_STR_MAX(ifindex)];
|
||||
_cleanup_strv_free_ char **a = NULL;
|
||||
_cleanup_free_ char *s = NULL;
|
||||
int r;
|
||||
@ -138,18 +137,11 @@ static int network_link_get_strv(int ifindex, const char *key, char ***ret) {
|
||||
assert_return(ifindex > 0, -EINVAL);
|
||||
assert_return(ret, -EINVAL);
|
||||
|
||||
xsprintf(path, "/run/systemd/netif/links/%i", ifindex);
|
||||
r = parse_env_file(NULL, path, key, &s);
|
||||
if (r == -ENOENT)
|
||||
return -ENODATA;
|
||||
r = network_link_get_string(ifindex, key, &s);
|
||||
if (r < 0)
|
||||
return r;
|
||||
if (isempty(s)) {
|
||||
*ret = NULL;
|
||||
return 0;
|
||||
}
|
||||
|
||||
a = strv_split(s, " ");
|
||||
a = strv_split(s, NULL);
|
||||
if (!a)
|
||||
return -ENOMEM;
|
||||
|
||||
@ -157,145 +149,83 @@ static int network_link_get_strv(int ifindex, const char *key, char ***ret) {
|
||||
r = (int) strv_length(a);
|
||||
|
||||
*ret = TAKE_PTR(a);
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
int sd_network_link_get_setup_state(int ifindex, char **state) {
|
||||
return network_link_get_string(ifindex, "ADMIN_STATE", state);
|
||||
int sd_network_link_get_setup_state(int ifindex, char **ret) {
|
||||
return network_link_get_string(ifindex, "ADMIN_STATE", ret);
|
||||
}
|
||||
|
||||
int sd_network_link_get_network_file(int ifindex, char **filename) {
|
||||
return network_link_get_string(ifindex, "NETWORK_FILE", filename);
|
||||
int sd_network_link_get_network_file(int ifindex, char **ret) {
|
||||
return network_link_get_string(ifindex, "NETWORK_FILE", ret);
|
||||
}
|
||||
|
||||
int sd_network_link_get_operational_state(int ifindex, char **state) {
|
||||
return network_link_get_string(ifindex, "OPER_STATE", state);
|
||||
int sd_network_link_get_operational_state(int ifindex, char **ret) {
|
||||
return network_link_get_string(ifindex, "OPER_STATE", ret);
|
||||
}
|
||||
|
||||
int sd_network_link_get_required_family_for_online(int ifindex, char **state) {
|
||||
_cleanup_free_ char *s = NULL;
|
||||
int r;
|
||||
|
||||
assert_return(state, -EINVAL);
|
||||
|
||||
r = network_link_get_string(ifindex, "REQUIRED_FAMILY_FOR_ONLINE", &s);
|
||||
if (r < 0) {
|
||||
if (r != -ENODATA)
|
||||
return r;
|
||||
|
||||
s = strdup("any");
|
||||
if (!s)
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
*state = TAKE_PTR(s);
|
||||
return 0;
|
||||
int sd_network_link_get_required_family_for_online(int ifindex, char **ret) {
|
||||
return network_link_get_string(ifindex, "REQUIRED_FAMILY_FOR_ONLINE", ret);
|
||||
}
|
||||
|
||||
int sd_network_link_get_carrier_state(int ifindex, char **state) {
|
||||
return network_link_get_string(ifindex, "CARRIER_STATE", state);
|
||||
int sd_network_link_get_carrier_state(int ifindex, char **ret) {
|
||||
return network_link_get_string(ifindex, "CARRIER_STATE", ret);
|
||||
}
|
||||
|
||||
int sd_network_link_get_address_state(int ifindex, char **state) {
|
||||
return network_link_get_string(ifindex, "ADDRESS_STATE", state);
|
||||
int sd_network_link_get_address_state(int ifindex, char **ret) {
|
||||
return network_link_get_string(ifindex, "ADDRESS_STATE", ret);
|
||||
}
|
||||
|
||||
int sd_network_link_get_ipv4_address_state(int ifindex, char **state) {
|
||||
return network_link_get_string(ifindex, "IPV4_ADDRESS_STATE", state);
|
||||
int sd_network_link_get_ipv4_address_state(int ifindex, char **ret) {
|
||||
return network_link_get_string(ifindex, "IPV4_ADDRESS_STATE", ret);
|
||||
}
|
||||
|
||||
int sd_network_link_get_ipv6_address_state(int ifindex, char **state) {
|
||||
return network_link_get_string(ifindex, "IPV6_ADDRESS_STATE", state);
|
||||
int sd_network_link_get_ipv6_address_state(int ifindex, char **ret) {
|
||||
return network_link_get_string(ifindex, "IPV6_ADDRESS_STATE", ret);
|
||||
}
|
||||
|
||||
int sd_network_link_get_online_state(int ifindex, char **state) {
|
||||
return network_link_get_string(ifindex, "ONLINE_STATE", state);
|
||||
int sd_network_link_get_online_state(int ifindex, char **ret) {
|
||||
return network_link_get_string(ifindex, "ONLINE_STATE", ret);
|
||||
}
|
||||
|
||||
int sd_network_link_get_dhcp6_client_iaid_string(int ifindex, char **iaid) {
|
||||
return network_link_get_string(ifindex, "DHCP6_CLIENT_IAID", iaid);
|
||||
int sd_network_link_get_dhcp6_client_iaid_string(int ifindex, char **ret) {
|
||||
return network_link_get_string(ifindex, "DHCP6_CLIENT_IAID", ret);
|
||||
}
|
||||
|
||||
int sd_network_link_get_dhcp6_client_duid_string(int ifindex, char **duid) {
|
||||
return network_link_get_string(ifindex, "DHCP6_CLIENT_DUID", duid);
|
||||
int sd_network_link_get_dhcp6_client_duid_string(int ifindex, char **ret) {
|
||||
return network_link_get_string(ifindex, "DHCP6_CLIENT_DUID", ret);
|
||||
}
|
||||
|
||||
int sd_network_link_get_required_for_online(int ifindex) {
|
||||
_cleanup_free_ char *s = NULL;
|
||||
int r;
|
||||
|
||||
r = network_link_get_string(ifindex, "REQUIRED_FOR_ONLINE", &s);
|
||||
if (r < 0) {
|
||||
/* Handle -ENODATA as RequiredForOnline=yes, for compatibility */
|
||||
if (r == -ENODATA)
|
||||
return true;
|
||||
return r;
|
||||
}
|
||||
|
||||
return parse_boolean(s);
|
||||
return network_link_get_boolean(ifindex, "REQUIRED_FOR_ONLINE");
|
||||
}
|
||||
|
||||
int sd_network_link_get_required_operstate_for_online(int ifindex, char **state) {
|
||||
_cleanup_free_ char *s = NULL;
|
||||
int r;
|
||||
|
||||
assert_return(state, -EINVAL);
|
||||
|
||||
r = network_link_get_string(ifindex, "REQUIRED_OPER_STATE_FOR_ONLINE", &s);
|
||||
if (r < 0) {
|
||||
if (r != -ENODATA)
|
||||
return r;
|
||||
|
||||
/* For compatibility, assuming degraded. */
|
||||
s = strdup("degraded");
|
||||
if (!s)
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
*state = TAKE_PTR(s);
|
||||
return 0;
|
||||
int sd_network_link_get_required_operstate_for_online(int ifindex, char **ret) {
|
||||
return network_link_get_string(ifindex, "REQUIRED_OPER_STATE_FOR_ONLINE", ret);
|
||||
}
|
||||
|
||||
int sd_network_link_get_activation_policy(int ifindex, char **policy) {
|
||||
_cleanup_free_ char *s = NULL;
|
||||
int r;
|
||||
|
||||
assert_return(policy, -EINVAL);
|
||||
|
||||
r = network_link_get_string(ifindex, "ACTIVATION_POLICY", &s);
|
||||
if (r < 0) {
|
||||
if (r != -ENODATA)
|
||||
return r;
|
||||
|
||||
/* For compatibility, assuming up. */
|
||||
s = strdup("up");
|
||||
if (!s)
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
*policy = TAKE_PTR(s);
|
||||
return 0;
|
||||
int sd_network_link_get_activation_policy(int ifindex, char **ret) {
|
||||
return network_link_get_string(ifindex, "ACTIVATION_POLICY", ret);
|
||||
}
|
||||
|
||||
int sd_network_link_get_llmnr(int ifindex, char **llmnr) {
|
||||
return network_link_get_string(ifindex, "LLMNR", llmnr);
|
||||
int sd_network_link_get_llmnr(int ifindex, char **ret) {
|
||||
return network_link_get_string(ifindex, "LLMNR", ret);
|
||||
}
|
||||
|
||||
int sd_network_link_get_mdns(int ifindex, char **mdns) {
|
||||
return network_link_get_string(ifindex, "MDNS", mdns);
|
||||
int sd_network_link_get_mdns(int ifindex, char **ret) {
|
||||
return network_link_get_string(ifindex, "MDNS", ret);
|
||||
}
|
||||
|
||||
int sd_network_link_get_dns_over_tls(int ifindex, char **dns_over_tls) {
|
||||
return network_link_get_string(ifindex, "DNS_OVER_TLS", dns_over_tls);
|
||||
int sd_network_link_get_dns_over_tls(int ifindex, char **ret) {
|
||||
return network_link_get_string(ifindex, "DNS_OVER_TLS", ret);
|
||||
}
|
||||
|
||||
int sd_network_link_get_dnssec(int ifindex, char **dnssec) {
|
||||
return network_link_get_string(ifindex, "DNSSEC", dnssec);
|
||||
int sd_network_link_get_dnssec(int ifindex, char **ret) {
|
||||
return network_link_get_string(ifindex, "DNSSEC", ret);
|
||||
}
|
||||
|
||||
int sd_network_link_get_dnssec_negative_trust_anchors(int ifindex, char ***nta) {
|
||||
return network_link_get_strv(ifindex, "DNSSEC_NTA", nta);
|
||||
int sd_network_link_get_dnssec_negative_trust_anchors(int ifindex, char ***ret) {
|
||||
return network_link_get_strv(ifindex, "DNSSEC_NTA", ret);
|
||||
}
|
||||
|
||||
int sd_network_link_get_dns(int ifindex, char ***ret) {
|
||||
@ -319,26 +249,10 @@ int sd_network_link_get_route_domains(int ifindex, char ***ret) {
|
||||
}
|
||||
|
||||
int sd_network_link_get_dns_default_route(int ifindex) {
|
||||
char path[STRLEN("/run/systemd/netif/links/") + DECIMAL_STR_MAX(ifindex)];
|
||||
_cleanup_free_ char *s = NULL;
|
||||
int r;
|
||||
|
||||
assert_return(ifindex > 0, -EINVAL);
|
||||
|
||||
xsprintf(path, "/run/systemd/netif/links/%i", ifindex);
|
||||
|
||||
r = parse_env_file(NULL, path, "DNS_DEFAULT_ROUTE", &s);
|
||||
if (r == -ENOENT)
|
||||
return -ENODATA;
|
||||
if (r < 0)
|
||||
return r;
|
||||
if (isempty(s))
|
||||
return -ENODATA;
|
||||
return parse_boolean(s);
|
||||
return network_link_get_boolean(ifindex, "DNS_DEFAULT_ROUTE");
|
||||
}
|
||||
|
||||
static int network_link_get_ifindexes(int ifindex, const char *key, int **ret) {
|
||||
char path[STRLEN("/run/systemd/netif/links/") + DECIMAL_STR_MAX(ifindex)];
|
||||
_cleanup_free_ int *ifis = NULL;
|
||||
_cleanup_free_ char *s = NULL;
|
||||
size_t c = 0;
|
||||
@ -347,10 +261,7 @@ static int network_link_get_ifindexes(int ifindex, const char *key, int **ret) {
|
||||
assert_return(ifindex > 0, -EINVAL);
|
||||
assert_return(ret, -EINVAL);
|
||||
|
||||
xsprintf(path, "/run/systemd/netif/links/%i", ifindex);
|
||||
r = parse_env_file(NULL, path, key, &s);
|
||||
if (r == -ENOENT)
|
||||
return -ENODATA;
|
||||
r = network_link_get_string(ifindex, key, &s);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
@ -375,7 +286,6 @@ static int network_link_get_ifindexes(int ifindex, const char *key, int **ret) {
|
||||
ifis[c] = 0; /* Let's add a 0 ifindex to the end, to be nice */
|
||||
|
||||
*ret = TAKE_PTR(ifis);
|
||||
|
||||
return c;
|
||||
}
|
||||
|
||||
@ -503,14 +413,12 @@ int sd_network_monitor_flush(sd_network_monitor *m) {
|
||||
}
|
||||
|
||||
int sd_network_monitor_get_fd(sd_network_monitor *m) {
|
||||
|
||||
assert_return(m, -EINVAL);
|
||||
|
||||
return MONITOR_TO_FD(m);
|
||||
}
|
||||
|
||||
int sd_network_monitor_get_events(sd_network_monitor *m) {
|
||||
|
||||
assert_return(m, -EINVAL);
|
||||
|
||||
/* For now we will only return POLLIN here, since we don't
|
||||
@ -520,14 +428,13 @@ int sd_network_monitor_get_events(sd_network_monitor *m) {
|
||||
return POLLIN;
|
||||
}
|
||||
|
||||
int sd_network_monitor_get_timeout(sd_network_monitor *m, uint64_t *timeout_usec) {
|
||||
|
||||
int sd_network_monitor_get_timeout(sd_network_monitor *m, uint64_t *ret_usec) {
|
||||
assert_return(m, -EINVAL);
|
||||
assert_return(timeout_usec, -EINVAL);
|
||||
assert_return(ret_usec, -EINVAL);
|
||||
|
||||
/* For now we will only return UINT64_MAX, since we don't
|
||||
* need any timeout. However, let's have this API to keep our
|
||||
* options open should we later on need it. */
|
||||
*timeout_usec = UINT64_MAX;
|
||||
*ret_usec = UINT64_MAX;
|
||||
return 0;
|
||||
}
|
||||
|
@ -836,9 +836,7 @@ static int list_links(int argc, char *argv[], void *userdata) {
|
||||
(void) sd_network_link_get_operational_state(links[i].ifindex, &operational_state);
|
||||
operational_state_to_color(links[i].name, operational_state, &on_color_operational, NULL);
|
||||
|
||||
r = sd_network_link_get_setup_state(links[i].ifindex, &setup_state);
|
||||
if (r == -ENODATA) /* If there's no info available about this iface, it's unmanaged by networkd */
|
||||
setup_state = strdup("unmanaged");
|
||||
(void) sd_network_link_get_setup_state(links[i].ifindex, &setup_state);
|
||||
setup_state_to_color(setup_state, &on_color_setup, NULL);
|
||||
|
||||
r = net_get_type_string(links[i].sd_device, links[i].iftype, &t);
|
||||
@ -851,7 +849,7 @@ static int list_links(int argc, char *argv[], void *userdata) {
|
||||
TABLE_STRING, t,
|
||||
TABLE_STRING, operational_state,
|
||||
TABLE_SET_COLOR, on_color_operational,
|
||||
TABLE_STRING, setup_state,
|
||||
TABLE_STRING, setup_state ?: "unmanaged",
|
||||
TABLE_SET_COLOR, on_color_setup);
|
||||
if (r < 0)
|
||||
return table_log_add_error(r);
|
||||
@ -1563,9 +1561,7 @@ static int link_status_one(
|
||||
(void) sd_network_link_get_online_state(info->ifindex, &online_state);
|
||||
online_state_to_color(online_state, &on_color_online, NULL);
|
||||
|
||||
r = sd_network_link_get_setup_state(info->ifindex, &setup_state);
|
||||
if (r == -ENODATA) /* If there's no info available about this iface, it's unmanaged by networkd */
|
||||
setup_state = strdup("unmanaged");
|
||||
(void) sd_network_link_get_setup_state(info->ifindex, &setup_state);
|
||||
setup_state_to_color(setup_state, &on_color_setup, &off_color_setup);
|
||||
|
||||
(void) sd_network_link_get_dns(info->ifindex, &dns);
|
||||
@ -1573,6 +1569,10 @@ static int link_status_one(
|
||||
(void) sd_network_link_get_route_domains(info->ifindex, &route_domains);
|
||||
(void) sd_network_link_get_ntp(info->ifindex, &ntp);
|
||||
(void) sd_network_link_get_sip(info->ifindex, &sip);
|
||||
(void) sd_network_link_get_network_file(info->ifindex, &network);
|
||||
(void) sd_network_link_get_carrier_bound_to(info->ifindex, &carrier_bound_to);
|
||||
(void) sd_network_link_get_carrier_bound_by(info->ifindex, &carrier_bound_by);
|
||||
(void) sd_network_link_get_activation_policy(info->ifindex, &activation_policy);
|
||||
|
||||
if (info->sd_device) {
|
||||
(void) sd_device_get_property_value(info->sd_device, "ID_NET_LINK_FILE", &link);
|
||||
@ -1590,11 +1590,6 @@ static int link_status_one(
|
||||
if (r == -ENOMEM)
|
||||
return log_oom();
|
||||
|
||||
(void) sd_network_link_get_network_file(info->ifindex, &network);
|
||||
|
||||
(void) sd_network_link_get_carrier_bound_to(info->ifindex, &carrier_bound_to);
|
||||
(void) sd_network_link_get_carrier_bound_by(info->ifindex, &carrier_bound_by);
|
||||
|
||||
char lease_file[STRLEN("/run/systemd/netif/leases/") + DECIMAL_STR_MAX(int)];
|
||||
xsprintf(lease_file, "/run/systemd/netif/leases/%i", info->ifindex);
|
||||
|
||||
@ -1646,7 +1641,7 @@ static int link_status_one(
|
||||
|
||||
r = table_add_cell_stringf(table, NULL, "%s%s%s (%s%s%s)",
|
||||
on_color_operational, strna(operational_state), off_color_operational,
|
||||
on_color_setup, strna(setup_state), off_color_setup);
|
||||
on_color_setup, setup_state ?: "unmanaged", off_color_setup);
|
||||
if (r < 0)
|
||||
return table_log_add_error(r);
|
||||
|
||||
@ -2188,15 +2183,9 @@ static int link_status_one(
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
r = sd_network_link_get_activation_policy(info->ifindex, &activation_policy);
|
||||
if (r >= 0) {
|
||||
r = table_add_many(table,
|
||||
TABLE_EMPTY,
|
||||
TABLE_STRING, "Activation Policy:",
|
||||
TABLE_STRING, activation_policy);
|
||||
if (r < 0)
|
||||
return table_log_add_error(r);
|
||||
}
|
||||
r = table_add_string_line(table, "Activation Policy:", activation_policy);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
r = sd_network_link_get_required_for_online(info->ifindex);
|
||||
if (r >= 0) {
|
||||
|
@ -107,14 +107,14 @@ int link_update_monitor(Link *l) {
|
||||
r = sd_network_link_get_required_for_online(l->ifindex);
|
||||
if (r < 0)
|
||||
ret = log_link_debug_errno(l, r, "Failed to determine whether the link is required for online or not, "
|
||||
"ignoring: %m");
|
||||
else
|
||||
l->required_for_online = r > 0;
|
||||
"assuming required: %m");
|
||||
l->required_for_online = r != 0;
|
||||
|
||||
r = sd_network_link_get_required_operstate_for_online(l->ifindex, &required_operstate);
|
||||
if (r < 0)
|
||||
if (r < 0) {
|
||||
ret = log_link_debug_errno(l, r, "Failed to get required operational state, ignoring: %m");
|
||||
else if (isempty(required_operstate))
|
||||
l->required_operstate = LINK_OPERSTATE_RANGE_DEFAULT;
|
||||
} else if (isempty(required_operstate))
|
||||
l->required_operstate = LINK_OPERSTATE_RANGE_DEFAULT;
|
||||
else {
|
||||
r = parse_operational_state_range(required_operstate, &l->required_operstate);
|
||||
|
@ -469,7 +469,7 @@ static int link_update_dnssec_negative_trust_anchors(Link *l) {
|
||||
|
||||
r = sd_network_link_get_dnssec_negative_trust_anchors(l->ifindex, &ntas);
|
||||
if (r == -ENODATA)
|
||||
return r;
|
||||
return 0;
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
|
@ -49,26 +49,26 @@ _SD_BEGIN_DECLARATIONS;
|
||||
* Possible return codes:
|
||||
* -ENODATA: networkd is not aware of any links
|
||||
*/
|
||||
int sd_network_get_operational_state(char **state);
|
||||
int sd_network_get_carrier_state(char **state);
|
||||
int sd_network_get_address_state(char **state);
|
||||
int sd_network_get_ipv4_address_state(char **state);
|
||||
int sd_network_get_ipv6_address_state(char **state);
|
||||
int sd_network_get_online_state(char **state);
|
||||
int sd_network_get_operational_state(char **ret);
|
||||
int sd_network_get_carrier_state(char **ret);
|
||||
int sd_network_get_address_state(char **ret);
|
||||
int sd_network_get_ipv4_address_state(char **ret);
|
||||
int sd_network_get_ipv6_address_state(char **ret);
|
||||
int sd_network_get_online_state(char **ret);
|
||||
|
||||
/* Get DNS entries for all links. These are string representations of
|
||||
* IP addresses */
|
||||
int sd_network_get_dns(char ***dns);
|
||||
int sd_network_get_dns(char ***ret);
|
||||
|
||||
/* Get NTP entries for all links. These are domain names or string
|
||||
* representations of IP addresses */
|
||||
int sd_network_get_ntp(char ***ntp);
|
||||
int sd_network_get_ntp(char ***ret);
|
||||
|
||||
/* Get the search domains for all links. */
|
||||
int sd_network_get_search_domains(char ***domains);
|
||||
int sd_network_get_search_domains(char ***ret);
|
||||
|
||||
/* Get the search domains for all links. */
|
||||
int sd_network_get_route_domains(char ***domains);
|
||||
int sd_network_get_route_domains(char ***ret);
|
||||
|
||||
/* Get setup state from ifindex.
|
||||
* Possible states:
|
||||
@ -81,7 +81,7 @@ int sd_network_get_route_domains(char ***domains);
|
||||
* Possible return codes:
|
||||
* -ENODATA: networkd is not aware of the link
|
||||
*/
|
||||
int sd_network_link_get_setup_state(int ifindex, char **state);
|
||||
int sd_network_link_get_setup_state(int ifindex, char **ret);
|
||||
|
||||
/* Get operational state from ifindex.
|
||||
* Possible states:
|
||||
@ -94,14 +94,14 @@ int sd_network_link_get_setup_state(int ifindex, char **state);
|
||||
* Possible return codes:
|
||||
* -ENODATA: networkd is not aware of the link
|
||||
*/
|
||||
int sd_network_link_get_operational_state(int ifindex, char **state);
|
||||
int sd_network_link_get_required_operstate_for_online(int ifindex, char **state);
|
||||
int sd_network_link_get_required_family_for_online(int ifindex, char **state);
|
||||
int sd_network_link_get_carrier_state(int ifindex, char **state);
|
||||
int sd_network_link_get_address_state(int ifindex, char **state);
|
||||
int sd_network_link_get_ipv4_address_state(int ifindex, char **state);
|
||||
int sd_network_link_get_ipv6_address_state(int ifindex, char **state);
|
||||
int sd_network_link_get_online_state(int ifindex, char **state);
|
||||
int sd_network_link_get_operational_state(int ifindex, char **ret);
|
||||
int sd_network_link_get_required_operstate_for_online(int ifindex, char **ret);
|
||||
int sd_network_link_get_required_family_for_online(int ifindex, char **ret);
|
||||
int sd_network_link_get_carrier_state(int ifindex, char **ret);
|
||||
int sd_network_link_get_address_state(int ifindex, char **ret);
|
||||
int sd_network_link_get_ipv4_address_state(int ifindex, char **ret);
|
||||
int sd_network_link_get_ipv6_address_state(int ifindex, char **ret);
|
||||
int sd_network_link_get_online_state(int ifindex, char **ret);
|
||||
|
||||
/* Indicates whether the network is relevant to being online.
|
||||
* Possible return codes:
|
||||
@ -114,10 +114,10 @@ int sd_network_link_get_required_for_online(int ifindex);
|
||||
/* Get activation policy for ifindex.
|
||||
* Possible values are as specified for ActivationPolicy=
|
||||
*/
|
||||
int sd_network_link_get_activation_policy(int ifindex, char **policy);
|
||||
int sd_network_link_get_activation_policy(int ifindex, char **ret);
|
||||
|
||||
/* Get path to .network file applied to link */
|
||||
int sd_network_link_get_network_file(int ifindex, char **filename);
|
||||
int sd_network_link_get_network_file(int ifindex, char **ret);
|
||||
|
||||
/* Get DNS entries for a given link. These are string representations of
|
||||
* IP addresses */
|
||||
@ -136,7 +136,7 @@ int sd_network_link_get_sip(int ifindex, char ***ret);
|
||||
* Possible return codes:
|
||||
* -ENODATA: networkd is not aware of the link
|
||||
*/
|
||||
int sd_network_link_get_llmnr(int ifindex, char **llmnr);
|
||||
int sd_network_link_get_llmnr(int ifindex, char **ret);
|
||||
|
||||
/* Indicates whether or not MulticastDNS should be enabled for the
|
||||
* link.
|
||||
@ -144,7 +144,7 @@ int sd_network_link_get_llmnr(int ifindex, char **llmnr);
|
||||
* Possible return codes:
|
||||
* -ENODATA: networkd is not aware of the link
|
||||
*/
|
||||
int sd_network_link_get_mdns(int ifindex, char **mdns);
|
||||
int sd_network_link_get_mdns(int ifindex, char **ret);
|
||||
|
||||
/* Indicates whether or not DNS-over-TLS should be enabled for the
|
||||
* link.
|
||||
@ -152,41 +152,41 @@ int sd_network_link_get_mdns(int ifindex, char **mdns);
|
||||
* Possible return codes:
|
||||
* -ENODATA: networkd is not aware of the link
|
||||
*/
|
||||
int sd_network_link_get_dns_over_tls(int ifindex, char **dns_over_tls);
|
||||
int sd_network_link_get_dns_over_tls(int ifindex, char **ret);
|
||||
|
||||
/* Indicates whether or not DNSSEC should be enabled for the link
|
||||
* Possible levels of support: yes, no, allow-downgrade
|
||||
* Possible return codes:
|
||||
* -ENODATA: networkd is not aware of the link
|
||||
*/
|
||||
int sd_network_link_get_dnssec(int ifindex, char **dnssec);
|
||||
int sd_network_link_get_dnssec(int ifindex, char **ret);
|
||||
|
||||
/* Returns the list of per-interface DNSSEC negative trust anchors
|
||||
* Possible return codes:
|
||||
* -ENODATA: networkd is not aware of the link, or has no such data
|
||||
*/
|
||||
int sd_network_link_get_dnssec_negative_trust_anchors(int ifindex, char ***nta);
|
||||
int sd_network_link_get_dnssec_negative_trust_anchors(int ifindex, char ***ret);
|
||||
|
||||
/* Get the search DNS domain names for a given link. */
|
||||
int sd_network_link_get_search_domains(int ifindex, char ***domains);
|
||||
int sd_network_link_get_search_domains(int ifindex, char ***ret);
|
||||
|
||||
/* Get the route DNS domain names for a given link. */
|
||||
int sd_network_link_get_route_domains(int ifindex, char ***domains);
|
||||
int sd_network_link_get_route_domains(int ifindex, char ***ret);
|
||||
|
||||
/* Get whether this link shall be used as 'default route' for DNS queries */
|
||||
int sd_network_link_get_dns_default_route(int ifindex);
|
||||
|
||||
/* Get the carrier interface indexes to which current link is bound to. */
|
||||
int sd_network_link_get_carrier_bound_to(int ifindex, int **ifindexes);
|
||||
int sd_network_link_get_carrier_bound_to(int ifindex, int **ret);
|
||||
|
||||
/* Get the CARRIERS that are bound to current link. */
|
||||
int sd_network_link_get_carrier_bound_by(int ifindex, int **ifindexes);
|
||||
int sd_network_link_get_carrier_bound_by(int ifindex, int **ret);
|
||||
|
||||
/* Get DHCPv6 client IAID for a given link. */
|
||||
int sd_network_link_get_dhcp6_client_iaid_string(int ifindex, char **iaid);
|
||||
int sd_network_link_get_dhcp6_client_iaid_string(int ifindex, char **ret);
|
||||
|
||||
/* Get DHCPv6 client DUID for a given link. */
|
||||
int sd_network_link_get_dhcp6_client_duid_string(int ifindex, char **duid);
|
||||
int sd_network_link_get_dhcp6_client_duid_string(int ifindex, char **ret);
|
||||
|
||||
int sd_network_link_get_stat(int ifindex, struct stat *ret);
|
||||
|
||||
@ -209,7 +209,7 @@ int sd_network_monitor_get_fd(sd_network_monitor *m);
|
||||
int sd_network_monitor_get_events(sd_network_monitor *m);
|
||||
|
||||
/* Get timeout for poll(), as usec value relative to CLOCK_MONOTONIC's epoch */
|
||||
int sd_network_monitor_get_timeout(sd_network_monitor *m, uint64_t *timeout_usec);
|
||||
int sd_network_monitor_get_timeout(sd_network_monitor *m, uint64_t *ret_usec);
|
||||
|
||||
_SD_DEFINE_POINTER_CLEANUP_FUNC(sd_network_monitor, sd_network_monitor_unref);
|
||||
|
||||
|
@ -972,7 +972,7 @@ static int manager_network_read_link_servers(Manager *m) {
|
||||
if (r < 0) {
|
||||
if (r == -ENOMEM)
|
||||
log_oom();
|
||||
else
|
||||
else if (r != -ENODATA)
|
||||
log_debug_errno(r, "Failed to get link NTP servers: %m");
|
||||
goto clear;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user