php-internal-docs 8.4.8
Unofficial docs for php/php-src
Loading...
Searching...
No Matches
zip.c File Reference

Go to the source code of this file.

Data Structures

struct  _phar_zip_pass
 

Macros

#define PHAR_GET_16(var)
 
#define PHAR_GET_32(var)
 
#define PHAR_SET_32(var, value)
 
#define PHAR_SET_16(var, value)
 
#define PHAR_ZIP_FAIL_FREE(errmsg, save)
 
#define PHAR_ZIP_FAIL(errmsg)
 

Functions

int phar_parse_zipfile (php_stream *fp, char *fname, size_t fname_len, char *alias, size_t alias_len, phar_archive_data **pphar, char **error)
 
int phar_open_or_create_zip (char *fname, size_t fname_len, char *alias, size_t alias_len, int is_data, uint32_t options, phar_archive_data **pphar, char **error)
 
void phar_zip_flush (phar_archive_data *phar, zend_string *user_stub, bool is_default_stub, char **error)
 

Macro Definition Documentation

◆ PHAR_GET_16

#define PHAR_GET_16 ( var)
Value:
((uint16_t)((((uint16_t)var[0]) & 0xff) | \
(((uint16_t)var[1]) & 0xff) << 8))

Definition at line 23 of file zip.c.

◆ PHAR_GET_32

#define PHAR_GET_32 ( var)
Value:
((uint32_t)((((uint32_t)var[0]) & 0xff) | \
(((uint32_t)var[1]) & 0xff) << 8 | \
(((uint32_t)var[2]) & 0xff) << 16 | \
(((uint32_t)var[3]) & 0xff) << 24))

Definition at line 25 of file zip.c.

◆ PHAR_SET_16

#define PHAR_SET_16 ( var,
value )
Value:
phar_write_16(var, (uint16_t) (value));
value

Definition at line 42 of file zip.c.

◆ PHAR_SET_32

#define PHAR_SET_32 ( var,
value )
Value:
phar_write_32(var, (uint32_t) (value));

Definition at line 41 of file zip.c.

◆ PHAR_ZIP_FAIL

#define PHAR_ZIP_FAIL ( errmsg)
Value:
zend_hash_destroy(&mydata->manifest); \
HT_INVALIDATE(&mydata->manifest); \
zend_hash_destroy(&mydata->mounted_dirs); \
HT_INVALIDATE(&mydata->mounted_dirs); \
zend_hash_destroy(&mydata->virtual_dirs); \
HT_INVALIDATE(&mydata->virtual_dirs); \
php_stream_close(fp); \
phar_metadata_tracker_free(&mydata->metadata_tracker, mydata->is_persistent); \
if (mydata->signature) { \
efree(mydata->signature); \
} \
if (error) { \
spprintf(error, 4096, "phar error: %s in zip-based phar \"%s\"", errmsg, mydata->fname); \
} \
pefree(mydata->fname, mydata->is_persistent); \
if (mydata->alias) { \
pefree(mydata->alias, mydata->is_persistent); \
} \
pefree(mydata, mydata->is_persistent); \
return FAILURE;
error($message)
Definition ext_skel.php:22
ZEND_API void ZEND_FASTCALL zend_hash_destroy(HashTable *ht)
Definition zend_hash.c:1727
@ FAILURE
Definition zend_types.h:61

◆ PHAR_ZIP_FAIL_FREE

#define PHAR_ZIP_FAIL_FREE ( errmsg,
save )
Value:
zend_hash_destroy(&mydata->manifest); \
HT_INVALIDATE(&mydata->manifest); \
zend_hash_destroy(&mydata->mounted_dirs); \
HT_INVALIDATE(&mydata->mounted_dirs); \
zend_hash_destroy(&mydata->virtual_dirs); \
HT_INVALIDATE(&mydata->virtual_dirs); \
php_stream_close(fp); \
phar_metadata_tracker_free(&mydata->metadata_tracker, mydata->is_persistent); \
if (mydata->signature) { \
efree(mydata->signature); \
} \
if (error) { \
spprintf(error, 4096, "phar error: %s in zip-based phar \"%s\"", errmsg, mydata->fname); \
} \
pefree(mydata->fname, mydata->is_persistent); \
if (mydata->alias) { \
pefree(mydata->alias, mydata->is_persistent); \
} \
pefree(mydata, mydata->is_persistent); \
efree(save); \
return FAILURE;

Function Documentation

◆ phar_open_or_create_zip()

int phar_open_or_create_zip ( char * fname,
size_t fname_len,
char * alias,
size_t alias_len,
int is_data,
uint32_t options,
phar_archive_data ** pphar,
char ** error )

Create or open a zip-based phar for writing

Definition at line 827 of file zip.c.

◆ phar_parse_zipfile()

int phar_parse_zipfile ( php_stream * fp,
char * fname,
size_t fname_len,
char * alias,
size_t alias_len,
phar_archive_data ** pphar,
char ** error )

Does not check for a previously opened phar in the cache.

Parse a new one and add it to the cache, returning either SUCCESS or FAILURE, and setting pphar to the pointer to the manifest entry

This is used by phar_open_from_fp to process a zip-based phar, but can be called directly.

Definition at line 229 of file zip.c.

◆ phar_zip_flush()

void phar_zip_flush ( phar_archive_data * phar,
zend_string * user_stub,
bool is_default_stub,
char ** error )

Definition at line 1254 of file zip.c.