Allow IPv6
This commit is contained in:
@@ -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;
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user