39 lines
674 B
Go
39 lines
674 B
Go
package packets
|
|
|
|
import (
|
|
"bytes"
|
|
"errors"
|
|
"io"
|
|
)
|
|
|
|
|
|
type PingreqPacket struct {}
|
|
|
|
func parsePingreq(control controlPacket) (PingreqPacket, error) {
|
|
packet := PingreqPacket{}
|
|
|
|
if control.packetType != PacketTypePingreq {
|
|
panic("Wrong packet type for parsePingreq")
|
|
}
|
|
if control.flags != 0 {
|
|
return packet, errors.New("Malformed connect packet")
|
|
}
|
|
|
|
return packet, nil
|
|
}
|
|
|
|
func (r PingreqPacket) Visit(p PacketVisitor) {
|
|
p.VisitPing(r)
|
|
}
|
|
|
|
type PingrespPacket struct {}
|
|
|
|
func (p PingrespPacket) Write(w io.Writer) error {
|
|
control := controlPacket {
|
|
packetType: PacketTypePingresp,
|
|
flags: 0,
|
|
reader: bytes.NewReader([]byte{}),
|
|
}
|
|
|
|
return control.write(w)
|
|
}
|