diff options
author | Yu Watanabe <watanabe.yu+github@gmail.com> | 2020-08-14 17:45:44 +0900 |
---|---|---|
committer | Yu Watanabe <watanabe.yu+github@gmail.com> | 2020-09-08 02:30:04 +0900 |
commit | 50550722e3ba8c33c58c9a2f3da827877bd659cc (patch) | |
tree | d23a4e397b4b4eda6652e466248d92b223f4625a /src/network/networkd-ndisc.h | |
parent | 501b09dbf2ab75d90cd05ec4b44c92341e201e46 (diff) | |
download | systemd-50550722e3ba8c33c58c9a2f3da827877bd659cc.tar.gz |
network: fix NDisc handling for the case when multiple routers exist
69203fba700ea8d7b0c4f4e3d1e1f809ac4644a1 does not consider the case that
multiple routers exist, and causes #16719.
Fixes #16719.
Diffstat (limited to 'src/network/networkd-ndisc.h')
-rw-r--r-- | src/network/networkd-ndisc.h | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/network/networkd-ndisc.h b/src/network/networkd-ndisc.h index c459f42456..927f555bc6 100644 --- a/src/network/networkd-ndisc.h +++ b/src/network/networkd-ndisc.h @@ -2,7 +2,9 @@ #pragma once #include "conf-parser.h" +#include "networkd-address.h" #include "networkd-link.h" +#include "networkd-route.h" #include "time-util.h" typedef struct IPv6Token IPv6Token; @@ -23,9 +25,24 @@ typedef enum IPv6AcceptRAStartDHCP6Client { _IPV6_ACCEPT_RA_START_DHCP6_CLIENT_INVALID = -1, } IPv6AcceptRAStartDHCP6Client; +typedef struct NDiscAddress { + /* Used when GC'ing old DNS servers when configuration changes. */ + bool marked; + struct in6_addr router; + Address *address; +} NDiscAddress; + +typedef struct NDiscRoute { + /* Used when GC'ing old DNS servers when configuration changes. */ + bool marked; + struct in6_addr router; + Route *route; +} NDiscRoute; + typedef struct NDiscRDNSS { /* Used when GC'ing old DNS servers when configuration changes. */ bool marked; + struct in6_addr router; usec_t valid_until; struct in6_addr address; } NDiscRDNSS; @@ -33,6 +50,7 @@ typedef struct NDiscRDNSS { typedef struct NDiscDNSSL { /* Used when GC'ing old domains when configuration changes. */ bool marked; + struct in6_addr router; usec_t valid_until; /* The domain name follows immediately. */ } NDiscDNSSL; |