OSPF: Fix minor issue in TTL check

The TTL check must be done after instance ID dispatch to avoid warnings
when a physical iface is shared by multiple instances and some use TTL
security and some not.
This commit is contained in:
Ondrej Zajicek (work) 2017-10-09 21:11:53 +02:00
parent f097f7659c
commit 2549300b54

View file

@ -270,9 +270,6 @@ ospf_rx_hook(sock *sk, uint len)
if (pkt == NULL) if (pkt == NULL)
DROP("bad IP header", len); DROP("bad IP header", len);
if (ifa->check_ttl && (sk->rcv_ttl < 255))
DROP("wrong TTL", sk->rcv_ttl);
if (len < sizeof(struct ospf_packet)) if (len < sizeof(struct ospf_packet))
DROP("too short", len); DROP("too short", len);
@ -379,6 +376,10 @@ found:
if (ipa_equal(sk->laddr, ifa->des_routers) && (ifa->sk_dr == 0)) if (ipa_equal(sk->laddr, ifa->des_routers) && (ifa->sk_dr == 0))
return 1; return 1;
/* TTL check must be done after instance dispatch */
if (ifa->check_ttl && (sk->rcv_ttl < 255))
DROP("wrong TTL", sk->rcv_ttl);
if (rid == p->router_id) if (rid == p->router_id)
DROP1("my own router ID"); DROP1("my own router ID");