2016-01-11 11:34:01 +08:00
|
|
|
|
2019-07-03 19:46:23 +01:00
|
|
|
#if defined(LWS_WITH_MINIZ)
|
|
|
|
#include <miniz.h>
|
|
|
|
#else
|
2016-01-11 11:34:01 +08:00
|
|
|
#include <zlib.h>
|
2019-07-03 19:46:23 +01:00
|
|
|
#endif
|
2016-01-11 11:34:01 +08:00
|
|
|
|
|
|
|
#define DEFLATE_FRAME_COMPRESSION_LEVEL_SERVER 1
|
|
|
|
#define DEFLATE_FRAME_COMPRESSION_LEVEL_CLIENT Z_DEFAULT_COMPRESSION
|
|
|
|
|
|
|
|
enum arg_indexes {
|
|
|
|
PMD_SERVER_NO_CONTEXT_TAKEOVER,
|
|
|
|
PMD_CLIENT_NO_CONTEXT_TAKEOVER,
|
|
|
|
PMD_SERVER_MAX_WINDOW_BITS,
|
|
|
|
PMD_CLIENT_MAX_WINDOW_BITS,
|
|
|
|
PMD_RX_BUF_PWR2,
|
|
|
|
PMD_TX_BUF_PWR2,
|
|
|
|
PMD_COMP_LEVEL,
|
|
|
|
PMD_MEM_LEVEL,
|
|
|
|
|
|
|
|
PMD_ARG_COUNT
|
|
|
|
};
|
|
|
|
|
|
|
|
struct lws_ext_pm_deflate_priv {
|
|
|
|
z_stream rx;
|
|
|
|
z_stream tx;
|
|
|
|
|
|
|
|
unsigned char *buf_rx_inflated; /* RX inflated output buffer */
|
|
|
|
unsigned char *buf_tx_deflated; /* TX deflated output buffer */
|
|
|
|
|
2019-05-04 13:19:12 +01:00
|
|
|
unsigned char *buf_tx_holding;
|
|
|
|
|
2016-01-11 11:34:01 +08:00
|
|
|
size_t count_rx_between_fin;
|
2019-05-04 13:19:12 +01:00
|
|
|
size_t count_tx_between_fin;
|
|
|
|
|
|
|
|
size_t len_tx_holding;
|
2016-01-11 11:34:01 +08:00
|
|
|
|
|
|
|
unsigned char args[PMD_ARG_COUNT];
|
2019-05-04 13:19:12 +01:00
|
|
|
|
|
|
|
unsigned char tx_first_frame_type;
|
2016-01-11 11:34:01 +08:00
|
|
|
|
|
|
|
unsigned char tx_init:1;
|
|
|
|
unsigned char rx_init:1;
|
|
|
|
unsigned char compressed_out:1;
|
|
|
|
};
|
|
|
|
|