Sending invalid UTF-8 TEXT message should fail and close the connection (fix **tons** of autobahn test: 6.X UTF-8 Handling)
This commit is contained in:
parent
82213fd3a5
commit
172cd39702
@ -1 +1 @@
|
|||||||
5.1.3
|
5.1.4
|
||||||
|
@ -1,6 +1,10 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
|
|
||||||
|
## [5.1.4] - 2019-09-03
|
||||||
|
|
||||||
|
Sending invalid UTF-8 TEXT message should fail and close the connection (fix **tons** of autobahn test: 6.X UTF-8 Handling)
|
||||||
|
|
||||||
## [5.1.3] - 2019-09-03
|
## [5.1.3] - 2019-09-03
|
||||||
|
|
||||||
Message type (TEXT or BINARY) is invalid for received fragmented messages (fix autobahn test: 5.3 through 5.8 Fragmentation)
|
Message type (TEXT or BINARY) is invalid for received fragmented messages (fix autobahn test: 5.3 through 5.8 Fragmentation)
|
||||||
|
@ -447,9 +447,7 @@ namespace ix
|
|||||||
bool binary,
|
bool binary,
|
||||||
const OnProgressCallback& onProgressCallback)
|
const OnProgressCallback& onProgressCallback)
|
||||||
{
|
{
|
||||||
return sendMessage(data,
|
return (binary) ? sendBinary(data, onProgressCallback) : sendText(data, onProgressCallback);
|
||||||
(binary) ? SendMessageKind::Binary: SendMessageKind::Text,
|
|
||||||
onProgressCallback);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
WebSocketSendInfo WebSocket::sendBinary(const std::string& text,
|
WebSocketSendInfo WebSocket::sendBinary(const std::string& text,
|
||||||
@ -463,7 +461,8 @@ namespace ix
|
|||||||
{
|
{
|
||||||
if (!isValidUtf8(text))
|
if (!isValidUtf8(text))
|
||||||
{
|
{
|
||||||
stop();
|
close(WebSocketCloseConstants::kNormalClosureCode,
|
||||||
|
WebSocketCloseConstants::kInvalidUtf8);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return sendMessage(text, SendMessageKind::Text, onProgressCallback);
|
return sendMessage(text, SendMessageKind::Text, onProgressCallback);
|
||||||
|
@ -23,4 +23,5 @@ namespace ix
|
|||||||
const std::string WebSocketCloseConstants::kProtocolErrorReservedBitUsed("Reserved bit used");
|
const std::string WebSocketCloseConstants::kProtocolErrorReservedBitUsed("Reserved bit used");
|
||||||
const std::string WebSocketCloseConstants::kProtocolErrorPingPayloadOversized("Ping reason control frame with payload length > 125 octets");
|
const std::string WebSocketCloseConstants::kProtocolErrorPingPayloadOversized("Ping reason control frame with payload length > 125 octets");
|
||||||
const std::string WebSocketCloseConstants::kProtocolErrorCodeControlMessageFragmented("Control message fragmented");
|
const std::string WebSocketCloseConstants::kProtocolErrorCodeControlMessageFragmented("Control message fragmented");
|
||||||
|
const std::string WebSocketCloseConstants::kInvalidUtf8("Invalid UTF-8");
|
||||||
}
|
}
|
||||||
|
@ -28,5 +28,6 @@ namespace ix
|
|||||||
static const std::string kProtocolErrorReservedBitUsed;
|
static const std::string kProtocolErrorReservedBitUsed;
|
||||||
static const std::string kProtocolErrorPingPayloadOversized;
|
static const std::string kProtocolErrorPingPayloadOversized;
|
||||||
static const std::string kProtocolErrorCodeControlMessageFragmented;
|
static const std::string kProtocolErrorCodeControlMessageFragmented;
|
||||||
|
static const std::string kInvalidUtf8;
|
||||||
};
|
};
|
||||||
} // namespace ix
|
} // namespace ix
|
||||||
|
@ -6,4 +6,4 @@
|
|||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#define IX_WEBSOCKET_VERSION "5.1.3"
|
#define IX_WEBSOCKET_VERSION "5.1.4"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user