fix(gateway): isolate qualification evidence

This commit is contained in:
sechmachine
2026-07-30 15:06:23 +07:00
parent c0aabf2a72
commit b5aaff9e39
10 changed files with 1004 additions and 160 deletions
+4 -6
View File
@@ -28,6 +28,8 @@ import (
protocol "git.sechmachine.io.vn/sechmachine/VerseVDI-Protocol/gen/go/protocol"
)
const protocolTerminalReceiptVector = "VGF1\x00\x03\x00\x00"
func TestFrameValidationAndFragmentation(t *testing.T) {
frames, err := FragmentPayload(ChannelVideo, 7, 11, make([]byte, 1180))
if err != nil || len(frames) != 2 || len(frames[0].Payload) != 1179 || len(frames[1].Payload) != 1 {
@@ -110,7 +112,7 @@ func TestClientFeedbackUsesFixedProtocolVGFVector(t *testing.T) {
t.Fatalf("decoded disconnected event = %#v, %v", event, err)
}
receipt, err := EncodeClientFeedback(Feedback{Kind: FeedbackTerminalReceipt})
if err != nil || hex.EncodeToString(receipt) != "5647463100030000" {
if err != nil || string(receipt) != protocolTerminalReceiptVector {
t.Fatalf("terminal receipt vector = %x, %v", receipt, err)
}
}
@@ -893,11 +895,7 @@ func (c *independentGatewayClient) receiveProviderEvent(ctx context.Context, ack
}
event, err := DecodeProviderEvent(payload)
if acknowledge && err == nil && (event.Kind == ProviderEventTerminated || event.Kind == ProviderEventDisconnected) {
receipt, encodeErr := EncodeClientFeedback(Feedback{Kind: FeedbackTerminalReceipt})
if encodeErr != nil {
return ProviderEvent{}, encodeErr
}
ack, encodeErr := protocol.EncodeChannelFrame(testChannelFrame("control.ack.v1", 0, receipt))
ack, encodeErr := protocol.EncodeChannelFrame(testChannelFrame("control.ack.v1", 0, []byte(protocolTerminalReceiptVector)))
if encodeErr != nil {
return ProviderEvent{}, encodeErr
}