mirror of
https://github.com/Telecominfraproject/wlan-cloud-lib-poco.git
synced 2025-10-30 10:12:23 +00:00
another WebSocket fix, updated libversion
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// WebSocketImpl.h
|
||||
//
|
||||
// $Id: //poco/1.4/Net/include/Poco/Net/WebSocketImpl.h#2 $
|
||||
// $Id: //poco/1.4/Net/include/Poco/Net/WebSocketImpl.h#3 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: WebSocket
|
||||
@@ -90,7 +90,6 @@ protected:
|
||||
enum
|
||||
{
|
||||
FRAME_FLAG_MASK = 0x80,
|
||||
MIN_HEADER_LENGTH = 2,
|
||||
MAX_HEADER_LENGTH = 14
|
||||
};
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// WebSocketImpl.cpp
|
||||
//
|
||||
// $Id: //poco/1.4/Net/src/WebSocketImpl.cpp#3 $
|
||||
// $Id: //poco/1.4/Net/src/WebSocketImpl.cpp#4 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: WebSocket
|
||||
@@ -118,23 +118,27 @@ int WebSocketImpl::sendBytes(const void* buffer, int length, int flags)
|
||||
int WebSocketImpl::receiveBytes(void* buffer, int length, int)
|
||||
{
|
||||
char header[MAX_HEADER_LENGTH];
|
||||
int n = _pStreamSocketImpl->receiveBytes(header, MIN_HEADER_LENGTH);
|
||||
if (n == MIN_HEADER_LENGTH)
|
||||
int n = _pStreamSocketImpl->receiveBytes(header, 2);
|
||||
if (n == 1)
|
||||
{
|
||||
n += _pStreamSocketImpl->receiveBytes(header + 1, 1);
|
||||
}
|
||||
if (n == 2)
|
||||
{
|
||||
Poco::UInt8 lengthByte = static_cast<Poco::UInt8>(header[1]) & 0x7f;
|
||||
if (lengthByte + MIN_HEADER_LENGTH < MAX_HEADER_LENGTH)
|
||||
if (lengthByte + 2 < MAX_HEADER_LENGTH)
|
||||
{
|
||||
n = _pStreamSocketImpl->receiveBytes(header + MIN_HEADER_LENGTH, lengthByte);
|
||||
n = _pStreamSocketImpl->receiveBytes(header + 2, lengthByte);
|
||||
}
|
||||
else
|
||||
{
|
||||
n = _pStreamSocketImpl->receiveBytes(header + MIN_HEADER_LENGTH, MAX_HEADER_LENGTH - MIN_HEADER_LENGTH);
|
||||
n = _pStreamSocketImpl->receiveBytes(header + 2, MAX_HEADER_LENGTH - 2);
|
||||
}
|
||||
}
|
||||
else throw WebSocketException("Incomplete frame received", WebSocket::WS_ERR_INCOMPLETE_FRAME);
|
||||
if (n > 0)
|
||||
{
|
||||
n += MIN_HEADER_LENGTH;
|
||||
n += 2;
|
||||
Poco::MemoryInputStream istr(header, n);
|
||||
Poco::BinaryReader reader(istr, Poco::BinaryReader::NETWORK_BYTE_ORDER);
|
||||
Poco::UInt8 flags;
|
||||
|
||||
@@ -1 +1 @@
|
||||
12
|
||||
14
|
||||
|
||||
Reference in New Issue
Block a user