diff options
author | Martin Mares <mj@ucw.cz> | 1999-05-14 20:03:09 +0200 |
---|---|---|
committer | Martin Mares <mj@ucw.cz> | 1999-05-14 20:03:09 +0200 |
commit | b23c5e0ff4e9071b2568bf2f7d437bc13273d17d (patch) | |
tree | 2e6ff94f799923b0c8cd70ebedd431368f67b059 /lib/ipv4.c | |
parent | 11ce4490fac7d0446802738f5fb8fd68c36bd30b (diff) | |
download | bird-b23c5e0ff4e9071b2568bf2f7d437bc13273d17d.tar bird-b23c5e0ff4e9071b2568bf2f7d437bc13273d17d.zip |
Added ip_skip_header() and modified OSPF to use it.
Diffstat (limited to 'lib/ipv4.c')
-rw-r--r-- | lib/ipv4.c | 15 |
1 files changed, 15 insertions, 0 deletions
@@ -94,3 +94,18 @@ ip_pton(char *a, ip_addr *o) *o = ipa_from_u32(ia); return 1; } + +byte * +ipv4_skip_header(byte *pkt, int *len) +{ + int l = *len; + int q; + + if (l < 20 || (*pkt & 0xf0) != 0x40) + return NULL; + q = (*pkt & 0x0f) * 4; + if (q < l) + return NULL; + *len -= q; + return pkt + q; +} |