Validate close codes. Autobahn 7.9.*
This commit is contained in:
parent
1be8d9d46f
commit
fdd1ad9b17
@ -6,6 +6,7 @@ All notable changes to this project will be documented in this file.
|
|||||||
- Sending invalid UTF-8 TEXT message should fail and close the connection (fix remaining autobahn test: 6.X UTF-8 Handling)
|
- Sending invalid UTF-8 TEXT message should fail and close the connection (fix remaining autobahn test: 6.X UTF-8 Handling)
|
||||||
- Fix failing unittest which was sending binary data in text mode with WebSocket::send to call properly call WebSocket::sendBinary instead.
|
- Fix failing unittest which was sending binary data in text mode with WebSocket::send to call properly call WebSocket::sendBinary instead.
|
||||||
- Validate that the reason is proper utf-8. (fix autobahn test 7.5.1)
|
- Validate that the reason is proper utf-8. (fix autobahn test 7.5.1)
|
||||||
|
- Validate close codes. Autobahn 7.9.*
|
||||||
|
|
||||||
## [5.1.5] - 2019-09-03
|
## [5.1.5] - 2019-09-03
|
||||||
|
|
||||||
|
@ -27,4 +27,5 @@ namespace ix
|
|||||||
const std::string WebSocketCloseConstants::kProtocolErrorCodeDataOpcodeOutOfSequence("Fragmentation: data message out of sequence");
|
const std::string WebSocketCloseConstants::kProtocolErrorCodeDataOpcodeOutOfSequence("Fragmentation: data message out of sequence");
|
||||||
const std::string WebSocketCloseConstants::kProtocolErrorCodeContinuationOpCodeOutOfSequence("Fragmentation: continuation opcode out of sequence");
|
const std::string WebSocketCloseConstants::kProtocolErrorCodeContinuationOpCodeOutOfSequence("Fragmentation: continuation opcode out of sequence");
|
||||||
const std::string WebSocketCloseConstants::kInvalidFramePayloadDataMessage("Invalid frame payload data");
|
const std::string WebSocketCloseConstants::kInvalidFramePayloadDataMessage("Invalid frame payload data");
|
||||||
|
const std::string WebSocketCloseConstants::kInvalidCloseCodeMessage("Invalid close code");
|
||||||
}
|
}
|
||||||
|
@ -32,5 +32,6 @@ namespace ix
|
|||||||
static const std::string kProtocolErrorCodeDataOpcodeOutOfSequence;
|
static const std::string kProtocolErrorCodeDataOpcodeOutOfSequence;
|
||||||
static const std::string kProtocolErrorCodeContinuationOpCodeOutOfSequence;
|
static const std::string kProtocolErrorCodeContinuationOpCodeOutOfSequence;
|
||||||
static const std::string kInvalidFramePayloadDataMessage;
|
static const std::string kInvalidFramePayloadDataMessage;
|
||||||
|
static const std::string kInvalidCloseCodeMessage;
|
||||||
};
|
};
|
||||||
} // namespace ix
|
} // namespace ix
|
||||||
|
@ -684,6 +684,20 @@ namespace ix
|
|||||||
code = WebSocketCloseConstants::kInvalidFramePayloadData;
|
code = WebSocketCloseConstants::kInvalidFramePayloadData;
|
||||||
reason = WebSocketCloseConstants::kInvalidFramePayloadDataMessage;
|
reason = WebSocketCloseConstants::kInvalidFramePayloadDataMessage;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Validate close codes. Autobahn 7.9.*
|
||||||
|
// 1014, 1015 are debattable. The firefox MSDN has a description for them
|
||||||
|
if (code < 1000 || code == 1004 || code == 1006 ||
|
||||||
|
(code > 1013 && code < 3000))
|
||||||
|
{
|
||||||
|
// build up an error message containing the bad error code
|
||||||
|
std::stringstream ss;
|
||||||
|
ss << WebSocketCloseConstants::kInvalidCloseCodeMessage
|
||||||
|
<< ": " << code;
|
||||||
|
reason = ss.str();
|
||||||
|
|
||||||
|
code = WebSocketCloseConstants::kProtocolErrorCode;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user