"github.com/anacrolix/torrent/bencode"
)
-var ErrorMethodUnknown = KRPCError{
+var ErrorMethodUnknown = Error{
Code: 204,
Msg: "Method Unknown",
}
// Represented as a string or list in bencode.
-type KRPCError struct {
+type Error struct {
Code int
Msg string
}
var (
- _ bencode.Unmarshaler = &KRPCError{}
- _ bencode.Marshaler = &KRPCError{}
- _ error = KRPCError{}
+ _ bencode.Unmarshaler = &Error{}
+ _ bencode.Marshaler = &Error{}
+ _ error = Error{}
)
-func (e *KRPCError) UnmarshalBencode(_b []byte) (err error) {
+func (e *Error) UnmarshalBencode(_b []byte) (err error) {
var _v interface{}
err = bencode.Unmarshal(_b, &_v)
if err != nil {
return
}
-func (e KRPCError) MarshalBencode() (ret []byte, err error) {
+func (e Error) MarshalBencode() (ret []byte, err error) {
return bencode.Marshal([]interface{}{e.Code, e.Msg})
}
-func (e KRPCError) Error() string {
+func (e Error) Error() string {
return fmt.Sprintf("KRPC error %d: %s", e.Code, e.Msg)
}
T string `bencode:"t"` // required: transaction ID
Y string `bencode:"y"` // required: type of the message: q for QUERY, r for RESPONSE, e for ERROR
R *Return `bencode:"r,omitempty"` // RESPONSE type only
- E *KRPCError `bencode:"e,omitempty"` // ERROR type only
+ E *Error `bencode:"e,omitempty"` // ERROR type only
IP util.CompactPeer `bencode:"ip,omitempty"`
}
return ""
}
-func (m Msg) Error() *KRPCError {
+func (m Msg) Error() *Error {
if m.Y != "e" {
return nil
}
testMarshalUnmarshalMsg(t, Msg{
Y: "e",
T: "42",
- E: &KRPCError{Code: 200, Msg: "fuck"},
+ E: &Error{Code: 200, Msg: "fuck"},
}, "d1:eli200e4:fucke1:t2:421:y1:ee")
testMarshalUnmarshalMsg(t, Msg{
Y: "r",
}
}
-func (s *Server) sendError(addr Addr, t string, e krpc.KRPCError) {
+func (s *Server) sendError(addr Addr, t string, e krpc.Error) {
m := krpc.Msg{
T: t,
Y: "e",