Allow IPv6

This commit is contained in:
angt
2015-12-09 20:27:40 +01:00
parent be29a12842
commit ea1fa120eb
2 changed files with 4 additions and 22 deletions

View File

@@ -10,30 +10,16 @@ static inline int ip_get_version (const uint8_t *data, size_t size)
return data[0]>>4; 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) static inline ssize_t ip_get_size (const uint8_t *data, size_t size)
{ {
switch (ip_get_version(data, size)) { switch (ip_get_version(data, size)) {
case 4: case 4:
return (data[2]<<8)|data[3]; return ((data[2]<<8)|data[3]);
case 6:
return ((data[4]<<8)|data[5])+40;
case -1: case -1:
return -1; return -1;
} }
return 0; return 0;
} }
static inline int ip_get_dscp (const uint8_t *data, size_t size)
{
switch (ip_get_version(data, size)) {
case 4:
return data[1]>>2;
}
return 0;
}

View File

@@ -929,11 +929,7 @@ int main (int argc, char **argv)
if _0_(ip_size!=r) { if _0_(ip_size!=r) {
dump_ip_header(data, r); dump_ip_header(data, r);
continue;
if (r>ip_size)
continue;
ip_set_size(data, r);
} }
blks[blk_write++].size = r; blks[blk_write++].size = r;