Skip to content

Commit eb2ed99

Browse files
committed
Fix custom error naming
1 parent af6b018 commit eb2ed99

9 files changed

Lines changed: 76 additions & 87 deletions

File tree

aspsm.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,11 @@ func (c *Conn) initiateASPSM() error {
1717
}
1818
func (c *Conn) handleAspUp(aspUp *messages.AspUp) error {
1919
if c.State() != StateAspDown {
20-
return NewErrUnexpectedMessage(aspUp)
20+
return NewUnexpectedMessageError(aspUp)
2121

2222
}
2323
if c.StreamID() != 0 {
24-
return NewErrInvalidSCTPStreamID(c.StreamID())
24+
return NewInvalidSCTPStreamIDError(c.StreamID())
2525
}
2626

2727
if _, err := c.WriteSignal(
@@ -38,10 +38,10 @@ func (c *Conn) handleAspUp(aspUp *messages.AspUp) error {
3838

3939
func (c *Conn) handleAspUpAck(aspUpAck *messages.AspUpAck) error {
4040
if c.State() != StateAspDown {
41-
return NewErrUnexpectedMessage(aspUpAck)
41+
return NewUnexpectedMessageError(aspUpAck)
4242
}
4343
if c.StreamID() != 0 {
44-
return NewErrInvalidSCTPStreamID(c.StreamID())
44+
return NewInvalidSCTPStreamIDError(c.StreamID())
4545
}
4646

4747
return nil
@@ -52,10 +52,10 @@ func (c *Conn) handleAspDown(aspDown *messages.AspDown) error {
5252
case StateAspInactive, StateAspActive:
5353
// expected, do nothing here
5454
default:
55-
return NewErrUnexpectedMessage(aspDown)
55+
return NewUnexpectedMessageError(aspDown)
5656
}
5757
if c.StreamID() != 0 {
58-
return NewErrInvalidSCTPStreamID(c.StreamID())
58+
return NewInvalidSCTPStreamIDError(c.StreamID())
5959
}
6060

6161
// XXX - Validate the params.
@@ -70,10 +70,10 @@ func (c *Conn) handleAspDown(aspDown *messages.AspDown) error {
7070
func (c *Conn) handleAspDownAck(aspDownAck *messages.AspDownAck) error {
7171
switch c.State() {
7272
case StateAspInactive, StateAspActive:
73-
return NewErrUnexpectedMessage(aspDownAck)
73+
return NewUnexpectedMessageError(aspDownAck)
7474
}
7575
if c.StreamID() != 0 {
76-
return NewErrInvalidSCTPStreamID(c.StreamID())
76+
return NewInvalidSCTPStreamIDError(c.StreamID())
7777
}
7878

7979
return nil

asptm.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ func (c *Conn) heartbeat(ctx context.Context) {
6868

6969
func (c *Conn) handleAspActive(aspActive *messages.AspActive) error {
7070
if c.State() != StateAspInactive {
71-
return NewErrUnexpectedMessage(aspActive)
71+
return NewUnexpectedMessageError(aspActive)
7272
}
7373

7474
if _, err := c.WriteSignal(
@@ -82,7 +82,7 @@ func (c *Conn) handleAspActive(aspActive *messages.AspActive) error {
8282

8383
func (c *Conn) handleAspActiveAck(aspAcAck *messages.AspActiveAck) error {
8484
if c.State() != StateAspInactive {
85-
return NewErrUnexpectedMessage(aspAcAck)
85+
return NewUnexpectedMessageError(aspAcAck)
8686
}
8787

8888
// XXX - Add some additional validation for aspAcAck here.
@@ -92,7 +92,7 @@ func (c *Conn) handleAspActiveAck(aspAcAck *messages.AspActiveAck) error {
9292

9393
func (c *Conn) handleAspInactive(aspInactive *messages.AspInactive) error {
9494
if c.State() != StateAspActive {
95-
return NewErrUnexpectedMessage(aspInactive)
95+
return NewUnexpectedMessageError(aspInactive)
9696
}
9797

9898
if _, err := c.WriteSignal(
@@ -106,7 +106,7 @@ func (c *Conn) handleAspInactive(aspInactive *messages.AspInactive) error {
106106

107107
func (c *Conn) handleAspInactiveAck(aspAcAck *messages.AspInactiveAck) error {
108108
if c.State() != StateAspActive {
109-
return NewErrUnexpectedMessage(aspAcAck)
109+
return NewUnexpectedMessageError(aspAcAck)
110110
}
111111

112112
// XXX - Add some additional validation for aspAcAck here.
@@ -116,7 +116,7 @@ func (c *Conn) handleAspInactiveAck(aspAcAck *messages.AspInactiveAck) error {
116116

117117
func (c *Conn) handleHeartbeat(beat *messages.Heartbeat) error {
118118
if c.State() != StateAspActive {
119-
return NewErrUnexpectedMessage(beat)
119+
return NewUnexpectedMessageError(beat)
120120
}
121121

122122
// No need to create new HeartbeatAck, as it's identical to Heartbeat except the MessageType.
@@ -129,17 +129,17 @@ func (c *Conn) handleHeartbeat(beat *messages.Heartbeat) error {
129129

130130
func (c *Conn) handleHeartbeatAck(beatAck *messages.HeartbeatAck) error {
131131
if c.State() != StateAspActive {
132-
return NewErrUnexpectedMessage(beatAck)
132+
return NewUnexpectedMessageError(beatAck)
133133
}
134134

135135
myData := c.cfg.HeartbeatInfo.Data
136136
dataFromPeer := beatAck.HeartbeatData.HeartbeatData()
137137
if len(dataFromPeer) != len(myData) {
138-
return NewErrUnexpectedMessage(beatAck)
138+
return NewUnexpectedMessageError(beatAck)
139139
}
140140
for i, p := range dataFromPeer {
141141
if p != myData[i] {
142-
return NewErrUnexpectedMessage(beatAck)
142+
return NewUnexpectedMessageError(beatAck)
143143
}
144144
}
145145

errors.go

Lines changed: 49 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -22,40 +22,44 @@ var (
2222
ErrHeartbeatExpired = errors.New("heartbeat timer expired")
2323
ErrFailedToPeelOff = errors.New("failed to peel off Protocol Data")
2424
ErrFailedToWriteSignal = errors.New("failed to write signal")
25+
26+
// ErrAspIDRequired is used by an SGP in response to an ASP Up message that
27+
// does not contain an ASP Identifier parameter when the SGP requires one.
28+
ErrAspIDRequired = errors.New("ASP Identifier required")
2529
)
2630

27-
// ErrInvalidVersion is used if a message with an unsupported version is received.
28-
type ErrInvalidVersion struct {
31+
// InvalidVersionError is used if a message with an unsupported version is received.
32+
type InvalidVersionError struct {
2933
Ver uint8
3034
}
3135

32-
// NewErrInvalidVersion creates ErrInvalidVersion.
33-
func NewErrInvalidVersion(ver uint8) *ErrInvalidVersion {
34-
return &ErrInvalidVersion{Ver: ver}
36+
// NewInvalidVersionError creates InvalidVersionError.
37+
func NewInvalidVersionError(ver uint8) *InvalidVersionError {
38+
return &InvalidVersionError{Ver: ver}
3539
}
3640

3741
// Error returns error string with violating version.
38-
func (e *ErrInvalidVersion) Error() string {
42+
func (e *InvalidVersionError) Error() string {
3943
return fmt.Sprintf("invalid version: %d", e.Ver)
4044
}
4145

42-
// ErrUnsupportedClass is used if a message with an unexpected or
46+
// UnsupportedClassError is used if a message with an unexpected or
4347
// unsupported Message Class is received.
44-
type ErrUnsupportedClass struct {
48+
type UnsupportedClassError struct {
4549
Msg messages.M3UA
4650
}
4751

48-
// NewErrUnsupportedClass creates ErrUnsupportedClass
49-
func NewErrUnsupportedClass(msg messages.M3UA) *ErrUnsupportedClass {
50-
return &ErrUnsupportedClass{Msg: msg}
52+
// NewUnsupportedClassError creates UnsupportedClassError
53+
func NewUnsupportedClassError(msg messages.M3UA) *UnsupportedClassError {
54+
return &UnsupportedClassError{Msg: msg}
5155
}
5256

5357
// Error returns error string with message class.
54-
func (e *ErrUnsupportedClass) Error() string {
58+
func (e *UnsupportedClassError) Error() string {
5559
return fmt.Sprintf("message class unsupported. class: %s", e.Msg.MessageClassName())
5660
}
5761

58-
func (e *ErrUnsupportedClass) first40Octets() []byte {
62+
func (e *UnsupportedClassError) first40Octets() []byte {
5963
b, err := e.Msg.MarshalBinary()
6064
if err != nil {
6165
return nil
@@ -67,23 +71,23 @@ func (e *ErrUnsupportedClass) first40Octets() []byte {
6771
return b[:40]
6872
}
6973

70-
// ErrUnsupportedMessage is used if a message with an
74+
// UnsupportedMessageError is used if a message with an
7175
// unexpected or unsupported Message Type is received.
72-
type ErrUnsupportedMessage struct {
76+
type UnsupportedMessageError struct {
7377
Msg messages.M3UA
7478
}
7579

76-
// NewErrUnsupportedMessage creates ErrUnsupportedMessage
77-
func NewErrUnsupportedMessage(msg messages.M3UA) *ErrUnsupportedMessage {
78-
return &ErrUnsupportedMessage{Msg: msg}
80+
// NewUnsupportedMessageError creates UnsupportedMessageError
81+
func NewUnsupportedMessageError(msg messages.M3UA) *UnsupportedMessageError {
82+
return &UnsupportedMessageError{Msg: msg}
7983
}
8084

8185
// Error returns error string with message class and type.
82-
func (e *ErrUnsupportedMessage) Error() string {
86+
func (e *UnsupportedMessageError) Error() string {
8387
return fmt.Sprintf("message unsupported. class: %s, type: %s", e.Msg.MessageClassName(), e.Msg.MessageTypeName())
8488
}
8589

86-
func (e *ErrUnsupportedMessage) first40Octets() []byte {
90+
func (e *UnsupportedMessageError) first40Octets() []byte {
8791
b, err := e.Msg.MarshalBinary()
8892
if err != nil {
8993
return nil
@@ -95,81 +99,67 @@ func (e *ErrUnsupportedMessage) first40Octets() []byte {
9599
return b[:40]
96100
}
97101

98-
// ErrUnexpectedMessage is used if a defined and recognized message is received
102+
// UnexpectedMessageError is used if a defined and recognized message is received
99103
// that is not expected in the current state (in some cases, the ASP may optionally
100104
// silently discard the message and not send an Error message).
101-
type ErrUnexpectedMessage struct {
105+
type UnexpectedMessageError struct {
102106
Msg messages.M3UA
103107
}
104108

105-
// NewErrUnexpectedMessage creates ErrUnexpectedMessage
106-
func NewErrUnexpectedMessage(msg messages.M3UA) *ErrUnexpectedMessage {
107-
return &ErrUnexpectedMessage{Msg: msg}
109+
// NewUnexpectedMessageError creates UnexpectedMessageError
110+
func NewUnexpectedMessageError(msg messages.M3UA) *UnexpectedMessageError {
111+
return &UnexpectedMessageError{Msg: msg}
108112
}
109113

110114
// Error returns error string with message class and type.
111-
func (e *ErrUnexpectedMessage) Error() string {
115+
func (e *UnexpectedMessageError) Error() string {
112116
return fmt.Sprintf("unexpected message. class: %s, type: %s", e.Msg.MessageClassName(), e.Msg.MessageTypeName())
113117
}
114118

115-
// ErrInvalidSCTPStreamID is used if a message is received on an unexpected SCTP stream.
116-
type ErrInvalidSCTPStreamID struct {
119+
// InvalidSCTPStreamIDError is used if a message is received on an unexpected SCTP stream.
120+
type InvalidSCTPStreamIDError struct {
117121
ID uint16
118122
}
119123

120-
// NewErrInvalidSCTPStreamID creates ErrInvalidSCTPStreamID
121-
func NewErrInvalidSCTPStreamID(id uint16) *ErrInvalidSCTPStreamID {
122-
return &ErrInvalidSCTPStreamID{ID: id}
124+
// NewInvalidSCTPStreamIDError creates InvalidSCTPStreamIDError
125+
func NewInvalidSCTPStreamIDError(id uint16) *InvalidSCTPStreamIDError {
126+
return &InvalidSCTPStreamIDError{ID: id}
123127
}
124128

125129
// Error returns error string with violating stream ID.
126-
func (e *ErrInvalidSCTPStreamID) Error() string {
130+
func (e *InvalidSCTPStreamIDError) Error() string {
127131
return fmt.Sprintf("invalid SCTP Stream ID: %d", e.ID)
128132
}
129133

130-
// ErrAspIDRequired is used by an SGP in response to an ASP Up message that
131-
// does not contain an ASP Identifier parameter when the SGP requires one..
132-
type ErrAspIDRequired struct{}
133-
134-
// NewErrAspIDRequired creates ErrAspIDRequired
135-
func NewErrAspIDRequired() *ErrAspIDRequired {
136-
return &ErrAspIDRequired{}
137-
}
138-
139-
// Error returns error string.
140-
func (e *ErrAspIDRequired) Error() string {
141-
return "ASP ID required"
142-
}
143-
144134
func (c *Conn) handleErrors(e error) error {
145135
var res messages.M3UA
146-
var errInvalidVersion *ErrInvalidVersion
147-
if errors.As(e, &errInvalidVersion) {
136+
var InvalidVersionError *InvalidVersionError
137+
if errors.As(e, &InvalidVersionError) {
148138
res = messages.NewError(
149-
params.NewErrorCode(params.ErrInvalidVersion),
139+
params.NewErrorCode(params.InvalidVersionError),
150140
nil, nil, nil, nil,
151141
)
152142
}
153143
//nolint:errorlint
154-
if err, ok := e.(*ErrUnsupportedClass); ok {
144+
if err, ok := e.(*UnsupportedClassError); ok {
155145
res = messages.NewError(
156-
params.NewErrorCode(params.ErrUnsupportedMessageClass),
146+
params.NewErrorCode(params.UnsupportedMessageErrorClass),
157147
nil, nil, nil,
158148
params.NewDiagnosticInformation(err.first40Octets()),
159149
)
160150
}
161151
//nolint:errorlint
162-
if err, ok := e.(*ErrUnsupportedMessage); ok {
152+
if err, ok := e.(*UnsupportedMessageError); ok {
163153
res = messages.NewError(
164-
params.NewErrorCode(params.ErrUnsupportedMessageType),
154+
params.NewErrorCode(params.UnsupportedMessageErrorType),
165155
nil, nil, nil,
166156
params.NewDiagnosticInformation(err.first40Octets()),
167157
)
168158
}
169-
var errUnexpectedMessage *ErrUnexpectedMessage
170-
if errors.As(e, &errUnexpectedMessage) {
159+
var UnexpectedMessageError *UnexpectedMessageError
160+
if errors.As(e, &UnexpectedMessageError) {
171161
res = messages.NewError(
172-
params.NewErrorCode(params.ErrUnexpectedMessage),
162+
params.NewErrorCode(params.UnexpectedMessageError),
173163
c.cfg.RoutingContexts,
174164
c.cfg.NetworkAppearance,
175165
params.NewAffectedPointCode(
@@ -178,15 +168,14 @@ func (c *Conn) handleErrors(e error) error {
178168
nil,
179169
)
180170
}
181-
var errInvalidSCTPStreamID *ErrInvalidSCTPStreamID
182-
if errors.As(e, &errInvalidSCTPStreamID) {
171+
var InvalidSCTPStreamIDError *InvalidSCTPStreamIDError
172+
if errors.As(e, &InvalidSCTPStreamIDError) {
183173
res = messages.NewError(
184174
params.NewErrorCode(params.ErrInvalidStreamIdentifier),
185175
nil, nil, nil, nil,
186176
)
187177
}
188-
var errAspIDRequired *ErrAspIDRequired
189-
if errors.As(e, &errAspIDRequired) {
178+
if errors.Is(e, ErrAspIDRequired) {
190179
res = messages.NewError(
191180
params.NewErrorCode(params.ErrAspIdentifierRequired),
192181
nil, nil, nil, nil,

fsm.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ func (c *Conn) handleSignals(ctx context.Context, m3 messages.M3UA) {
114114

115115
// Signal validations
116116
if m3.Version() != 1 {
117-
c.errChan <- NewErrInvalidVersion(m3.Version())
117+
c.errChan <- NewInvalidVersionError(m3.Version())
118118
return
119119
}
120120

@@ -189,7 +189,7 @@ func (c *Conn) handleSignals(ctx context.Context, m3 messages.M3UA) {
189189
c.stateChan <- c.State()
190190
// Others: SSNM and RKM is not implemented.
191191
default:
192-
c.errChan <- NewErrUnsupportedMessage(m3)
192+
c.errChan <- NewUnsupportedMessageError(m3)
193193
c.stateChan <- c.State()
194194
}
195195
}

management.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import "github.com/wmnsk/go-m3ua/messages"
1010
func (c *Conn) handleError(e *messages.Error) error {
1111
switch c.State() {
1212
case StateSCTPCDI, StateSCTPRI:
13-
return NewErrUnexpectedMessage(e)
13+
return NewUnexpectedMessageError(e)
1414
}
1515

1616
return nil
@@ -20,7 +20,7 @@ func (c *Conn) handleError(e *messages.Error) error {
2020
func (c *Conn) handleNotify(e *messages.Notify) error {
2121
switch c.State() {
2222
case StateSCTPCDI, StateSCTPRI:
23-
return NewErrUnexpectedMessage(e)
23+
return NewUnexpectedMessageError(e)
2424
}
2525

2626
return nil

messages/error_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ func TestError(t *testing.T) {
1515
{
1616
"has-all",
1717
NewError(
18-
params.NewErrorCode(params.ErrInvalidVersion),
18+
params.NewErrorCode(params.InvalidVersionError),
1919
params.NewRoutingContext(1),
2020
params.NewNetworkAppearance(1),
2121
params.NewAffectedPointCode(0x11111111, 0x22222222),

messages/params/error-code.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,12 @@ package params
77
// Error Code definitions.
88
const (
99
_ uint32 = iota
10-
ErrInvalidVersion
10+
InvalidVersionError
1111
_
12-
ErrUnsupportedMessageClass
13-
ErrUnsupportedMessageType
12+
UnsupportedMessageErrorClass
13+
UnsupportedMessageErrorType
1414
ErrUnsupportedTrafficModeType
15-
ErrUnexpectedMessage
15+
UnexpectedMessageError
1616
ErrProtocolError
1717
_
1818
ErrInvalidStreamIdentifier

0 commit comments

Comments
 (0)