// Send writes an RLP-encoded message with the given code. // data should encode as an RLP list. func Send(w MsgWriter, msgcode uint64, data interface{}) error { size, r, err := rlp.EncodeToReader(data) if err != nil { return err } return w.WriteMsg(Msg{Code: msgcode, Size: uint32(size), Payload: r}) }
func init() { p := neighbors{Expiration: ^uint64(0)} maxSizeNode := rpcNode{IP: make(net.IP, 16), UDP: ^uint16(0), TCP: ^uint16(0)} for n := 0; ; n++ { p.Nodes = append(p.Nodes, maxSizeNode) size, _, err := rlp.EncodeToReader(p) if err != nil { // If this ever happens, it will be caught by the unit tests. panic("cannot encode: " + err.Error()) } if headSize+size+1 >= 1280 { maxNeighbors = n break } } }