|
@@ -19,11 +19,11 @@ typedef struct icmp icmp;
|
|
|
// sizeof(iphdr_t) = 20
|
|
// sizeof(iphdr_t) = 20
|
|
|
typedef struct iphdr {
|
|
typedef struct iphdr {
|
|
|
#if BYTE_ORDER == LITTLE_ENDIAN
|
|
#if BYTE_ORDER == LITTLE_ENDIAN
|
|
|
- unsigned int ihl:4; // ip header length
|
|
|
|
|
- unsigned int version:4;
|
|
|
|
|
|
|
+ uint8_t ihl:4; // ip header length
|
|
|
|
|
+ uint8_t version:4;
|
|
|
#elif BYTE_ORDER == BIG_ENDIAN
|
|
#elif BYTE_ORDER == BIG_ENDIAN
|
|
|
- unsigned int version:4;
|
|
|
|
|
- unsigned int ihl:4;
|
|
|
|
|
|
|
+ uint8_t version:4;
|
|
|
|
|
+ uint8_t ihl:4;
|
|
|
#else
|
|
#else
|
|
|
#error "BYTE_ORDER undefined!"
|
|
#error "BYTE_ORDER undefined!"
|
|
|
#endif
|
|
#endif
|
|
@@ -111,7 +111,7 @@ typedef struct icmphdr {
|
|
|
uint16_t reserved;
|
|
uint16_t reserved;
|
|
|
uint16_t mtu;
|
|
uint16_t mtu;
|
|
|
} frag;
|
|
} frag;
|
|
|
- }
|
|
|
|
|
|
|
+ } un;
|
|
|
} icmphdr_t;
|
|
} icmphdr_t;
|
|
|
|
|
|
|
|
typedef struct icmp {
|
|
typedef struct icmp {
|