mirror of
https://github.com/emsesp/EMS-ESP32.git
synced 2025-12-06 07:49:52 +03:00
46 lines
1.4 KiB
C++
46 lines
1.4 KiB
C++
#include "PsychicWebHandler.h"
|
|
|
|
PsychicWebHandler::PsychicWebHandler()
|
|
: PsychicHandler()
|
|
, _requestCallback(NULL) {
|
|
}
|
|
PsychicWebHandler::~PsychicWebHandler() {
|
|
}
|
|
|
|
bool PsychicWebHandler::canHandle(PsychicRequest * request) {
|
|
return true;
|
|
}
|
|
|
|
esp_err_t PsychicWebHandler::handleRequest(PsychicRequest * request) {
|
|
/* Request body cannot be larger than a limit */
|
|
if (request->contentLength() > request->server()->maxRequestBodySize) {
|
|
ESP_LOGE(PH_TAG, "Request body too large : %d bytes", request->contentLength());
|
|
|
|
/* Respond with 400 Bad Request */
|
|
char error[60];
|
|
sprintf(error, "Request body must be less than %u bytes!", request->server()->maxRequestBodySize);
|
|
httpd_resp_send_err(request->request(), HTTPD_400_BAD_REQUEST, error);
|
|
|
|
/* Return failure to close underlying connection else the incoming file content will keep the socket busy */
|
|
return ESP_FAIL;
|
|
}
|
|
|
|
//get our body loaded up.
|
|
esp_err_t err = request->loadBody();
|
|
if (err != ESP_OK)
|
|
return err;
|
|
|
|
//load our params in.
|
|
request->loadParams();
|
|
|
|
//okay, pass on to our callback.
|
|
if (this->_requestCallback != NULL)
|
|
err = this->_requestCallback(request);
|
|
|
|
return err;
|
|
}
|
|
|
|
PsychicWebHandler * PsychicWebHandler::onRequest(PsychicHttpRequestCallback fn) {
|
|
_requestCallback = fn;
|
|
return this;
|
|
} |