diff options
author | cbdev <cb@cbcdn.com> | 2019-06-20 08:19:29 +0200 |
---|---|---|
committer | cbdev <cb@cbcdn.com> | 2019-06-20 08:19:29 +0200 |
commit | e60aa0c5779bce199020236c0ac3a4beace571cb (patch) | |
tree | 52b5df2816b944ceeeb6bb2762d6e7bd5cea457b /websocksy.c | |
parent | 303e464579e2fc9961d4d9f4841e916f9aa8963f (diff) | |
download | websocksy-e60aa0c5779bce199020236c0ac3a4beace571cb.tar.gz websocksy-e60aa0c5779bce199020236c0ac3a4beace571cb.tar.bz2 websocksy-e60aa0c5779bce199020236c0ac3a4beace571cb.zip |
Implement additional framing functions (Fixes #3)
Diffstat (limited to 'websocksy.c')
-rw-r--r-- | websocksy.c | 9 |
1 files changed, 6 insertions, 3 deletions
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); |