diff --git a/src/client.cpp b/src/client.cpp index 0ab361f..d4b1516 100644 --- a/src/client.cpp +++ b/src/client.cpp @@ -221,6 +221,14 @@ int websocket_handler(Socket *socket, stds *pipes) { if (ret < 0) { throw (char *) strerror(errno); } + + int c = fgetc(pipes->stdout); + if (c == -1) { + socket->receive(pipes->stdin); + } else { + ungetc(c, pipes->stdout); + socket->send(pipes->stdout, -1); + } } } diff --git a/src/network/Socket.h b/src/network/Socket.h index 645b2fa..11ed472 100644 --- a/src/network/Socket.h +++ b/src/network/Socket.h @@ -34,8 +34,6 @@ private: void setSocketOption(int, bool); - long send(void *buffer, int size); - long receive(void *buffer, int size); long peek(void *buffer, int size); @@ -65,6 +63,8 @@ public: void sslHandshake(string privkey, string fullchain); + long send(void *buffer, int size); + long send(string *str); long send(string str);