Lines Matching defs:priv

49 				      struct lws_ext_pm_deflate_priv *priv)
63 if (extra < priv->args[PMD_RX_BUF_PWR2]) {
64 priv->args[PMD_RX_BUF_PWR2] = (unsigned char)extra;
78 struct lws_ext_pm_deflate_priv *priv =
110 priv->args[oa->option_index] = (unsigned char)atoi(oa->start);
112 priv->args[oa->option_index] = 1;
114 if (priv->args[PMD_CLIENT_MAX_WINDOW_BITS] == 8)
115 priv->args[PMD_CLIENT_MAX_WINDOW_BITS] = 9;
117 lws_extension_pmdeflate_restrict_args(wsi, priv);
121 if (priv->args[PMD_SERVER_MAX_WINDOW_BITS] < 8 ||
122 priv->args[PMD_SERVER_MAX_WINDOW_BITS] > 15 ||
123 priv->args[PMD_CLIENT_MAX_WINDOW_BITS] < 8 ||
124 priv->args[PMD_CLIENT_MAX_WINDOW_BITS] > 15)
143 priv = lws_zalloc(sizeof(*priv), "pmd priv");
144 *((void **)user) = priv;
146 memset(priv, 0, sizeof(*priv));
159 priv->args[PMD_SERVER_NO_CONTEXT_TAKEOVER] = 0,
160 priv->args[PMD_CLIENT_NO_CONTEXT_TAKEOVER] = 0;
161 priv->args[PMD_SERVER_MAX_WINDOW_BITS] = 15;
162 priv->args[PMD_CLIENT_MAX_WINDOW_BITS] = 15;
166 priv->args[PMD_RX_BUF_PWR2] = 10; /* ie, 1024 */
167 priv->args[PMD_TX_BUF_PWR2] = 10; /* ie, 1024 */
168 priv->args[PMD_COMP_LEVEL] = 1;
169 priv->args[PMD_MEM_LEVEL] = 8;
171 lws_extension_pmdeflate_restrict_args(wsi, priv);
176 lws_free(priv->buf_rx_inflated);
177 lws_free(priv->buf_tx_deflated);
178 if (priv->rx_init)
179 (void)inflateEnd(&priv->rx);
180 if (priv->tx_init)
181 (void)deflateEnd(&priv->tx);
182 lws_free(priv);
192 pmdrx->eb_in.len, priv->rx.avail_in);
220 pmdrx->eb_in.len, priv->rx.avail_in, wsi->ws->final);
224 if (!priv->rx_init) {
225 if (inflateInit2(&priv->rx,
226 -priv->args[PMD_SERVER_MAX_WINDOW_BITS]) != Z_OK) {
230 priv->rx_init = 1;
231 if (!priv->buf_rx_inflated)
232 priv->buf_rx_inflated = lws_malloc(
234 (1 << priv->args[PMD_RX_BUF_PWR2])),
236 if (!priv->buf_rx_inflated) {
248 if (priv->rx.avail_in && pmdrx->eb_in.token &&
250 lwsl_wsi_warn(wsi, "priv->rx.avail_in %d while getting new in",
251 priv->rx.avail_in);
255 if (!priv->rx.avail_in && pmdrx->eb_in.token && pmdrx->eb_in.len) {
256 priv->rx.next_in = (unsigned char *)pmdrx->eb_in.token;
257 priv->rx.avail_in = (uInt)pmdrx->eb_in.len;
260 priv->rx.next_out = priv->buf_rx_inflated + LWS_PRE;
261 pmdrx->eb_out.token = priv->rx.next_out;
262 priv->rx.avail_out = (uInt)(1 << priv->args[PMD_RX_BUF_PWR2]);
275 if (!priv->rx.avail_in &&
282 priv->rx.next_in = trail;
283 priv->rx.avail_in = sizeof(trail);
291 if (!priv->rx.avail_in)
294 n = inflate(&priv->rx, was_fin ? Z_SYNC_FLUSH : Z_NO_FLUSH);
296 priv->rx.avail_in, priv->rx.avail_out, wsi->ws->final);
303 n, priv->rx.msg);
312 ((unsigned int)pmdrx->eb_in.len - (unsigned int)priv->rx.avail_in);
313 pmdrx->eb_in.len = (int)priv->rx.avail_in;
316 priv->rx.avail_in,
322 if (!priv->rx.avail_in &&
331 priv->rx.avail_out += 5;
335 priv->rx.next_in = trail;
336 priv->rx.avail_in = sizeof(trail);
337 n = inflate(&priv->rx, Z_SYNC_FLUSH);
339 n, priv->rx.avail_in, priv->rx.avail_out);
346 n, priv->rx.msg);
350 assert(priv->rx.avail_out);
353 pmdrx->eb_out.len = lws_ptr_diff(priv->rx.next_out,
355 priv->count_rx_between_fin = priv->count_rx_between_fin + (size_t)pmdrx->eb_out.len;
359 pmdrx->eb_out.len, priv->rx.avail_in,
360 (unsigned long)priv->count_rx_between_fin);
364 priv->count_rx_between_fin = 0;
365 if (priv->args[PMD_SERVER_NO_CONTEXT_TAKEOVER]) {
367 (void)inflateEnd(&priv->rx);
368 priv->rx_init = 0;
374 if (priv->rx.avail_in)
387 if (!priv->tx_init) {
388 n = deflateInit2(&priv->tx, priv->args[PMD_COMP_LEVEL],
390 -priv->args[PMD_SERVER_MAX_WINDOW_BITS +
392 priv->args[PMD_MEM_LEVEL],
398 priv->tx_init = 1;
401 if (!priv->buf_tx_deflated)
402 priv->buf_tx_deflated = lws_malloc((unsigned int)(LWS_PRE + 7 + 5 +
403 (1 << priv->args[PMD_TX_BUF_PWR2])),
405 if (!priv->buf_tx_deflated) {
414 assert(!priv->tx.avail_in);
416 priv->count_tx_between_fin = priv->count_tx_between_fin + (size_t)pmdrx->eb_in.len;
420 (int)priv->count_tx_between_fin);
421 priv->tx.next_in = (unsigned char *)pmdrx->eb_in.token;
422 priv->tx.avail_in = (uInt)pmdrx->eb_in.len;
425 priv->tx.next_out = priv->buf_tx_deflated + LWS_PRE + 5;
426 pmdrx->eb_out.token = priv->tx.next_out;
427 priv->tx.avail_out = (uInt)(1 << priv->args[PMD_TX_BUF_PWR2]);
431 deflatePending(&priv->tx, &pen, &penbits);
434 if (!priv->tx.avail_in && (len & LWS_WRITE_NO_FIN)) {
448 n = deflate(&priv->tx, m);
454 pen = (!priv->tx.avail_out) && n != Z_STREAM_END;
460 priv->tx_first_frame_type = LWSWSOPC_TEXT_FRAME;
462 priv->tx_first_frame_type = LWSWSOPC_BINARY_FRAME;
464 pmdrx->eb_out.len = lws_ptr_diff(priv->tx.next_out,
479 priv->tx.next_out -= 4;
480 priv->tx.avail_out += 4;
481 priv->count_tx_between_fin = 0;
483 assert(priv->tx.next_out[0] == 0x00 &&
484 priv->tx.next_out[1] == 0x00 &&
485 priv->tx.next_out[2] == 0xff &&
486 priv->tx.next_out[3] == 0xff);
495 ((unsigned int)pmdrx->eb_in.len - (unsigned int)priv->tx.avail_in);
496 pmdrx->eb_in.len = (int)priv->tx.avail_in;
498 priv->compressed_out = 1;
499 pmdrx->eb_out.len = lws_ptr_diff(priv->tx.next_out,
515 if (!priv->compressed_out)
517 priv->compressed_out = 0;
524 if (priv->tx_first_frame_type & 0xf) {
526 ((unsigned char)priv->tx_first_frame_type & (unsigned char)0xf));
531 priv->tx_first_frame_type = 0;
545 priv->args[PMD_CLIENT_NO_CONTEXT_TAKEOVER]) {
547 (void)deflateEnd(&priv->tx);
548 priv->tx_init = 0;