modules/checksum.go (19 lines of code) (raw):
package module
import (
"github.com/alibaba/MongoShake/v2/tunnel"
LOG "github.com/vinllen/log4go"
)
/*
* ====== ChecksumCoder =======
*
*/
type ChecksumCalculator struct{}
func (coder *ChecksumCalculator) IsRegistered() bool {
return true
}
func (coder *ChecksumCalculator) Install() bool {
return true
}
func (coder *ChecksumCalculator) Handle(message *tunnel.WMessage) int64 {
// write checksum value
if len(message.RawLogs) != 0 {
message.Checksum = message.Crc32()
LOG.Debug("Tunnel message checksum value 0x%x", message.Checksum)
}
return tunnel.ReplyOK
}