aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew Zaborowski <andrew.zaborowski@intel.com>2022-09-20 15:32:01 +0200
committerDenis Kenzior <denkenz@gmail.com>2022-09-20 10:04:43 -0500
commitd9b7c9bd17ba7639a8d1f02102180b92aa86c710 (patch)
treeff32586c2833cfe55a1d0a7154e6bddfaca85aa6
parentb1b130fe5d52eae5f81a4a20fb1221a6b968bcfd (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.c8
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);