diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2018-09-28 20:23:53 +0200 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2018-09-28 20:23:53 +0200 |
commit | 451b0c7976df9036ee84ad2e51f698dbe7562873 (patch) | |
tree | e6e47d4f5f8c5e4e1e07c2198651cc205d4ca904 /sys/src | |
parent | 9ee967663f9cec96ed9e9fd292657ed54eea47df (diff) |
ip/ipconfig: silently ignore prefix information with Autonomous flag clear
Diffstat (limited to 'sys/src')
-rw-r--r-- | sys/src/cmd/ip/ipconfig/ipv6.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/sys/src/cmd/ip/ipconfig/ipv6.c b/sys/src/cmd/ip/ipconfig/ipv6.c index f7cff295a..dbd37d146 100644 --- a/sys/src/cmd/ip/ipconfig/ipv6.c +++ b/sys/src/cmd/ip/ipconfig/ipv6.c @@ -691,13 +691,16 @@ recvrahost(uchar buf[], int pktlen) if(prfo->len != 4) continue; + if((prfo->lar & AFMASK) == 0) + continue; + conf.prefixlen = prfo->plen & 127; genipmkask(conf.mask, conf.prefixlen); maskip(prfo->pref, conf.mask, conf.v6pref); memmove(conf.laddr, conf.v6pref, 8); memmove(conf.laddr+8, conf.lladdr+8, 8); - conf.onlink = ((prfo->lar & OLMASK) != 0); - conf.autoflag = ((prfo->lar & AFMASK) != 0); + conf.onlink = (prfo->lar & OLMASK) != 0; + conf.autoflag = (prfo->lar & AFMASK) != 0; conf.validlt = nhgetl(prfo->validlt); conf.preflt = nhgetl(prfo->preflt); |