diff options
author | Andrew Zaborowski <andrew.zaborowski@intel.com> | 2022-09-20 15:32:01 +0200 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2022-09-20 10:04:43 -0500 |
commit | d9b7c9bd17ba7639a8d1f02102180b92aa86c710 (patch) | |
tree | ff32586c2833cfe55a1d0a7154e6bddfaca85aa6 | |
parent | b1b130fe5d52eae5f81a4a20fb1221a6b968bcfd (diff) |
netconfig: Handle missing optimistic_dad /proc file
Handle netconfig_proc_read_ipv6_uint_setting(..., "optimistic_dad")
failures more cleanly in case CONFIG_IPV6_OPTIMISTIC_DAD has not been
enabled in the kernel config. This commit makes no noticeable
difference to the user.
-rw-r--r-- | ell/netconfig.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/ell/netconfig.c b/ell/netconfig.c index c558cade..fe5bf40f 100644 --- a/ell/netconfig.c +++ b/ell/netconfig.c @@ -90,7 +90,7 @@ struct l_netconfig { struct l_queue *icmp_route_data; struct l_acd *acd; unsigned int orig_disable_ipv6; - unsigned int orig_optimistic_dad; + long orig_optimistic_dad; uint8_t mac[ETH_ALEN]; struct l_timeout *ra_timeout; bool have_lla; @@ -2010,7 +2010,8 @@ configure_ipv6: netconfig_proc_read_ipv6_uint_setting(netconfig, "optimistic_dad"); - if (!!netconfig->orig_optimistic_dad != optimistic_dad) + if (netconfig->orig_optimistic_dad >= 0 && + !!netconfig->orig_optimistic_dad != optimistic_dad) netconfig_proc_write_ipv6_uint_setting(netconfig, "optimistic_dad", optimistic_dad ? 1 : 0); @@ -2160,7 +2161,8 @@ LIB_EXPORT void l_netconfig_stop(struct l_netconfig *netconfig) optimistic_dad = netconfig->optimistic_dad_enabled && !netconfig->v6_static_addr; - if (!!netconfig->orig_optimistic_dad != optimistic_dad) + if (netconfig->orig_optimistic_dad >= 0 && + !!netconfig->orig_optimistic_dad != optimistic_dad) netconfig_proc_write_ipv6_uint_setting(netconfig, "optimistic_dad", netconfig->orig_optimistic_dad); |