mirror of
https://github.com/osrg/gobgp.git
synced 2024-05-11 05:55:10 +00:00
packet: rename PacketParseError to MessageError
Handle not only parsing error. Signed-off-by: FUJITA Tomonori <[email protected]>
This commit is contained in:
+13
-12
@@ -2096,7 +2096,7 @@ func (msg *BGPUpdate) DecodeFromBytes(data []byte) error {
|
||||
// check withdrawn route length
|
||||
if len(data) < 2 {
|
||||
msg := "message length isn't enough for withdrawn route length"
|
||||
e := NewPacketParseError(eCode, eSubCode, msg)
|
||||
e := NewMessageError(eCode, eSubCode, nil, msg)
|
||||
return e
|
||||
}
|
||||
|
||||
@@ -2106,7 +2106,7 @@ func (msg *BGPUpdate) DecodeFromBytes(data []byte) error {
|
||||
// check withdrawn route
|
||||
if len(data) < int(msg.WithdrawnRoutesLen) {
|
||||
msg := "withdrawn route length exceeds message length"
|
||||
e := NewPacketParseError(eCode, eSubCode, msg)
|
||||
e := NewMessageError(eCode, eSubCode, nil, msg)
|
||||
return e
|
||||
}
|
||||
|
||||
@@ -2121,7 +2121,7 @@ func (msg *BGPUpdate) DecodeFromBytes(data []byte) error {
|
||||
// check path total attribute length
|
||||
if len(data) < 2 {
|
||||
msg := "message length isn't enough for path total attribute length"
|
||||
e := NewPacketParseError(eCode, eSubCode, msg)
|
||||
e := NewMessageError(eCode, eSubCode, nil, msg)
|
||||
return e
|
||||
}
|
||||
|
||||
@@ -2131,7 +2131,7 @@ func (msg *BGPUpdate) DecodeFromBytes(data []byte) error {
|
||||
// check path attribute
|
||||
if len(data) < int(msg.TotalPathAttributeLen) {
|
||||
msg := "path total attribute length exceeds message length"
|
||||
e := NewPacketParseError(eCode, eSubCode, msg)
|
||||
e := NewMessageError(eCode, eSubCode, nil, msg)
|
||||
return e
|
||||
}
|
||||
|
||||
@@ -2698,21 +2698,22 @@ func ParseBMPMessage(data []byte) (*BMPMessage, error) {
|
||||
return msg, nil
|
||||
}
|
||||
|
||||
type PacketParseError struct {
|
||||
type MessageError struct {
|
||||
TypeCode uint8
|
||||
SubTypeCode uint8
|
||||
Message string
|
||||
Data []byte
|
||||
message string
|
||||
}
|
||||
|
||||
func NewPacketParseError(typeCode, subTypeCode uint8, msg string) error {
|
||||
e := &PacketParseError{
|
||||
func NewMessageError(typeCode, subTypeCode uint8, data []byte, msg string) error {
|
||||
return &MessageError{
|
||||
TypeCode: typeCode,
|
||||
SubTypeCode: subTypeCode,
|
||||
Message: msg,
|
||||
Data: data,
|
||||
message: msg,
|
||||
}
|
||||
return e
|
||||
}
|
||||
|
||||
func (e *PacketParseError) Error() string {
|
||||
return e.Message
|
||||
func (e *MessageError) Error() string {
|
||||
return e.message
|
||||
}
|
||||
|
||||
+3
-6
@@ -347,12 +347,9 @@ func (h *FSMHandler) recvMessageloop() error {
|
||||
for {
|
||||
err := h.recvMessageWithError()
|
||||
if err != nil {
|
||||
switch e := err.(type) {
|
||||
case *bgp.PacketParseError:
|
||||
// enqueue notification message
|
||||
n := bgp.NewBGPNotificationMessage(e.TypeCode, e.SubTypeCode, nil)
|
||||
h.fsm.outgoing <- n
|
||||
}
|
||||
e := err.(*bgp.MessageError)
|
||||
m := bgp.NewBGPNotificationMessage(e.TypeCode, e.SubTypeCode, e.Data)
|
||||
h.fsm.outgoing <- m
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user