summaryrefslogtreecommitdiff
path: root/src/network/networkd-ndisc.h
diff options
context:
space:
mode:
authorYu Watanabe <watanabe.yu+github@gmail.com>2020-08-14 17:45:44 +0900
committerYu Watanabe <watanabe.yu+github@gmail.com>2020-09-08 02:30:04 +0900
commit50550722e3ba8c33c58c9a2f3da827877bd659cc (patch)
treed23a4e397b4b4eda6652e466248d92b223f4625a /src/network/networkd-ndisc.h
parent501b09dbf2ab75d90cd05ec4b44c92341e201e46 (diff)
downloadsystemd-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.h18
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;