|
|
|
@ -30,7 +30,6 @@ WebServerClient::~WebServerClient () {
|
|
|
|
/// @param _ssl_cert
|
|
|
|
/// @param _ssl_cert
|
|
|
|
/// @return
|
|
|
|
/// @return
|
|
|
|
int WebServerClient::Accept (TCP *socket, std::string _ssl_key, std::string _ssl_cert) {
|
|
|
|
int WebServerClient::Accept (TCP *socket, std::string _ssl_key, std::string _ssl_cert) {
|
|
|
|
debug ("");
|
|
|
|
|
|
|
|
if (ssl) delete ssl;
|
|
|
|
if (ssl) delete ssl;
|
|
|
|
ssl = NULL;
|
|
|
|
ssl = NULL;
|
|
|
|
if (tcp) delete tcp;
|
|
|
|
if (tcp) delete tcp;
|
|
|
|
@ -52,7 +51,6 @@ int WebServerClient::Accept (TCP *socket, std::string _ssl_key, std::string _ssl
|
|
|
|
/// @param socket
|
|
|
|
/// @param socket
|
|
|
|
/// @return
|
|
|
|
/// @return
|
|
|
|
int WebServerClient::Accept (TCP *socket) {
|
|
|
|
int WebServerClient::Accept (TCP *socket) {
|
|
|
|
debug ("");
|
|
|
|
|
|
|
|
if (ssl) delete ssl;
|
|
|
|
if (ssl) delete ssl;
|
|
|
|
ssl = NULL;
|
|
|
|
ssl = NULL;
|
|
|
|
if (tcp) delete tcp;
|
|
|
|
if (tcp) delete tcp;
|
|
|
|
@ -76,7 +74,6 @@ WebRequestBuffer *WebServerClient::Loop () {
|
|
|
|
else {
|
|
|
|
else {
|
|
|
|
len = tcp->ReadTimeout(buffer, WEB_READ_BUFFER_SIZE, 20);
|
|
|
|
len = tcp->ReadTimeout(buffer, WEB_READ_BUFFER_SIZE, 20);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (len != 0) debug ("len: %d", len);
|
|
|
|
|
|
|
|
if (len < 0) return NULL;
|
|
|
|
if (len < 0) return NULL;
|
|
|
|
if (len == 0) return &ReqBuffer;
|
|
|
|
if (len == 0) return &ReqBuffer;
|
|
|
|
ReqBuffer.AddBuffer (buffer, len);
|
|
|
|
ReqBuffer.AddBuffer (buffer, len);
|
|
|
|
@ -453,7 +450,6 @@ int WebServer::Loop() {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (tcpclient) {
|
|
|
|
if (tcpclient) {
|
|
|
|
debug ("new connection ssl_enabled:%d", ssl_enabled);
|
|
|
|
|
|
|
|
if (webclients.size() > conf_maxclients) {
|
|
|
|
if (webclients.size() > conf_maxclients) {
|
|
|
|
printf ("max connections reached. closing connection.\n");
|
|
|
|
printf ("max connections reached. closing connection.\n");
|
|
|
|
tcpclient->Close();
|
|
|
|
tcpclient->Close();
|
|
|
|
@ -484,11 +480,8 @@ int WebServer::Loop() {
|
|
|
|
|
|
|
|
|
|
|
|
reqbuffer = webclient->Loop();
|
|
|
|
reqbuffer = webclient->Loop();
|
|
|
|
if (reqbuffer == NULL) {
|
|
|
|
if (reqbuffer == NULL) {
|
|
|
|
debug ("remove client");
|
|
|
|
|
|
|
|
// error on loop, remove and delete webclient.
|
|
|
|
// error on loop, remove and delete webclient.
|
|
|
|
debug ("count webclients:%d", webclients.size());
|
|
|
|
|
|
|
|
webclients.remove(webclient);
|
|
|
|
webclients.remove(webclient);
|
|
|
|
debug ("count webclients:%d", webclients.size());
|
|
|
|
|
|
|
|
delete webclient;
|
|
|
|
delete webclient;
|
|
|
|
wci = webclients.begin();
|
|
|
|
wci = webclients.begin();
|
|
|
|
if (wci == webclients.end()) break;
|
|
|
|
if (wci == webclients.end()) break;
|
|
|
|
|