mirror of
https://github.com/warmcat/libwebsockets.git
synced 2025-03-09 00:00:04 +01:00
Avoid deflate of small packets.
This commit is contained in:
parent
2605ffe277
commit
01d0256b42
1 changed files with 16 additions and 10 deletions
|
@ -7,6 +7,9 @@
|
|||
#define LWS_ZLIB_WINDOW_BITS 15
|
||||
#define LWS_ZLIB_MEMLEVEL 8
|
||||
|
||||
#define MIN_SIZE_TO_DEFLATE 4
|
||||
|
||||
|
||||
int lws_extension_callback_deflate_frame(
|
||||
struct libwebsocket_context *context,
|
||||
struct libwebsocket_extension *ext,
|
||||
|
@ -157,12 +160,11 @@ int lws_extension_callback_deflate_frame(
|
|||
conn->buf_in_length *= 2;
|
||||
new_buf = (unsigned char *)
|
||||
malloc(LWS_SEND_BUFFER_PRE_PADDING +
|
||||
conn->buf_in_length +
|
||||
LWS_SEND_BUFFER_POST_PADDING);
|
||||
conn->buf_in_length +
|
||||
LWS_SEND_BUFFER_POST_PADDING);
|
||||
memcpy(new_buf + LWS_SEND_BUFFER_PRE_PADDING,
|
||||
conn->buf_in +
|
||||
LWS_SEND_BUFFER_PRE_PADDING,
|
||||
len_so_far);
|
||||
conn->buf_in + LWS_SEND_BUFFER_PRE_PADDING,
|
||||
len_so_far);
|
||||
free(conn->buf_in);
|
||||
conn->buf_in = new_buf;
|
||||
conn->zs_in.next_out = (new_buf +
|
||||
|
@ -184,8 +186,13 @@ int lws_extension_callback_deflate_frame(
|
|||
/*
|
||||
* deflate the outgoing payload
|
||||
*/
|
||||
current_payload = eff_buf->token_len;
|
||||
|
||||
if (current_payload < MIN_SIZE_TO_DEFLATE)
|
||||
return 0;
|
||||
|
||||
conn->zs_out.next_in = (unsigned char *)eff_buf->token;
|
||||
conn->zs_out.avail_in = eff_buf->token_len;
|
||||
conn->zs_out.avail_in = current_payload;
|
||||
|
||||
conn->zs_out.next_out = conn->buf_out + LWS_SEND_BUFFER_PRE_PADDING;
|
||||
conn->zs_out.avail_out = conn->buf_out_length;
|
||||
|
@ -211,11 +218,10 @@ int lws_extension_callback_deflate_frame(
|
|||
new_buf = (unsigned char *)
|
||||
malloc(LWS_SEND_BUFFER_PRE_PADDING +
|
||||
conn->buf_out_length +
|
||||
LWS_SEND_BUFFER_POST_PADDING);
|
||||
LWS_SEND_BUFFER_POST_PADDING);
|
||||
memcpy(new_buf + LWS_SEND_BUFFER_PRE_PADDING,
|
||||
conn->buf_out +
|
||||
LWS_SEND_BUFFER_PRE_PADDING,
|
||||
len_so_far);
|
||||
conn->buf_out + LWS_SEND_BUFFER_PRE_PADDING,
|
||||
len_so_far);
|
||||
free(conn->buf_out);
|
||||
conn->buf_out = new_buf;
|
||||
conn->zs_out.next_out = (new_buf +
|
||||
|
|
Loading…
Add table
Reference in a new issue