forked from me-no-dev/ESPAsyncWebServer
Allow callback when request disconnects (#284)
* Allow callback when request disconnects * Use typedef std::function<void(void)> ArDisconnectHandler
This commit is contained in:
@@ -62,6 +62,7 @@ typedef enum {
|
|||||||
HTTP_ANY = 0b01111111,
|
HTTP_ANY = 0b01111111,
|
||||||
} WebRequestMethod;
|
} WebRequestMethod;
|
||||||
typedef uint8_t WebRequestMethodComposite;
|
typedef uint8_t WebRequestMethodComposite;
|
||||||
|
typedef std::function<void(void)> ArDisconnectHandler;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* PARAMETER :: Chainable object to hold GET/POST and FILE parameters
|
* PARAMETER :: Chainable object to hold GET/POST and FILE parameters
|
||||||
@@ -128,6 +129,7 @@ class AsyncWebServerRequest {
|
|||||||
AsyncWebHandler* _handler;
|
AsyncWebHandler* _handler;
|
||||||
AsyncWebServerResponse* _response;
|
AsyncWebServerResponse* _response;
|
||||||
StringArray _interestingHeaders;
|
StringArray _interestingHeaders;
|
||||||
|
ArDisconnectHandler _onDisconnectfn;
|
||||||
|
|
||||||
String _temp;
|
String _temp;
|
||||||
uint8_t _parseState;
|
uint8_t _parseState;
|
||||||
@@ -202,6 +204,7 @@ class AsyncWebServerRequest {
|
|||||||
const char * requestedConnTypeToString() const;
|
const char * requestedConnTypeToString() const;
|
||||||
RequestedConnectionType requestedConnType() const { return _reqconntype; }
|
RequestedConnectionType requestedConnType() const { return _reqconntype; }
|
||||||
bool isExpectedRequestedConnType(RequestedConnectionType erct1, RequestedConnectionType erct2 = RCT_NOT_USED, RequestedConnectionType erct3 = RCT_NOT_USED);
|
bool isExpectedRequestedConnType(RequestedConnectionType erct1, RequestedConnectionType erct2 = RCT_NOT_USED, RequestedConnectionType erct3 = RCT_NOT_USED);
|
||||||
|
void onDisconnect (ArDisconnectHandler fn);
|
||||||
|
|
||||||
//hash is the string representation of:
|
//hash is the string representation of:
|
||||||
// base64(user:pass) for basic or
|
// base64(user:pass) for basic or
|
||||||
|
@@ -214,8 +214,15 @@ void AsyncWebServerRequest::_onTimeout(uint32_t time){
|
|||||||
_client->close();
|
_client->close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void AsyncWebServerRequest::onDisconnect (ArDisconnectHandler fn){
|
||||||
|
_onDisconnectfn=fn;
|
||||||
|
}
|
||||||
|
|
||||||
void AsyncWebServerRequest::_onDisconnect(){
|
void AsyncWebServerRequest::_onDisconnect(){
|
||||||
//os_printf("d\n");
|
//os_printf("d\n");
|
||||||
|
if(_onDisconnectfn) {
|
||||||
|
_onDisconnectfn();
|
||||||
|
}
|
||||||
_server->_handleDisconnect(this);
|
_server->_handleDisconnect(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user