mirror of
https://github.com/soypat/lneto.git
synced 2026-08-21 23:19:03 +00:00
Checksum fixes (#24)
* Checksum 0x0000 is returned as 0xFFFF (mandatory for UDP, common for TCP) * Both checksum zero values (0x0000 and 0xFFFF) are accepted when receiving * Rename parameter in VerifySum16 to expectedSum16 --------- Co-authored-by: Pat Whittingslow <graded.sp@gmail.com>
This commit is contained in:
+5
-1
@@ -131,9 +131,13 @@ func (ifrm Frame) SetCRC(cs uint16) {
|
||||
// CalculateHeaderCRC calculates the CRC for this IPv4 frame.
|
||||
func (ifrm Frame) CalculateHeaderCRC() uint16 {
|
||||
var crc lneto.CRC791
|
||||
ifrm.CRCWriteHeader(&crc)
|
||||
return crc.Sum16()
|
||||
}
|
||||
|
||||
func (ifrm Frame) CRCWriteHeader(crc *lneto.CRC791) {
|
||||
crc.Write(ifrm.buf[0:10])
|
||||
crc.Write(ifrm.buf[12:20])
|
||||
return crc.Sum16()
|
||||
}
|
||||
|
||||
func (ifrm Frame) CRCWriteTCPPseudo(crc *lneto.CRC791) {
|
||||
|
||||
Reference in New Issue
Block a user