From e60aa0c5779bce199020236c0ac3a4beace571cb Mon Sep 17 00:00:00 2001 From: cbdev Date: Thu, 20 Jun 2019 08:19:29 +0200 Subject: Implement additional framing functions (Fixes #3) --- websocksy.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'websocksy.c') diff --git a/websocksy.c b/websocksy.c index 33ee794..c2f0631 100644 --- a/websocksy.c +++ b/websocksy.c @@ -23,6 +23,7 @@ /* TODO * - TLS * - pings + * - continuation */ /* Main loop condition, to be set from signal handler */ @@ -240,9 +241,11 @@ static int ws_peer_data(websocket* ws){ fprintf(stderr, "Overrun by framing function, have %lu + %lu bytes, framed %lu\n", ws->peer_buffer_offset, bytes_read, bytes_framed); return 0; } - //send the indicated n bytes to the websocket peer - if(ws_send_frame(ws, opcode, ws->peer_buffer, bytes_framed)){ - return 1; + if(opcode != ws_frame_discard){ + //send the indicated n bytes to the websocket peer + if(ws_send_frame(ws, opcode, ws->peer_buffer, bytes_framed)){ + return 1; + } } //copy back memmove(ws->peer_buffer, ws->peer_buffer + bytes_framed, (ws->peer_buffer_offset + bytes_read) - bytes_framed); -- cgit v1.2.3