forked from me-no-dev/ESPAsyncWebServer
fix wrong buffer length in web socket reserve
This commit is contained in:
@@ -146,7 +146,7 @@ AsyncWebSocketMessageBuffer::AsyncWebSocketMessageBuffer(uint8_t * data, size_t
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
_data = new uint8_t[size + 1];
|
_data = new uint8_t[_len + 1];
|
||||||
|
|
||||||
if (_data) {
|
if (_data) {
|
||||||
memcpy(_data, data, _len);
|
memcpy(_data, data, _len);
|
||||||
@@ -224,7 +224,6 @@ bool AsyncWebSocketMessageBuffer::reserve(size_t size)
|
|||||||
_data = nullptr;
|
_data = nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
_data = new uint8_t[size];
|
|
||||||
|
|
||||||
if (_data) {
|
if (_data) {
|
||||||
_data[_len] = 0;
|
_data[_len] = 0;
|
||||||
@@ -873,9 +872,10 @@ void AsyncWebSocket::textAll(AsyncWebSocketMessageBuffer * buffer){
|
|||||||
if (!buffer) return;
|
if (!buffer) return;
|
||||||
buffer->lock();
|
buffer->lock();
|
||||||
for(const auto& c: _clients){
|
for(const auto& c: _clients){
|
||||||
if(c->status() == WS_CONNECTED)
|
if(c->status() == WS_CONNECTED){
|
||||||
c->text(buffer);
|
c->text(buffer);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
buffer->unlock();
|
buffer->unlock();
|
||||||
_cleanBuffers();
|
_cleanBuffers();
|
||||||
}
|
}
|
||||||
@@ -1140,11 +1140,12 @@ AsyncWebSocketMessageBuffer * AsyncWebSocket::makeBuffer(uint8_t * data, size_t
|
|||||||
|
|
||||||
void AsyncWebSocket::_cleanBuffers()
|
void AsyncWebSocket::_cleanBuffers()
|
||||||
{
|
{
|
||||||
for(const auto& c: _buffers){
|
for(AsyncWebSocketMessageBuffer * c: _buffers){
|
||||||
if(c->canDelete())
|
if(c && c->canDelete()){
|
||||||
_buffers.remove(c);
|
_buffers.remove(c);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Reference in New Issue
Block a user