Lines Matching refs:priv

167 lws_fops_zip_scan(lws_fops_zip_t priv, const char *name, int len)
173 if (lws_vfs_file_seek_end(priv->zip_fop_fd, -ZE_DIRECTORY_LENGTH) < 0)
176 if (lws_vfs_file_read(priv->zip_fop_fd, &amount, buf,
199 if (lws_vfs_file_seek_set(priv->zip_fop_fd,
204 priv->content_start = lws_vfs_tell(priv->zip_fop_fd);
206 if (lws_vfs_file_read(priv->zip_fop_fd, &amount, buf,
216 lwsl_debug("cstart 0x%lx\n", (unsigned long)priv->content_start);
218 priv->hdr.filename_len = get_u16(buf + ZC_FILE_NAME_LENGTH);
219 priv->hdr.extra = get_u16(buf + ZC_EXTRA_FIELD_LENGTH);
220 priv->hdr.filename_start = lws_vfs_tell(priv->zip_fop_fd);
222 priv->hdr.method = get_u16(buf + ZC_COMPRESSION_METHOD);
223 priv->hdr.crc32 = get_u32(buf + ZC_CRC32);
224 priv->hdr.comp_size = get_u32(buf + ZC_COMPRESSED_SIZE);
225 priv->hdr.uncomp_size = get_u32(buf + ZC_UNCOMPRESSED_SIZE);
226 priv->hdr.offset = get_u32(buf + ZC_REL_OFFSET_LOCAL_HEADER);
227 priv->hdr.mod_time = get_u32(buf + ZC_LAST_MOD_FILE_TIME);
228 priv->hdr.file_com_len = get_u16(buf + ZC_FILE_COMMENT_LENGTH);
230 if (priv->hdr.filename_len != len)
236 if (priv->zip_fop_fd->fops->LWS_FOP_READ(priv->zip_fop_fd,
249 if (lws_vfs_file_seek_set(priv->zip_fop_fd, priv->hdr.offset) < 0)
251 if (priv->zip_fop_fd->fops->LWS_FOP_READ(priv->zip_fop_fd,
258 priv->content_start = priv->hdr.offset +
260 priv->hdr.filename_len +
264 (unsigned long)priv->content_start);
266 if (priv->content_start > priv->zip_fop_fd->len)
269 if (lws_vfs_file_seek_set(priv->zip_fop_fd,
270 (lws_fileofs_t)priv->content_start) < 0)
275 priv->exp_uncomp_pos = 0;
280 if (i && lws_vfs_file_seek_set(priv->zip_fop_fd,
281 (lws_fileofs_t)priv->content_start +
283 priv->hdr.filename_len +
284 priv->hdr.extra +
285 priv->hdr.file_com_len)) < 0)
293 lws_fops_zip_reset_inflate(lws_fops_zip_t priv)
295 if (priv->decompress)
296 inflateEnd(&priv->inflate);
298 priv->inflate.zalloc = Z_NULL;
299 priv->inflate.zfree = Z_NULL;
300 priv->inflate.opaque = Z_NULL;
301 priv->inflate.avail_in = 0;
302 priv->inflate.next_in = Z_NULL;
304 if (inflateInit2(&priv->inflate, -MAX_WBITS) != Z_OK) {
309 if (lws_vfs_file_seek_set(priv->zip_fop_fd, (lws_fileofs_t)priv->content_start) < 0)
312 priv->exp_uncomp_pos = 0;
322 lws_fops_zip_t priv;
332 priv = lws_zalloc(sizeof(*priv), "fops_zip priv");
333 if (!priv)
336 priv->fop_fd.fops = &fops_zip;
345 priv->zip_fop_fd = fops->LWS_FOP_OPEN(fops, rp, NULL, &local_flags);
346 if (!priv->zip_fop_fd) {
354 m = lws_fops_zip_scan(priv, vpath, (int)strlen(vpath));
361 priv->fop_fd.mod_time = priv->hdr.mod_time;
363 priv->fop_fd.flags = *flags;
383 if (priv->hdr.method == ZIP_COMPRESSION_METHOD_STORE) {
392 priv->fop_fd.len = priv->hdr.uncomp_size;
394 return &priv->fop_fd;
398 priv->hdr.method == ZIP_COMPRESSION_METHOD_DEFLATE) {
408 * The 8-byte trailer is prepared now and held in the priv.
413 priv->fop_fd.len = sizeof(hd) + priv->hdr.comp_size +
414 sizeof(priv->u);
417 uint8_t *p = priv->u.trailer8;
419 *p++ = (uint8_t)priv->hdr.crc32;
420 *p++ = (uint8_t)(priv->hdr.crc32 >> 8);
421 *p++ = (uint8_t)(priv->hdr.crc32 >> 16);
422 *p++ = (uint8_t)(priv->hdr.crc32 >> 24);
423 *p++ = (uint8_t)priv->hdr.uncomp_size;
424 *p++ = (uint8_t)(priv->hdr.uncomp_size >> 8);
425 *p++ = (uint8_t)(priv->hdr.uncomp_size >> 16);
426 *p = (uint8_t)(priv->hdr.uncomp_size >> 24);
428 priv->u.trailer32[0] = priv->hdr.crc32;
429 priv->u.trailer32[1] = priv->hdr.uncomp_size;
433 priv->fop_fd.flags = *flags;
434 priv->add_gzip_container = 1;
436 return &priv->fop_fd;
439 if (priv->hdr.method == ZIP_COMPRESSION_METHOD_DEFLATE) {
445 priv->fop_fd.len = priv->hdr.uncomp_size;
447 if (lws_fops_zip_reset_inflate(priv)) {
452 priv->decompress = 1;
454 return &priv->fop_fd;
460 priv->hdr.method);
463 lws_vfs_file_close(&priv->zip_fop_fd);
465 free(priv);
475 lws_fops_zip_t priv = fop_fd_to_priv(*fd);
477 if (priv->decompress)
478 inflateEnd(&priv->inflate);
480 lws_vfs_file_close(&priv->zip_fop_fd); /* close the gzip fop_fd */
482 free(priv);
500 lws_fops_zip_t priv = fop_fd_to_priv(fd);
504 if (priv->decompress) {
506 if (priv->exp_uncomp_pos != fd->pos) {
514 lws_fops_zip_reset_inflate(priv);
516 while (priv->exp_uncomp_pos != fd->pos) {
518 if (rlen > fd->pos - priv->exp_uncomp_pos)
519 rlen = fd->pos - priv->exp_uncomp_pos;
526 priv->inflate.avail_out = (unsigned int)len;
527 priv->inflate.next_out = buf;
530 if (!priv->inflate.avail_in) {
531 rlen = sizeof(priv->rbuf);
532 if (rlen > eff_size(priv) - (cur - priv->content_start))
533 rlen = eff_size(priv) - (cur - priv->content_start);
535 if (priv->zip_fop_fd->fops->LWS_FOP_READ(
536 priv->zip_fop_fd, &ramount, priv->rbuf,
542 priv->inflate.avail_in = (unsigned int)ramount;
543 priv->inflate.next_in = priv->rbuf;
546 ret = inflate(&priv->inflate, Z_NO_FLUSH);
560 if (!priv->inflate.avail_in && priv->inflate.avail_out &&
561 cur != priv->content_start + priv->hdr.comp_size)
564 *amount = len - priv->inflate.avail_out;
566 priv->exp_uncomp_pos += *amount;
572 if (priv->add_gzip_container) {
594 fd->pos < priv->hdr.comp_size + sizeof(hd)) {
596 rlen = priv->hdr.comp_size - (priv->zip_fop_fd->pos -
597 priv->content_start);
602 priv->zip_fop_fd->pos < (priv->hdr.comp_size +
603 priv->content_start)) {
604 if (lws_vfs_file_read(priv->zip_fop_fd,
616 if (len && fd->pos >= priv->hdr.comp_size + sizeof(hd) &&
617 fd->pos < priv->hdr.comp_size + sizeof(hd) +
618 sizeof(priv->u)) {
619 cur = fd->pos - priv->hdr.comp_size - sizeof(hd);
620 rlen = sizeof(priv->u) - cur;
624 memcpy(buf, priv->u.trailer8 + cur, (size_t)rlen);
635 if (len > eff_size(priv) - cur)
636 len = eff_size(priv) - cur;
638 if (priv->zip_fop_fd->fops->LWS_FOP_READ(priv->zip_fop_fd,