fixing little bugs. closing connection on error.

master
Steffen Pohle 2 years ago
parent 32f2c40c06
commit 32fec3f9a5

@ -1,3 +1,6 @@
2023-09-17:
- closing connection if an error occured.
2023-09-16: 2023-09-16:
- added message if a connection is closed. - added message if a connection is closed.

@ -404,7 +404,7 @@ gboolean cb_thread_network_data_add (gpointer data) {
} }
else { else {
text = text + " Registers: " + std::to_string (mbdata->regstart); text = text + " Registers: " + std::to_string (mbdata->regstart);
text = text + " Bytes: " + std::to_string (mbdata->regcnt); text = text + " Cnt: " + std::to_string (mbdata->regcnt);
} }
} }
text = text + "\n"; text = text + "\n";
@ -470,9 +470,6 @@ gboolean cb_thread_network_text_add (gpointer data) {
strftime (timetext, 255, "%H:%M:%S", curtime); strftime (timetext, 255, "%H:%M:%S", curtime);
//
// build hex dump
//
// //
// //
text =""; text ="";

@ -261,16 +261,22 @@ void ModbusSrv::ServerThread() {
char *txt = (char*)malloc(255); char *txt = (char*)malloc(255);
snprintf (txt, 255, "error on processing message\n"); snprintf (txt, 255, "error on processing message\n");
gdk_threads_add_idle(cb_thread_network_text_add, txt); gdk_threads_add_idle(cb_thread_network_text_add, txt);
delete clients[slot];
clients[slot] = NULL;
} }
} }
else if (mbindata->fc == 5 || mbindata->fc == 6) { else if (mbindata->fc == 5 || mbindata->fc == 6) {
if (WorkerAndEncodeWriteSingle(mbindata, mboutdata)) { if (WorkerAndEncodeWriteSingle(mbindata, mboutdata)) {
clients[slot]->Write(mboutdata->buffer, mboutdata->bufferlen); clients[slot]->Write(mboutdata->buffer, mboutdata->bufferlen);
delete clients[slot];
clients[slot] = NULL;
} }
else { else {
char *txt = (char*)malloc(255); char *txt = (char*)malloc(255);
snprintf (txt, 255, "error on processing message\n"); snprintf (txt, 255, "error on processing message\n");
gdk_threads_add_idle(cb_thread_network_text_add, txt); gdk_threads_add_idle(cb_thread_network_text_add, txt);
delete clients[slot];
clients[slot] = NULL;
} }
} }
else if (mbindata->fc == 15 || mbindata->fc == 16) { else if (mbindata->fc == 15 || mbindata->fc == 16) {
@ -281,6 +287,8 @@ void ModbusSrv::ServerThread() {
char *txt = (char*)malloc(255); char *txt = (char*)malloc(255);
snprintf (txt, 255, "error on processing message\n"); snprintf (txt, 255, "error on processing message\n");
gdk_threads_add_idle(cb_thread_network_text_add, txt); gdk_threads_add_idle(cb_thread_network_text_add, txt);
delete clients[slot];
clients[slot] = NULL;
} }
} }
gdk_threads_add_idle(cb_thread_network_data_add, mboutdata); gdk_threads_add_idle(cb_thread_network_data_add, mboutdata);

Loading…
Cancel
Save