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) }