fix(dbms): put EOT char in the end of request/response

This commit is contained in:
Masahiko AMANO 2023-01-26 17:29:01 +03:00
parent 23aae2c3b1
commit 58868ff681
3 changed files with 7 additions and 2 deletions

View File

@ -9,6 +9,9 @@
extern "C" { extern "C" {
#endif #endif
// ASCII End Of Transmission code
#define EOT 4
// TDBMS request codes // TDBMS request codes
enum TRC { enum TRC {
trc_db_stats = 0b0, trc_db_stats = 0b0,

View File

@ -57,6 +57,7 @@ char *tdb_query(int socket_fd, const char *db_name, char request_code, const cha
buffer += nwrite; buffer += nwrite;
req_size -= nwrite; req_size -= nwrite;
if (req_size == 0) { if (req_size == 0) {
nwrite = write(socket_fd, "\4", 1);
break; break;
} }
} }
@ -75,7 +76,7 @@ char *tdb_query(int socket_fd, const char *db_name, char request_code, const cha
} }
memcpy(response + offset, buffer, nread); memcpy(response + offset, buffer, nread);
offset += nread; offset += nread;
if (response[offset - 1] == 0) { if (response[offset - 1] == EOT) {
break; break;
} }
} }

View File

@ -836,7 +836,7 @@ void *client_thread(void *arg) {
} }
memcpy(request + offset, buffer, nread); memcpy(request + offset, buffer, nread);
offset += nread; offset += nread;
if (request[offset - 1] == 0) { if (request[offset - 1] == EOT) {
break; break;
} }
} }
@ -860,6 +860,7 @@ void *client_thread(void *arg) {
buf += nwrite; buf += nwrite;
resp_size -= nwrite; resp_size -= nwrite;
if (resp_size == 0) { if (resp_size == 0) {
nwrite = write(client_fd, "\4", 1);
break; break;
} }
} }