fix(gateway): enforce audited production traversal
This commit is contained in:
+19
-8
@@ -10,14 +10,15 @@ const (
|
||||
)
|
||||
|
||||
const (
|
||||
gatewayFeedbackHeaderSize = 8
|
||||
gatewayFeedbackClient = 0
|
||||
gatewayFeedbackGateway = 1
|
||||
gatewayFeedbackIDR = 1
|
||||
gatewayFeedbackFEC = 2
|
||||
gatewayFeedbackTerminated = 0x10
|
||||
gatewayFeedbackRumble = 0x11
|
||||
gatewayFeedbackHDR = 0x12
|
||||
gatewayFeedbackHeaderSize = 8
|
||||
gatewayFeedbackClient = 0
|
||||
gatewayFeedbackGateway = 1
|
||||
gatewayFeedbackIDR = 1
|
||||
gatewayFeedbackFEC = 2
|
||||
gatewayFeedbackTerminated = 0x10
|
||||
gatewayFeedbackRumble = 0x11
|
||||
gatewayFeedbackHDR = 0x12
|
||||
gatewayFeedbackDisconnected = 0x13
|
||||
)
|
||||
|
||||
type gatewayFeedbackMessage struct {
|
||||
@@ -43,6 +44,11 @@ func EncodeProviderEvent(event ProviderEvent) ([]byte, error) {
|
||||
return nil, ErrProviderMalformed
|
||||
}
|
||||
return encodeGatewayFeedback(gatewayFeedbackGateway, gatewayFeedbackHDR, event.Payload)
|
||||
case ProviderEventDisconnected:
|
||||
if len(event.Payload) != 0 {
|
||||
return nil, ErrProviderMalformed
|
||||
}
|
||||
return encodeGatewayFeedback(gatewayFeedbackGateway, gatewayFeedbackDisconnected, nil)
|
||||
default:
|
||||
return nil, ErrProviderMalformed
|
||||
}
|
||||
@@ -120,6 +126,11 @@ func DecodeProviderEvent(data []byte) (ProviderEvent, error) {
|
||||
return ProviderEvent{}, ErrProviderMalformed
|
||||
}
|
||||
return ProviderEvent{Kind: ProviderEventHDR, Payload: message.payload}, nil
|
||||
case gatewayFeedbackDisconnected:
|
||||
if len(message.payload) != 0 {
|
||||
return ProviderEvent{}, ErrProviderMalformed
|
||||
}
|
||||
return ProviderEvent{Kind: ProviderEventDisconnected}, nil
|
||||
default:
|
||||
return ProviderEvent{}, ErrProviderMalformed
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user