diff --git a/src/ip.h b/src/ip.h index a1cf83f..d636148 100644 --- a/src/ip.h +++ b/src/ip.h @@ -29,15 +29,15 @@ ip_read16(const uint8_t *src) static inline uint8_t ip_get_version(const uint8_t *data) { + if (size < 20) + return 0; + return data[0] >> 4; } static inline int ip_is_valid(const uint8_t *data, int size) { - if (size < 20) - return 0; - switch (ip_get_version(data)) { case 4: return size == ip_read16(&data[2]); case 6: return size == ip_read16(&data[4]) + 40; @@ -49,9 +49,6 @@ ip_is_valid(const uint8_t *data, int size) static inline int ip_get_common(struct ip_common *ic, const uint8_t *data, int size) { - if (size < 20) - return 1; - switch (ip_get_version(data)) { case 4: ic->tc = data[1];