Add ip-static.h

This commit is contained in:
angt
2015-11-16 12:53:47 +01:00
parent b8148600f2
commit 14c0c2edb1
3 changed files with 45 additions and 34 deletions

30
src/ip-static.h Normal file
View File

@@ -0,0 +1,30 @@
#pragma once
#include <stdint.h>
static inline int ip_get_version (const uint8_t *data, size_t size)
{
if (size<20) // XXX
return -1; // XXX
return data[0]>>4;
}
static inline void ip_set_size (uint8_t *data, size_t size)
{
data[2] = 0xFF&(size>>8);
data[3] = 0xFF&(size);
}
static inline ssize_t ip_get_size (const uint8_t *data, size_t size)
{
switch (ip_get_version(data, size)) {
case 4:
return (data[2]<<8)|data[3];
case -1:
return -1;
}
return 0;
}