diff --git a/gold/link/listen.go b/gold/link/listen.go index bb46ba4..2c54672 100644 --- a/gold/link/listen.go +++ b/gold/link/listen.go @@ -62,11 +62,6 @@ func (m *Me) listenthread(conn *net.UDPConn, mu *sync.Mutex) { switch { case p.IsToMe(packet.Dst): packet.Data = p.Decode(uint8(packet.TeaTypeDataSZ>>28), packet.Data) - if !packet.IsVaildHash() { - logrus.Debugln("[listen] drop invalid hash packet") - packet.Put() - continue - } if p.aead != nil { packet.Data = p.DecodePreshared(packet.AdditionalData(), packet.Data) if packet.Data == nil { @@ -75,6 +70,11 @@ func (m *Me) listenthread(conn *net.UDPConn, mu *sync.Mutex) { continue } } + if !packet.IsVaildHash() { + logrus.Debugln("[listen] drop invalid hash packet") + packet.Put() + continue + } switch packet.Proto { case head.ProtoHello: switch p.status {