| 20 | func (*CancelRequest) Frontend() {} |
| 21 | |
| 22 | func (dst *CancelRequest) Decode(src []byte) error { |
| 23 | if len(src) < 12 { |
| 24 | return errors.New("cancel request too short") |
| 25 | } |
| 26 | if len(src) > 264 { |
| 27 | return errors.New("cancel request too long") |
| 28 | } |
| 29 | |
| 30 | requestCode := binary.BigEndian.Uint32(src) |
| 31 | if requestCode != cancelRequestCode { |
| 32 | return errors.New("bad cancel request code") |
| 33 | } |
| 34 | |
| 35 | dst.ProcessID = binary.BigEndian.Uint32(src[4:]) |
| 36 | dst.SecretKey = make([]byte, len(src)-8) |
| 37 | copy(dst.SecretKey, src[8:]) |
| 38 | |
| 39 | return nil |
| 40 | } |
| 41 | |
| 42 | // Encode encodes src into dst. dst will include the 4 byte message length. |
| 43 | func (src *CancelRequest) Encode(dst []byte) ([]byte, error) { |