diff options
author | June McEnroe <june@causal.agency> | 2019-10-23 16:47:15 -0400 |
---|---|---|
committer | June McEnroe <june@causal.agency> | 2019-10-23 16:47:15 -0400 |
commit | 9fcd81df89c2736e405f4dbb9bf97fe904818c7f (patch) | |
tree | 6e20d6b1b366a39d48faf328d1b1b3e9c19dc04b /server.c | |
parent | Set NOSIGPIPE on server connection (diff) | |
download | pounce-9fcd81df89c2736e405f4dbb9bf97fe904818c7f.tar.gz pounce-9fcd81df89c2736e405f4dbb9bf97fe904818c7f.zip |
Add verbose flag
Diffstat (limited to '')
-rw-r--r-- | server.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/server.c b/server.c index 72d668a..5cb7776 100644 --- a/server.c +++ b/server.c @@ -14,6 +14,7 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ +#include <assert.h> #include <err.h> #include <netdb.h> #include <netinet/in.h> @@ -80,6 +81,7 @@ int serverConnect(const char *host, const char *port) { } void serverSend(const char *ptr, size_t len) { + if (verbose) fprintf(stderr, "\x1B[31m%.*s\x1B[m", (int)len, ptr); while (len) { ssize_t ret = tls_write(client, ptr, len); if (ret == TLS_WANT_POLLIN || ret == TLS_WANT_POLLOUT) continue; @@ -90,14 +92,13 @@ void serverSend(const char *ptr, size_t len) { } static void format(const char *format, ...) { - char *buf; + char buf[513]; va_list ap; va_start(ap, format); - int len = vasprintf(&buf, format, ap); + int len = vsnprintf(buf, sizeof(buf), format, ap); va_end(ap); - if (!buf) err(EX_OSERR, "vasprintf"); + assert(len > 0 && (size_t)len < sizeof(buf)); serverSend(buf, len); - free(buf); } static const char Base64[64] = { @@ -177,8 +178,11 @@ void serverRecv(void) { crlf = memmem(line, &buf[len] - line, "\r\n", 2); if (!crlf) break; crlf[0] = '\0'; + + if (verbose) fprintf(stderr, "\x1B[32m%s\x1B[m\n", line); // TODO: Add line to ring if stateReady(). stateParse(line); + line = crlf + 2; } len -= line - buf; |