Add ip_get_proto()

This commit is contained in:
angt
2015-12-10 13:17:27 +01:00
parent e08eb73f98
commit f36fde5054
3 changed files with 24 additions and 0 deletions

View File

@@ -2,6 +2,7 @@
#include <stdint.h>
_pure_
static inline int ip_get_version (const uint8_t *data, size_t size)
{
if (size<20) // XXX
@@ -10,6 +11,7 @@ static inline int ip_get_version (const uint8_t *data, size_t size)
return data[0]>>4;
}
_pure_
static inline ssize_t ip_get_size (const uint8_t *data, size_t size)
{
switch (ip_get_version(data, size)) {
@@ -23,3 +25,18 @@ static inline ssize_t ip_get_size (const uint8_t *data, size_t size)
return 0;
}
_pure_
static inline ssize_t ip_get_proto (const uint8_t *data, size_t size)
{
switch (ip_get_version(data, size)) {
case 4:
return data[9];
case 6:
return data[6];
case -1:
return -1;
}
return 0;
}