added some debugging to webkernel and always yield()

feature/UrlUtils
Kenneth Barbour 2018-03-20 18:33:34 -04:00 committed by Kenneth Barbour
parent d1f99c069c
commit 3b38fe1ae5
2 changed files with 12 additions and 1 deletions

View File

@ -9,6 +9,9 @@ void WebKernel::handleClients()
_client = _server.available();
if (!_client) return;
#ifdef DEBUG
Serial.println("New client");
#endif
_request = HttpRequest();
_parser.reset();
_state = S_RECEIVING;
@ -17,6 +20,9 @@ void WebKernel::handleClients()
if (millis() - _stateChange >= WEBKERNEL_MAX_WAIT) {
keepClient = false;
#ifdef DEBUG
Serial.println("Time limit reached. Client will be disconnected");
#endif
} else if (_client.connected()) {
switch (_state) {
case S_IDLE:
@ -34,6 +40,7 @@ void WebKernel::handleClients()
_dispatcher.handle(_request, response);
response.headers.set("Connection","close");
_client.print(response);
keepClient = false;
break;
}
} else {
@ -41,12 +48,15 @@ void WebKernel::handleClients()
}
if (!keepClient) {
#ifdef DEBUG
Serial.println("Closing connection to client");
#endif
_client.stop();
_state = S_IDLE;
_resp_buffer.flush();
}
if (shouldYield)
// if (shouldYield)
yield();
}

View File

@ -1,6 +1,7 @@
#pragma once
#include "Arduino.h"
#include "WiFiServer.h"
#include "WiFiClient.h"
#include "RequestParser.h"
#include "RequestRouter.h"
#include "RouteDispatcher.h"