diff options
Diffstat (limited to 'src/common/Network/Packet')
-rwxr-xr-x | src/common/Network/Packet/IPHeader.h | 2 | ||||
-rwxr-xr-x | src/common/Network/Packet/IPHeader.inl | 6 |
2 files changed, 7 insertions, 1 deletions
diff --git a/src/common/Network/Packet/IPHeader.h b/src/common/Network/Packet/IPHeader.h index 5dfd03d8..b9ef8a2e 100755 --- a/src/common/Network/Packet/IPHeader.h +++ b/src/common/Network/Packet/IPHeader.h @@ -134,7 +134,7 @@ public: inline void updateIpDst(uint32_t ipsrc); - + inline void updateCheckSum(uint16_t old_val, uint16_t new_val); inline void updateCheckSum (); inline void updateCheckSum2(uint8_t* data1, uint16_t len1, uint8_t* data2 , uint16_t len2); diff --git a/src/common/Network/Packet/IPHeader.inl b/src/common/Network/Packet/IPHeader.inl index e7b87f06..26ea551a 100755 --- a/src/common/Network/Packet/IPHeader.inl +++ b/src/common/Network/Packet/IPHeader.inl @@ -258,6 +258,12 @@ inline void IPHeader::updateTotalLength(uint16_t newlen) myChecksum = pkt_UpdateInetChecksum(myChecksum,oldLen,myLength); } +// updating checksum after changing old val to new +inline void IPHeader::updateCheckSum(uint16_t old_val, uint16_t new_val) +{ + myChecksum = pkt_UpdateInetChecksum(myChecksum, old_val, new_val); +} + inline void IPHeader::updateCheckSum() { myChecksum = 0; |