summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSteven Barth <steven@midlink.org>2015-04-12 09:15:22 +0200
committerSteven Barth <steven@midlink.org>2015-04-12 09:15:22 +0200
commitb5afadae8ed69c98f4e9e6a33dfaf570c5bd9b51 (patch)
treed40d5dcd6c5ea70ab5a7ea6253954b8c4137db40 /src
parentc3bbeced0f204b6b9571148ae84227105baaf179 (diff)
downloadodhcp6c-b5afadae8ed69c98f4e9e6a33dfaf570c5bd9b51.tar.gz
Remove obsolete prefix class support
Signed-off-by: Steven Barth <steven@midlink.org>
Diffstat (limited to 'src')
-rw-r--r--src/dhcpv6.c23
-rw-r--r--src/odhcp6c.c4
-rw-r--r--src/odhcp6c.h5
-rw-r--r--src/ra.c2
-rw-r--r--src/script.c4
5 files changed, 4 insertions, 34 deletions
diff --git a/src/dhcpv6.c b/src/dhcpv6.c
index 6ae6f7a..000d999 100644
--- a/src/dhcpv6.c
+++ b/src/dhcpv6.c
@@ -173,9 +173,6 @@ int init_dhcpv6(const char *ifname, unsigned int options, int sol_timeout)
htons(DHCPV6_OPT_PD_EXCLUDE),
htons(DHCPV6_OPT_SOL_MAX_RT),
htons(DHCPV6_OPT_INF_MAX_RT),
-#ifdef EXT_PREFIX_CLASS
- htons(DHCPV6_OPT_PREFIX_CLASS),
-#endif
#ifdef EXT_CER_ID
htons(DHCPV6_OPT_CER_ID),
#endif
@@ -1146,7 +1143,7 @@ static int dhcpv6_parse_ia(void *opt, void *end)
// Update address IA
dhcpv6_for_each_option(&ia_hdr[1], end, otype, olen, odata) {
struct odhcp6c_entry entry = {IN6ADDR_ANY_INIT, 0, 0,
- IN6ADDR_ANY_INIT, 0, 0, 0, 0, 0, 0};
+ IN6ADDR_ANY_INIT, 0, 0, 0, 0, 0};
entry.iaid = ia_hdr->iaid;
@@ -1171,14 +1168,6 @@ static int dhcpv6_parse_ia(void *opt, void *end)
uint16_t stype, slen;
uint8_t *sdata;
-#ifdef EXT_PREFIX_CLASS
- // Find prefix class, if any
- dhcpv6_for_each_option(&prefix[1], odata + olen,
- stype, slen, sdata)
- if (stype == DHCPV6_OPT_PREFIX_CLASS && slen == 2)
- entry.class = sdata[0] << 8 | sdata[1];
-#endif
-
// Parse PD-exclude
bool ok = true;
dhcpv6_for_each_option(odata + sizeof(*prefix) - 4U,
@@ -1242,16 +1231,6 @@ static int dhcpv6_parse_ia(void *opt, void *end)
entry.length = 128;
entry.target = addr->addr;
-#ifdef EXT_PREFIX_CLASS
- uint16_t stype, slen;
- uint8_t *sdata;
- // Find prefix class, if any
- dhcpv6_for_each_option(&addr[1], odata + olen,
- stype, slen, sdata)
- if (stype == DHCPV6_OPT_PREFIX_CLASS && slen == 2)
- entry.class = sdata[0] << 8 | sdata[1];
-#endif
-
odhcp6c_update_entry(STATE_IA_NA, &entry, 0, false);
parsed_ia++;
}
diff --git a/src/odhcp6c.c b/src/odhcp6c.c
index dce1e0e..2d82856 100644
--- a/src/odhcp6c.c
+++ b/src/odhcp6c.c
@@ -584,14 +584,12 @@ bool odhcp6c_update_entry(enum odhcp6c_state state, struct odhcp6c_entry *new,
new->valid - x->valid < min_update_interval &&
new->preferred >= x->preferred &&
new->preferred != UINT32_MAX &&
- new->preferred - x->preferred < min_update_interval &&
- x->class == new->class)
+ new->preferred - x->preferred < min_update_interval)
return false;
x->valid = new->valid;
x->preferred = new->preferred;
x->t1 = new->t1;
x->t2 = new->t2;
- x->class = new->class;
x->iaid = new->iaid;
} else {
odhcp6c_add_state(state, new, sizeof(*new));
diff --git a/src/odhcp6c.h b/src/odhcp6c.h
index ff5b9e4..f7ddc96 100644
--- a/src/odhcp6c.h
+++ b/src/odhcp6c.h
@@ -65,10 +65,6 @@ enum dhcvp6_opt {
DHCPV6_OPT_PD_EXCLUDE = 67,
DHCPV6_OPT_SOL_MAX_RT = 82,
DHCPV6_OPT_INF_MAX_RT = 83,
-#ifdef EXT_PREFIX_CLASS
- /* draft-bhandari-dhc-class-based-prefix, not yet standardized */
- DHCPV6_OPT_PREFIX_CLASS = EXT_PREFIX_CLASS,
-#endif
#ifdef EXT_CER_ID
/* draft-donley-dhc-cer-id-option-03 */
DHCPV6_OPT_CER_ID = EXT_CER_ID,
@@ -300,7 +296,6 @@ struct odhcp6c_entry {
uint32_t preferred;
uint32_t t1;
uint32_t t2;
- uint16_t class;
uint32_t iaid;
};
diff --git a/src/ra.c b/src/ra.c
index 122f99e..5809fcd 100644
--- a/src/ra.c
+++ b/src/ra.c
@@ -274,7 +274,7 @@ bool ra_process(void)
bool changed = false;
uint8_t buf[1500], cmsg_buf[128];
struct nd_router_advert *adv = (struct nd_router_advert*)buf;
- struct odhcp6c_entry entry = {IN6ADDR_ANY_INIT, 0, 0, IN6ADDR_ANY_INIT, 0, 0, 0, 0, 0, 0};
+ struct odhcp6c_entry entry = {IN6ADDR_ANY_INIT, 0, 0, IN6ADDR_ANY_INIT, 0, 0, 0, 0, 0};
const struct in6_addr any = IN6ADDR_ANY_INIT;
if (IN6_IS_ADDR_UNSPECIFIED(&lladdr)) {
diff --git a/src/script.c b/src/script.c
index 2c34216..f8d440f 100644
--- a/src/script.c
+++ b/src/script.c
@@ -163,9 +163,7 @@ static void entry_to_env(const char *name, const void *data, size_t len, enum en
buf_len += snprintf(&buf[buf_len], 24, ",%u,%u", e[i].preferred, e[i].valid);
}
- if ((type == ENTRY_PREFIX || type == ENTRY_ADDRESS) && e[i].class)
- buf_len += snprintf(&buf[buf_len], 12, ",class=%u", e[i].class);
- else if (type == ENTRY_PREFIX && ntohl(e[i].iaid) != 1)
+ if (type == ENTRY_PREFIX && ntohl(e[i].iaid) != 1)
buf_len += snprintf(&buf[buf_len], 16, ",class=%08x", ntohl(e[i].iaid));
if (type == ENTRY_PREFIX && e[i].priority) {