diff options
author | Yu Watanabe <watanabe.yu+github@gmail.com> | 2023-11-06 07:46:39 +0100 |
---|---|---|
committer | Yu Watanabe <watanabe.yu+github@gmail.com> | 2023-11-06 07:53:25 +0100 |
commit | 986e182352a70328fb0cb9c451d263c5aeb9715a (patch) | |
tree | bb871e242312b237f87456b8d0f7f6c4a4f8624f | |
parent | network: fix indentation (diff) | |
download | systemd-986e182352a70328fb0cb9c451d263c5aeb9715a.tar.xz systemd-986e182352a70328fb0cb9c451d263c5aeb9715a.zip |
network: do not try to set invalid value for IPv6 hop limit
-rw-r--r-- | man/systemd.network.xml | 6 | ||||
-rw-r--r-- | src/network/networkd-network-gperf.gperf | 2 | ||||
-rw-r--r-- | src/network/networkd-network.c | 1 | ||||
-rw-r--r-- | src/network/networkd-network.h | 2 | ||||
-rw-r--r-- | src/network/networkd-sysctl.c | 2 |
5 files changed, 6 insertions, 7 deletions
diff --git a/man/systemd.network.xml b/man/systemd.network.xml index ece60926c7..f065cfcafa 100644 --- a/man/systemd.network.xml +++ b/man/systemd.network.xml @@ -864,9 +864,9 @@ Table=1234</programlisting></para> <varlistentry> <term><varname>IPv6HopLimit=</varname></term> <listitem> - <para>Configures IPv6 Hop Limit. For each router that forwards the packet, the hop limit is - decremented by 1. When the hop limit field reaches zero, the packet is discarded. When unset, - the kernel's default will be used.</para> + <para>Configures IPv6 Hop Limit. Takes an integer in the range 1…255. For each router that + forwards the packet, the hop limit is decremented by 1. When the hop limit field reaches zero, the + packet is discarded. When unset, the kernel's default will be used.</para> <xi:include href="version-info.xml" xpointer="v228"/> </listitem> diff --git a/src/network/networkd-network-gperf.gperf b/src/network/networkd-network-gperf.gperf index 6323f6b212..080f72dc2c 100644 --- a/src/network/networkd-network-gperf.gperf +++ b/src/network/networkd-network-gperf.gperf @@ -130,7 +130,7 @@ Network.IPv6PrivacyExtensions, config_parse_ipv6_privacy_extension Network.IPv6AcceptRA, config_parse_tristate, 0, offsetof(Network, ipv6_accept_ra) Network.IPv6AcceptRouterAdvertisements, config_parse_tristate, 0, offsetof(Network, ipv6_accept_ra) Network.IPv6DuplicateAddressDetection, config_parse_int, 0, offsetof(Network, ipv6_dad_transmits) -Network.IPv6HopLimit, config_parse_int, 0, offsetof(Network, ipv6_hop_limit) +Network.IPv6HopLimit, config_parse_uint8, 0, offsetof(Network, ipv6_hop_limit) Network.IPv6ProxyNDP, config_parse_tristate, 0, offsetof(Network, ipv6_proxy_ndp) Network.IPv6MTUBytes, config_parse_mtu, AF_INET6, offsetof(Network, ipv6_mtu) Network.IPv4AcceptLocal, config_parse_tristate, 0, offsetof(Network, ipv4_accept_local) diff --git a/src/network/networkd-network.c b/src/network/networkd-network.c index 9ef28d283b..fbda52f8f3 100644 --- a/src/network/networkd-network.c +++ b/src/network/networkd-network.c @@ -466,7 +466,6 @@ int network_load_one(Manager *manager, OrderedHashmap **networks, const char *fi .ipv4_route_localnet = -1, .ipv6_privacy_extensions = _IPV6_PRIVACY_EXTENSIONS_INVALID, .ipv6_dad_transmits = -1, - .ipv6_hop_limit = -1, .ipv6_proxy_ndp = -1, .proxy_arp = -1, .ipv4_rp_filter = _IP_REVERSE_PATH_FILTER_INVALID, diff --git a/src/network/networkd-network.h b/src/network/networkd-network.h index 00a6b50310..021e7f9182 100644 --- a/src/network/networkd-network.h +++ b/src/network/networkd-network.h @@ -323,7 +323,7 @@ struct Network { int ipv4_accept_local; int ipv4_route_localnet; int ipv6_dad_transmits; - int ipv6_hop_limit; + uint8_t ipv6_hop_limit; int proxy_arp; uint32_t ipv6_mtu; IPv6PrivacyExtensions ipv6_privacy_extensions; diff --git a/src/network/networkd-sysctl.c b/src/network/networkd-sysctl.c index 0b8169a017..2ac6c3527b 100644 --- a/src/network/networkd-sysctl.c +++ b/src/network/networkd-sysctl.c @@ -178,7 +178,7 @@ static int link_set_ipv6_hop_limit(Link *link) { if (!link->network) return 0; - if (link->network->ipv6_hop_limit < 0) + if (link->network->ipv6_hop_limit <= 0) return 0; return sysctl_write_ip_property_int(AF_INET6, link->ifname, "hop_limit", link->network->ipv6_hop_limit); |