diff --git a/src/AsyncWebSocket.cpp b/src/AsyncWebSocket.cpp index 45add0b..c28de7e 100644 --- a/src/AsyncWebSocket.cpp +++ b/src/AsyncWebSocket.cpp @@ -499,7 +499,7 @@ size_t AsyncWebSocketClient::printf_P(PGM_P formatP, ...) { #else size_t len = vsnprintf(NULL, 0, format, arg)+1; #endif - size_t fmtLen = strlen_P(formatP); + size_t fmtLen = strlen_P(formatP); format = (char*)calloc(fmtLen+1, sizeof(char)); if ( format ) { strcpy_P(format, formatP); @@ -599,6 +599,7 @@ AsyncWebSocket::AsyncWebSocket(String url) :_url(url) ,_clients(NULL) ,_cNextId(1) + ,_enabled(true) { _eventHandler = NULL; } @@ -792,7 +793,7 @@ size_t AsyncWebSocket::printfAll_P(PGM_P formatP, ...) { #else size_t len = vsnprintf(NULL, 0, format, arg)+1; #endif - size_t fmtLen = strlen_P(formatP); + size_t fmtLen = strlen_P(formatP); format = (char*)calloc(fmtLen+1, sizeof(char)); if ( format ) { strcpy_P(format, formatP); @@ -898,6 +899,9 @@ const char * WS_STR_ACCEPT = "Sec-WebSocket-Accept"; const char * WS_STR_UUID = "258EAFA5-E914-47DA-95CA-C5AB0DC85B11"; bool AsyncWebSocket::canHandle(AsyncWebServerRequest *request){ + if(!_enabled) + return false; + if(request->method() != HTTP_GET || !request->url().equals(_url)) return false; diff --git a/src/AsyncWebSocket.h b/src/AsyncWebSocket.h index 0200045..577d531 100644 --- a/src/AsyncWebSocket.h +++ b/src/AsyncWebSocket.h @@ -101,7 +101,7 @@ class AsyncWebSocketClient { size_t printf(const char *format, ...); size_t printf_P(PGM_P formatP, ...); - + void text(const char * message, size_t len); void text(const char * message); void text(uint8_t * message, size_t len); @@ -134,10 +134,13 @@ class AsyncWebSocket: public AsyncWebHandler { AsyncWebSocketClient * _clients; uint32_t _cNextId; AwsEventHandler _eventHandler; + bool _enabled; public: AsyncWebSocket(String url); ~AsyncWebSocket(); const char * url(){ return _url.c_str(); } + void enable(bool e){ _enabled = e; } + bool enabled() { return _enabled; } size_t count(); AsyncWebSocketClient * client(uint32_t id);