From d93e3775444a796010474f6d606fb94215b7d3bc Mon Sep 17 00:00:00 2001 From: Steffen Pohle Date: Fri, 3 Apr 2026 12:10:42 +0200 Subject: [PATCH] some little updates --- Changelog | 4 ++++ webserver.cc | 7 ------- webutils.cc | 16 +++++++--------- 3 files changed, 11 insertions(+), 16 deletions(-) diff --git a/Changelog b/Changelog index c309d6e..1951779 100644 --- a/Changelog +++ b/Changelog @@ -1,3 +1,7 @@ +2026-03-26: +- WebRequestBuffer::GetRequestCmdObj complete values where the pointer + is set. + 2026-03-17: - ssl: somehow ssl is not showing a closed TCP stream. if the tcp stream closes, we get do not get any error and no data. diff --git a/webserver.cc b/webserver.cc index cf58ba0..36c7127 100644 --- a/webserver.cc +++ b/webserver.cc @@ -30,7 +30,6 @@ WebServerClient::~WebServerClient () { /// @param _ssl_cert /// @return int WebServerClient::Accept (TCP *socket, std::string _ssl_key, std::string _ssl_cert) { - debug (""); if (ssl) delete ssl; ssl = NULL; if (tcp) delete tcp; @@ -52,7 +51,6 @@ int WebServerClient::Accept (TCP *socket, std::string _ssl_key, std::string _ssl /// @param socket /// @return int WebServerClient::Accept (TCP *socket) { - debug (""); if (ssl) delete ssl; ssl = NULL; if (tcp) delete tcp; @@ -76,7 +74,6 @@ WebRequestBuffer *WebServerClient::Loop () { else { 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 &ReqBuffer; ReqBuffer.AddBuffer (buffer, len); @@ -453,7 +450,6 @@ int WebServer::Loop() { } if (tcpclient) { - debug ("new connection ssl_enabled:%d", ssl_enabled); if (webclients.size() > conf_maxclients) { printf ("max connections reached. closing connection.\n"); tcpclient->Close(); @@ -484,11 +480,8 @@ int WebServer::Loop() { reqbuffer = webclient->Loop(); if (reqbuffer == NULL) { - debug ("remove client"); // error on loop, remove and delete webclient. - debug ("count webclients:%d", webclients.size()); webclients.remove(webclient); - debug ("count webclients:%d", webclients.size()); delete webclient; wci = webclients.begin(); if (wci == webclients.end()) break; diff --git a/webutils.cc b/webutils.cc index 964908d..67c24db 100644 --- a/webutils.cc +++ b/webutils.cc @@ -64,7 +64,7 @@ int WebRequestBuffer::AddBuffer (char *buffer, int len) { int WebRequestBuffer::GetBuffer (char **dstptr, int *max) { // check: valid pointers if (dstptr == NULL || max == NULL) { - fprintf (stderr, "%s:%d not pointer to buffer or not pointer to a lenght set\n", + fprintf (stderr, "%s:%d no pointer to buffer or no pointer to a lenght set\n", __FILE__, __LINE__); return -1; } @@ -156,15 +156,13 @@ int WebRequestBuffer::GetRequestCmdObj(std::string *cmd, std::string *obj, JSONP std::string rq = GetRequest(); int secslash = 0; - if (cmd == NULL || obj == NULL || jp == NULL) - errorexit ("Fatal Error cmd:%p obj:%p jp:%p none of these should be NULL\n", - cmd, obj, jp); - secslash = rq.find ('/', 1); - *cmd = rq.substr(1, secslash-1); - *obj = rq.substr(secslash+1, std::string::npos); - if (buffer_pos_data > 0) (*jp).Set(buffer_ptr+buffer_pos_data); - else (*jp).Clear(); + if (cmd != NULL) *cmd = rq.substr(1, secslash-1); + if (obj != NULL) *obj = rq.substr(secslash+1, std::string::npos); + if (jp != NULL) { + if (buffer_pos_data > 0) (*jp).Set(buffer_ptr+buffer_pos_data); + else (*jp).Clear(); + } return 1; }