some little updates

master
Steffen Pohle 1 week ago
parent 1136480465
commit d93e377544

@ -1,3 +1,7 @@
2026-03-26:
- WebRequestBuffer::GetRequestCmdObj complete values where the pointer
is set.
2026-03-17: 2026-03-17:
- ssl: somehow ssl is not showing a closed TCP stream. - 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. if the tcp stream closes, we get do not get any error and no data.

@ -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;

@ -64,7 +64,7 @@ int WebRequestBuffer::AddBuffer (char *buffer, int len) {
int WebRequestBuffer::GetBuffer (char **dstptr, int *max) { int WebRequestBuffer::GetBuffer (char **dstptr, int *max) {
// check: valid pointers // check: valid pointers
if (dstptr == NULL || max == NULL) { 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__); __FILE__, __LINE__);
return -1; return -1;
} }
@ -156,15 +156,13 @@ int WebRequestBuffer::GetRequestCmdObj(std::string *cmd, std::string *obj, JSONP
std::string rq = GetRequest(); std::string rq = GetRequest();
int secslash = 0; 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); secslash = rq.find ('/', 1);
*cmd = rq.substr(1, secslash-1); if (cmd != NULL) *cmd = rq.substr(1, secslash-1);
*obj = rq.substr(secslash+1, std::string::npos); if (obj != NULL) *obj = rq.substr(secslash+1, std::string::npos);
if (buffer_pos_data > 0) (*jp).Set(buffer_ptr+buffer_pos_data); if (jp != NULL) {
else (*jp).Clear(); if (buffer_pos_data > 0) (*jp).Set(buffer_ptr+buffer_pos_data);
else (*jp).Clear();
}
return 1; return 1;
} }

Loading…
Cancel
Save