WebKernel::dispatch accepts a HttpResponse

feature/UrlUtils
Kenneth Barbour 2018-04-08 10:52:03 -04:00
parent d45bcc1378
commit 6b1dedc9a5
3 changed files with 20 additions and 7 deletions

View File

@ -10,8 +10,7 @@ HttpResponse::HttpResponse(Stream& buffer):
httpver()
{};
HttpResponse::HttpResponse():
content(),
HttpResponse::HttpResponse():
code(200),
reason(),
httpver()

View File

@ -40,7 +40,11 @@ void WebKernel::handleClients()
keepClient = false;
break;
}
dispatchRequest();
#ifdef DEBUG
Serial.println("Dispatching");
#endif
HttpResponse response;
dispatchRequest(response);
keepClient = false;
break;
}
@ -61,12 +65,22 @@ void WebKernel::handleClients()
}
void WebKernel::dispatchRequest()
void WebKernel::dispatchRequest(HttpResponse& response)
{
HttpResponse response;
response.setHttpVersion(_request.getHttpVersion());
if (_initHandler != nullptr)
#ifdef DEBUG
Serial.print("Is init handler set? ");
#endif
if (_initHandler != nullptr) {
#ifdef DEBUG
Serial.println("Yes");
#endif
_initHandler(_request, response);
} else {
#ifdef DEBUG
Serial.println("No");
#endif
}
_dispatcher.handle(_request, response);
response.send(_client);
if (_terminateHandler != nullptr)

View File

@ -69,7 +69,7 @@ class WebKernel
WebKernelState _state;
unsigned long int _stateChange;
void dispatchRequest();
void dispatchRequest(HttpResponse& response);
void (*_initHandler)(HttpRequest&, HttpResponse&);
void (*_terminateHandler)(const HttpRequest&, const HttpResponse&);