From 941d669fcb250fff23d13d199bdf16f802eae1a0 Mon Sep 17 00:00:00 2001 From: Lorenz Stechauner Date: Wed, 2 Dec 2020 19:26:01 +0100 Subject: [PATCH] Bit more debugging --- src/client.cpp | 2 +- src/network/Socket.cpp | 10 +++++++--- src/network/Socket.h | 4 ++-- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/client.cpp b/src/client.cpp index 982af27..35a0a02 100644 --- a/src/client.cpp +++ b/src/client.cpp @@ -224,7 +224,7 @@ int websocket_handler(Socket *socket, stds *pipes) { int c = fgetc(pipes->stdout); if (c == -1) { - socket->receive(pipes->stdin); + long rec = socket->receive(pipes->stdin); } else { ungetc(c, pipes->stdout); socket->send(pipes->stdout); diff --git a/src/network/Socket.cpp b/src/network/Socket.cpp index d0f4f27..05abdf4 100644 --- a/src/network/Socket.cpp +++ b/src/network/Socket.cpp @@ -383,16 +383,19 @@ string Socket::receive(const char *until, unsigned long strlen) { return receive(string(until, strlen)); } -void Socket::receive(FILE *file) { +long Socket::receive(FILE *file) { char buffer[CPPNET_CHUNK]; - long len = 0; + long len; + long rec = 0; do { len = receive((void*) buffer, CPPNET_CHUNK); fwrite(buffer, 1, CPPNET_CHUNK, file); + rec += len; } while (len > 0 && len == CPPNET_CHUNK); + return len; } -void Socket::receive(FILE *file, long size) { +long Socket::receive(FILE *file, long size) { char buffer[CPPNET_CHUNK]; long len = 0; long rec = 0; @@ -401,6 +404,7 @@ void Socket::receive(FILE *file, long size) { fwrite(buffer, 1, len, file); rec += len; } + return rec; } string Socket::receiveLine() { diff --git a/src/network/Socket.h b/src/network/Socket.h index 0752c00..80cf50a 100644 --- a/src/network/Socket.h +++ b/src/network/Socket.h @@ -85,7 +85,7 @@ public: string receive(const char *until); - void receive(FILE *file); + long receive(FILE *file); string receiveLine(); @@ -156,7 +156,7 @@ public: static long select(list read, list write); - void receive(FILE *file, long size); + long receive(FILE *file, long size); }; Socket operator<<(Socket sock, const char *str);