8000 Added method to access clients of AsyncWebSocket (#583) · Rzyq-git/ESPAsyncWebServer@403752a · GitHub
[go: up one dir, main page]

Skip to content

Commit 403752a

Browse files
sascha432me-no-dev
authored andcommitted
Added method to access clients of AsyncWebSocket (me-no-dev#583)
* Added method to access clients of AsyncWebSocket * me-no-dev#571 * Conflict with crypto library
1 parent 8451c0d commit 403752a

File tree

3 files changed

+12
-1
lines changed

3 files changed

+12
-1
lines changed

src/AsyncWebSocket.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1236,6 +1236,9 @@ void AsyncWebSocket::_cleanBuffers()
12361236
}
12371237
}
12381238

1239+
AsyncWebSocket::AsyncWebSocketClientLinkedList AsyncWebSocket::getClients() const {
1240+
return _clients;
1241+
}
12391242

12401243
/*
12411244
* Response to Web Socket request - sends the authorization and detaches the TCP Client from the web server

src/AsyncWebSocket.h

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,9 @@
3535

3636
#ifdef ESP8266
3737
#include <Hash.h>
38+
#ifdef CRYPTO_HASH_h // include Hash.h from espressif framework if the first include was from the crypto library
39+
#include <../src/Hash.h>
40+
#endif
3841
#endif
3942

4043
#ifdef ESP32
@@ -238,9 +241,11 @@ typedef std::function<void(AsyncWebSocket * server, AsyncWebSocketClient * clien
238241

239242
//WebServer Handler implementation that plays the role of a socket server
240243
class AsyncWebSocket: public AsyncWebHandler {
244+
public:
245+
typedef LinkedList<AsyncWebSocketClient *> AsyncWebSocketClientLinkedList;
241246
private:
242247
String _url;
243-
LinkedList<AsyncWebSocketClient *> _clients;
248+
AsyncWebSocketClientLinkedList _clients;
244249
uint32_t _cNextId;
245250
AwsEventHandler _eventHandler;
246251
bool _enabled;
@@ -325,6 +330,8 @@ class AsyncWebSocket: public AsyncWebHandler {
325330
AsyncWebSocketMessageBuffer * makeBuffer(uint8_t * data, size_t size);
326331
LinkedList<AsyncWebSocketMessageBuffer *> _buffers;
327332
void _cleanBuffers();
333+
334+
AsyncWebSocketClientLinkedList getClients() const;
328335
};
329336

330337
//WebServer response to authenticate the socket and detach the tcp client from the web server request

src/WebResponses.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -446,6 +446,7 @@ size_t AsyncAbstractResponse::_fillBufferAndProcessTemplates(uint8_t* data, size
446446
_cache.insert(_cache.begin(), &data[originalLen - (pTemplateStart + numBytesCopied - pTemplateEnd - 1)], &data[len]);
447447
//2. parameter value is longer than placeholder text, push the data after placeholder which not saved into cache further to the end
448448
memmove(pTemplateStart + numBytesCopied, pTemplateEnd + 1, &data[originalLen] - pTemplateStart - numBytesCopied);
449+
len = originalLen; // fix issue with truncated data, not sure if it has any side effects
449450
} else if(pTemplateEnd + 1 != pTemplateStart + numBytesCopied)
450451
//2. Either parameter value is shorter than placeholder text OR there is enough free space in buffer to fit.
451452
// Move the entire data after the placeholder

0 commit comments

Comments
 (0)
0