]> granicus.if.org Git - php/commitdiff
[DOC]
authorGreg Beaver <cellog@php.net>
Wed, 7 May 2008 05:38:31 +0000 (05:38 +0000)
committerGreg Beaver <cellog@php.net>
Wed, 7 May 2008 05:38:31 +0000 (05:38 +0000)
remove phar.extract_list
remove Phar::getExtractList()

19 files changed:
ext/phar/dirstream.c
ext/phar/phar.c
ext/phar/phar_internal.h
ext/phar/phar_object.c
ext/phar/stream.c
ext/phar/tests/027.phpt
ext/phar/tests/dir.phpt
ext/phar/tests/extracted_001.phpt [deleted file]
ext/phar/tests/fopen_edgecases.phpt
ext/phar/tests/loadphar_plainmap.phpt [deleted file]
ext/phar/tests/mapphar_plainmap.phpt [deleted file]
ext/phar/tests/opendir.phpt
ext/phar/tests/phar_buildfromiterator10.phpt
ext/phar/tests/phar_isvalidpharfilename.phpt
ext/phar/tests/phpinfo_001.phpt
ext/phar/tests/phpinfo_002.phpt
ext/phar/tests/phpinfo_003.phpt
ext/phar/tests/phpinfo_004.phpt
ext/phar/tests/webphar_plainmap.phpt [deleted file]

index e7d2b7e1aabfbfba04ef5cda4de797cc4cbcb795..11088ead5b776ca3706cbc0d2b65876e22e5aad7 100644 (file)
@@ -289,7 +289,7 @@ php_stream *phar_wrapper_open_dir(php_stream_wrapper *wrapper, char *path, char
 {
        php_url *resource = NULL;
        php_stream *ret;
-       char *internal_file, *key, *error, *plain_map;
+       char *internal_file, *key, *error;
        uint keylen;
        ulong unused;
        phar_archive_data *phar;
@@ -321,16 +321,6 @@ php_stream *phar_wrapper_open_dir(php_stream_wrapper *wrapper, char *path, char
 
        host_len = strlen(resource->host);
        phar_request_initialize(TSRMLS_C);
-       if (zend_hash_find(&(PHAR_GLOBALS->phar_plain_map), resource->host, host_len+1, (void **)&plain_map) == SUCCESS) {
-               spprintf(&internal_file, 0, "%s%s", plain_map, resource->path);
-               ret = php_stream_opendir(internal_file, options, context);
-               if (!ret) {
-                       php_stream_wrapper_log_error(wrapper, options TSRMLS_CC, "phar error: file \"%s\" extracted from \"%s\" could not be opened", internal_file, resource->host);
-               }
-               php_url_free(resource);
-               efree(internal_file);
-               return ret;
-       }
 
        internal_file = resource->path + 1; /* strip leading "/" */
        if (FAILURE == phar_get_archive(&phar, resource->host, host_len, NULL, 0, &error TSRMLS_CC)) {
@@ -405,7 +395,6 @@ int phar_wrapper_mkdir(php_stream_wrapper *wrapper, char *url_from, int mode, in
        phar_archive_data *phar = NULL;
        char *error, *arch, *entry2;
        int arch_len, entry_len;
-       char *plain_map;
        php_url *resource = NULL;
        uint host_len;
 
@@ -443,11 +432,6 @@ int phar_wrapper_mkdir(php_stream_wrapper *wrapper, char *url_from, int mode, in
 
        host_len = strlen(resource->host);
        phar_request_initialize(TSRMLS_C);
-       if (zend_hash_find(&(PHAR_GLOBALS->phar_plain_map), resource->host, host_len+1, (void **)&plain_map) == SUCCESS) {
-               php_stream_wrapper_log_error(wrapper, options TSRMLS_CC, "phar error: directory \"%s\" cannot be created in phar \"%s\", phar is extracted in plain map", resource->path+1, resource->host);
-               php_url_free(resource);
-               return FAILURE;
-       }
 
        if (FAILURE == phar_get_archive(&phar, resource->host, host_len, NULL, 0, &error TSRMLS_CC)) {
                php_stream_wrapper_log_error(wrapper, options TSRMLS_CC, "phar error: cannot create directory \"%s\" in phar \"%s\", error retrieving phar information: %s", resource->path+1, resource->host, error);
@@ -530,7 +514,6 @@ int phar_wrapper_rmdir(php_stream_wrapper *wrapper, char *url, int options, php_
        phar_archive_data *phar = NULL;
        char *error, *arch, *entry2;
        int arch_len, entry_len;
-       char *plain_map;
        php_url *resource = NULL;
        uint host_len;
 
@@ -568,11 +551,6 @@ int phar_wrapper_rmdir(php_stream_wrapper *wrapper, char *url, int options, php_
 
        host_len = strlen(resource->host);
        phar_request_initialize(TSRMLS_C);
-       if (zend_hash_find(&(PHAR_GLOBALS->phar_plain_map), resource->host, host_len+1, (void **)&plain_map) == SUCCESS) {
-               php_stream_wrapper_log_error(wrapper, options TSRMLS_CC, "phar error: directory \"%s\" cannot be removed in phar \"%s\", phar is extracted in plain map", resource->path+1, resource->host);
-               php_url_free(resource);
-               return FAILURE;
-       }
 
        if (FAILURE == phar_get_archive(&phar, resource->host, host_len, NULL, 0, &error TSRMLS_CC)) {
                php_stream_wrapper_log_error(wrapper, options TSRMLS_CC, "phar error: cannot remove directory \"%s\" in phar \"%s\", error retrieving phar information: %s", resource->path+1, resource->host, error);
index 75c86853afc04ccfff66d2e138592647bc4f5439..d31bb71e6ed361fb5de552c9db33e77d4c24f98c 100644 (file)
@@ -94,103 +94,9 @@ ZEND_INI_MH(phar_ini_modify_handler) /* {{{ */
 }
 /* }}}*/
 
-static void phar_split_extract_list(TSRMLS_D)
-{
-       char *tmp = estrdup(PHAR_GLOBALS->extract_list);
-       char *key;
-       char *lasts;
-       char *q;
-       int keylen;
-
-       zend_hash_clean(&(PHAR_GLOBALS->phar_plain_map));
-
-       for (key = php_strtok_r(tmp, ",", &lasts);
-                       key;
-                       key = php_strtok_r(NULL, ",", &lasts))
-       {
-               char *val = strchr(key, '=');
-
-               if (val) {      
-                       *val++ = '\0';
-                       for (q = key; *q; q++) {
-                               *q = tolower(*q);
-                       }
-                       keylen = q - key + 1;
-                       zend_hash_add(&(PHAR_GLOBALS->phar_plain_map), key, keylen, val, strlen(val)+1, NULL);
-               }
-       }
-       efree(tmp);
-}
-/* }}} */
-
-ZEND_INI_MH(phar_ini_extract_list) /* {{{ */
-{
-       PHAR_G(extract_list) = new_value;
-
-       if (stage == ZEND_INI_STAGE_RUNTIME) {
-               phar_request_initialize(TSRMLS_C);
-               phar_split_extract_list(TSRMLS_C);
-       }
-
-       return SUCCESS;
-}
-/* }}} */
-
-ZEND_INI_DISP(phar_ini_extract_list_disp) /*void name(zend_ini_entry *ini_entry, int type) {{{ */
-{
-       char *value;
-
-       if (type==ZEND_INI_DISPLAY_ORIG && ini_entry->modified) {
-               value = ini_entry->orig_value;
-       } else if (ini_entry->value) {
-               value = ini_entry->value;
-       } else {
-               value = NULL;
-       }
-
-       if (value) {
-               char *tmp = strdup(value);
-               char *key;
-               char *lasts;
-               char *q;
-               int started = 0;
-       
-               if (!sapi_module.phpinfo_as_text) {
-                       php_printf("<ul>");
-               }
-               for (key = php_strtok_r(tmp, ",", &lasts);
-                               key;
-                               key = php_strtok_r(NULL, ",", &lasts))
-               {
-                       char *val = strchr(key, '=');
-
-                       if (val) {      
-                               *val++ = '\0';
-                               for (q = key; *q; ++q) {
-                                       *q = tolower(*q);
-                               }
-                               if (sapi_module.phpinfo_as_text) {
-                                       if (started++) {
-                                               php_printf(",");
-                                       }
-                                       php_printf("[%s = %s]", key, val);
-                               } else {
-                                       php_printf("<li>%s => %s</li>", key, val);
-                               }
-                       }
-               }
-               if (!sapi_module.phpinfo_as_text) {
-                       php_printf("</ul>");
-               }
-               free(tmp);
-       }
-}
-/* }}} */
-
 PHP_INI_BEGIN()
        STD_PHP_INI_BOOLEAN( "phar.readonly",     "1", PHP_INI_ALL, phar_ini_modify_handler, readonly,     zend_phar_globals, phar_globals)
        STD_PHP_INI_BOOLEAN( "phar.require_hash", "1", PHP_INI_ALL, phar_ini_modify_handler, require_hash, zend_phar_globals, phar_globals)
-       STD_PHP_INI_ENTRY_EX("phar.extract_list", "",  PHP_INI_ALL, phar_ini_extract_list,   extract_list, zend_phar_globals, phar_globals, phar_ini_extract_list_disp)
 PHP_INI_END()
 
 /**
@@ -1592,50 +1498,7 @@ int phar_detect_phar_fname_ext(const char *filename, int check_length, const cha
                return FAILURE;
        }
        phar_request_initialize(TSRMLS_C);
-       /* first check for extract_list */
-       if (zend_hash_num_elements(&(PHAR_GLOBALS->phar_plain_map))) {
-               for (zend_hash_internal_pointer_reset(&(PHAR_GLOBALS->phar_plain_map));
-               zend_hash_has_more_elements(&(PHAR_GLOBALS->phar_plain_map)) == SUCCESS;
-               zend_hash_move_forward(&(PHAR_GLOBALS->phar_plain_map))) {
-                       char *key;
-                       uint keylen;
-                       ulong intkey;
-
-                       if (HASH_KEY_IS_STRING != zend_hash_get_current_key_ex(&(PHAR_GLOBALS->phar_plain_map), &key, &keylen, &intkey, 0, NULL)) {
-                               continue;
-                       }
-
-                       if (keylen <= (uint) filename_len && !memcmp(key, filename, keylen - 1)) {
-                               /* found plain map, so we grab the extension, if any */
-                               if (is_complete && keylen != (uint)filename_len + 1) {
-                                       continue;
-                               }
-                               if (for_create == 1) {
-                                       return FAILURE;
-                               }
-                               if (!executable == 1) {
-                                       return FAILURE;
-                               }
-                               pos = strrchr(key, '/');
-                               if (pos) {
-                                       pos = filename + (pos - key);
-                                       slash = strchr(pos, '.');
-                                       if (slash) {
-                                               *ext_str = slash;
-                                               *ext_len = keylen - (slash - filename);
-                                               return SUCCESS;
-                                       }
-                                       *ext_str = pos;
-                                       *ext_len = -1;
-                                       return FAILURE;
-                               }
-                               *ext_str = filename + keylen - 1;
-                               *ext_len = -1;
-                               return FAILURE;
-                       }
-               }
-       }
-       /* next check for alias in first segment */
+       /* first check for alias in first segment */
        pos = strchr(filename, '/');
        if (pos) {
                if (zend_hash_exists(&(PHAR_GLOBALS->phar_alias_map), (char *) filename, pos - filename)) {
@@ -3016,9 +2879,7 @@ void phar_request_initialize(TSRMLS_D) /* {{{ */
                PHAR_GLOBALS->request_done = 0;
                zend_hash_init(&(PHAR_GLOBALS->phar_fname_map), sizeof(phar_archive_data*), zend_get_hash_value, destroy_phar_data,  0);
                zend_hash_init(&(PHAR_GLOBALS->phar_alias_map), sizeof(phar_archive_data*), zend_get_hash_value, NULL, 0);
-               zend_hash_init(&(PHAR_GLOBALS->phar_plain_map), sizeof(const char *),       zend_get_hash_value, NULL, 0);
                zend_hash_init(&(PHAR_GLOBALS->phar_SERVER_mung_list), sizeof(const char *),       zend_get_hash_value, NULL, 0);
-               phar_split_extract_list(TSRMLS_C);
                PHAR_G(cwd) = NULL;
                PHAR_G(cwd_len) = 0;
                PHAR_G(cwd_init) = 0;
@@ -3037,8 +2898,6 @@ PHP_RSHUTDOWN_FUNCTION(phar) /* {{{ */
                PHAR_GLOBALS->phar_alias_map.arBuckets = NULL;
                zend_hash_destroy(&(PHAR_GLOBALS->phar_fname_map));
                PHAR_GLOBALS->phar_fname_map.arBuckets = NULL;
-               zend_hash_destroy(&(PHAR_GLOBALS->phar_plain_map));
-               PHAR_GLOBALS->phar_plain_map.arBuckets = NULL;
                zend_hash_destroy(&(PHAR_GLOBALS->phar_SERVER_mung_list));
                PHAR_GLOBALS->phar_SERVER_mung_list.arBuckets = NULL;
                PHAR_GLOBALS->request_init = 0;
index f8b62fb8c931f10bc67a354328389810ce2a3f7a..d6a7eaa7eaa084ff07a88f70fdf3fd69c602908d 100755 (executable)
 ZEND_BEGIN_MODULE_GLOBALS(phar)
        HashTable   phar_fname_map;
        HashTable   phar_alias_map;
-       HashTable   phar_plain_map;
        HashTable   phar_SERVER_mung_list;
-       char*       extract_list;
        int         readonly;
        zend_bool   readonly_orig;
        zend_bool   require_hash_orig;
index cd7e9a21873fb0c53b31bfde837fc53e7fda8b8b..22982c5ca1c8cac564389de01160f34cfbae10dc 100755 (executable)
@@ -30,28 +30,6 @@ static zend_class_entry *phar_ce_PharException;
 static zend_class_entry *phar_ce_entry;
 #endif
 
-static int phar_get_extract_list(void *pDest, int num_args, va_list args, zend_hash_key *hash_key) /* {{{ */
-{
-       zval *return_value = va_arg(args, zval*);
-
-       add_assoc_string_ex(return_value, *(char**)&hash_key->arKey, hash_key->nKeyLength, (char*)pDest, 1);
-       
-       return ZEND_HASH_APPLY_KEEP;
-}
-/* }}} */
-
-/* {{{ proto array Phar::getExtractList()
- * Return array of extract list
- */
-PHP_METHOD(Phar, getExtractList)
-{
-       array_init(return_value);
-
-       phar_request_initialize(TSRMLS_C);
-       zend_hash_apply_with_arguments(&PHAR_G(phar_plain_map), phar_get_extract_list, 1, return_value);
-}
-/* }}} */
-
 static int phar_file_type(HashTable *mimes, char *file, char **mime_type TSRMLS_DC) /* {{{ */
 {
        char *ext;
@@ -528,7 +506,7 @@ PHP_METHOD(Phar, webPhar)
        HashTable mimetypes;
        phar_mime_type mime;
        zval *mimeoverride = NULL, *rewrite = NULL;
-       char *alias = NULL, *error, *plain_map, *index_php = NULL, *f404 = NULL, *ru = NULL;
+       char *alias = NULL, *error, *index_php = NULL, *f404 = NULL, *ru = NULL;
        int alias_len = 0, ret, f404_len = 0, free_pathinfo = 0, ru_len = 0;
        char *fname, *basename, *path_info, *mime_type, *entry, *pt;
        int fname_len, entry_len, code, index_php_len = 0, not_cgi;
@@ -541,15 +519,6 @@ PHP_METHOD(Phar, webPhar)
        phar_request_initialize(TSRMLS_C);
        fname = zend_get_executed_filename(TSRMLS_C);
        fname_len = strlen(fname);
-       if (zend_hash_num_elements(&(PHAR_GLOBALS->phar_plain_map))) {
-               if((alias && 
-                   zend_hash_find(&(PHAR_GLOBALS->phar_plain_map), alias, alias_len+1, (void **)&plain_map) == SUCCESS)
-               || (zend_hash_find(&(PHAR_GLOBALS->phar_plain_map), fname, fname_len+1, (void **)&plain_map) == SUCCESS)
-               ) {
-                       zend_throw_exception_ex(phar_ce_PharException, 0 TSRMLS_CC, "Cannot use Phar::webPhar() from an extracted phar archive, simply use the extracted files directly");
-                       return;
-               }
-       }
        if (phar_open_compiled_file(alias, alias_len, &error TSRMLS_CC) != SUCCESS) {
                if (error) {
                        zend_throw_exception_ex(phar_ce_PharException, 0 TSRMLS_CC, error);
@@ -983,24 +952,14 @@ PHP_METHOD(Phar, createDefaultStub)
  * Reads the currently executed file (a phar) and registers its manifest */
 PHP_METHOD(Phar, mapPhar)
 {
-       char *fname, *alias = NULL, *error, *plain_map;
-       int fname_len, alias_len = 0;
+       char *alias = NULL, *error;
+       int alias_len = 0;
        long dataoffset = 0;
        if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|s!l", &alias, &alias_len, &dataoffset) == FAILURE) {
                return;
        }
 
        phar_request_initialize(TSRMLS_C);
-       if (zend_hash_num_elements(&(PHAR_GLOBALS->phar_plain_map))) {
-               fname = zend_get_executed_filename(TSRMLS_C);
-               fname_len = strlen(fname);
-               if((alias && 
-                   zend_hash_find(&(PHAR_GLOBALS->phar_plain_map), alias, alias_len+1, (void **)&plain_map) == SUCCESS)
-               || (zend_hash_find(&(PHAR_GLOBALS->phar_plain_map), fname, fname_len+1, (void **)&plain_map) == SUCCESS)
-               ) {
-                       RETURN_STRING(plain_map, 1);
-               }
-       }
 
        RETVAL_BOOL(phar_open_compiled_file(alias, alias_len, &error TSRMLS_CC) == SUCCESS);
        if (error) {
@@ -1013,7 +972,7 @@ PHP_METHOD(Phar, mapPhar)
  * Loads any phar archive with an alias */
 PHP_METHOD(Phar, loadPhar)
 {
-       char *fname, *alias = NULL, *error, *plain_map;
+       char *fname, *alias = NULL, *error;
        int fname_len, alias_len = 0;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|s!", &fname, &fname_len, &alias, &alias_len) == FAILURE) {
@@ -1021,14 +980,6 @@ PHP_METHOD(Phar, loadPhar)
        }
 
        phar_request_initialize(TSRMLS_C);
-       if (zend_hash_num_elements(&(PHAR_GLOBALS->phar_plain_map))) {
-               if((alias && 
-                   zend_hash_find(&(PHAR_GLOBALS->phar_plain_map), alias, alias_len+1, (void **)&plain_map) == SUCCESS)
-               || (zend_hash_find(&(PHAR_GLOBALS->phar_plain_map), fname, fname_len+1, (void **)&plain_map) == SUCCESS)
-               ) {
-                       RETURN_STRING(plain_map, 1);
-               }
-       }
 
        RETVAL_BOOL(phar_open_filename(fname, fname_len, alias, alias_len, REPORT_ERRORS, NULL, &error TSRMLS_CC) == SUCCESS);
        if (error) {
@@ -4533,7 +4484,6 @@ zend_function_entry php_archive_methods[] = {
        PHP_ME(Phar, canCompress,           NULL,                      ZEND_ACC_PUBLIC|ZEND_ACC_STATIC|ZEND_ACC_FINAL)
        PHP_ME(Phar, canWrite,              NULL,                      ZEND_ACC_PUBLIC|ZEND_ACC_STATIC|ZEND_ACC_FINAL)
        PHP_ME(Phar, createDefaultStub,     arginfo_phar_createDS,     ZEND_ACC_PUBLIC|ZEND_ACC_STATIC|ZEND_ACC_FINAL)
-       PHP_ME(Phar, getExtractList,        NULL,                      ZEND_ACC_PUBLIC|ZEND_ACC_STATIC|ZEND_ACC_FINAL)
        PHP_ME(Phar, getSupportedCompression,NULL,                     ZEND_ACC_PUBLIC|ZEND_ACC_STATIC|ZEND_ACC_FINAL)
        PHP_ME(Phar, getSupportedSignatures,NULL,                      ZEND_ACC_PUBLIC|ZEND_ACC_STATIC|ZEND_ACC_FINAL)
        PHP_ME(Phar, interceptFileFuncs,    NULL,                      ZEND_ACC_PUBLIC|ZEND_ACC_STATIC|ZEND_ACC_FINAL)
index ac879d3cd88a874d16d1471e0edd79cd9b510067..3d9f14e4d45f67f6c98d2ee26818877b0f784219 100644 (file)
@@ -100,9 +100,6 @@ php_url* phar_open_url(php_stream_wrapper *wrapper, char *filename, char *mode,
 /*                     fprintf(stderr, "Fragment:  %s\n", resource->fragment);*/
                }
 #endif
-       if (PHAR_GLOBALS->request_init && PHAR_GLOBALS->phar_plain_map.arBuckets && zend_hash_exists(&(PHAR_GLOBALS->phar_plain_map), arch, arch_len+1)) {
-               return resource;
-       }
        if (mode[0] == 'w' || (mode[0] == 'r' && mode[1] == '+')) {
                phar_archive_data **pphar = NULL;
 
@@ -152,10 +149,9 @@ static php_stream * phar_wrapper_open_url(php_stream_wrapper *wrapper, char *pat
        phar_entry_data *idata;
        char *internal_file;
        char *error;
-       char *plain_map;
        HashTable *pharcontext;
        php_url *resource = NULL;
-       php_stream *fp, *fpf;
+       php_stream *fpf;
        zval **pzoption, *metadata;
        uint host_len;
 
@@ -178,16 +174,6 @@ static php_stream * phar_wrapper_open_url(php_stream_wrapper *wrapper, char *pat
 
        host_len = strlen(resource->host);
        phar_request_initialize(TSRMLS_C);
-       if (zend_hash_find(&(PHAR_GLOBALS->phar_plain_map), resource->host, host_len+1, (void **)&plain_map) == SUCCESS) {
-               spprintf(&internal_file, 0, "%s%s", plain_map, resource->path);
-               fp = php_stream_open_wrapper_ex(internal_file, mode, options, opened_path, context);
-               efree(internal_file);
-               if (!fp) {
-                       php_stream_wrapper_log_error(wrapper, options TSRMLS_CC, "phar error: file \"%s\" extracted from \"%s\" could not be opened", resource->path+1, resource->host);
-               }
-               php_url_free(resource);
-               return fp;
-       }
 
        /* strip leading "/" */
        internal_file = estrdup(resource->path + 1);
@@ -515,13 +501,13 @@ static int phar_wrapper_stat(php_stream_wrapper *wrapper, char *url, int flags,
                                  php_stream_statbuf *ssb, php_stream_context *context TSRMLS_DC) /* {{{ */
 {
        php_url *resource = NULL;
-       char *internal_file, *key, *error, *plain_map;
+       char *internal_file, *key, *error;
        uint keylen;
        ulong unused;
        phar_archive_data *phar;
        phar_entry_info *entry;
        uint host_len;
-       int retval, internal_file_len;
+       int internal_file_len;
 
        if ((resource = phar_open_url(wrapper, url, "r", flags|PHP_STREAM_URL_STAT_QUIET TSRMLS_CC)) == NULL) {
                return FAILURE;
@@ -540,13 +526,6 @@ static int phar_wrapper_stat(php_stream_wrapper *wrapper, char *url, int flags,
 
        host_len = strlen(resource->host);
        phar_request_initialize(TSRMLS_C);
-       if (zend_hash_find(&(PHAR_GLOBALS->phar_plain_map), resource->host, host_len+1, (void **)&plain_map) == SUCCESS) {
-               spprintf(&internal_file, 0, "%s%s", plain_map, resource->path);
-               retval = php_stream_stat_path_ex(internal_file, flags, ssb, context);
-               php_url_free(resource);
-               efree(internal_file);
-               return retval;
-       }
 
        internal_file = resource->path + 1; /* strip leading "/" */
        /* find the phar in our trusty global hash indexed by alias (host of phar://blah.phar/file.whatever) */
@@ -655,7 +634,7 @@ free_resource:
 static int phar_wrapper_unlink(php_stream_wrapper *wrapper, char *url, int options, php_stream_context *context TSRMLS_DC) /* {{{ */
 {
        php_url *resource;
-       char *internal_file, *error, *plain_map;
+       char *internal_file, *error;
        phar_entry_data *idata;
        phar_archive_data **pphar;
        uint host_len;
@@ -680,11 +659,6 @@ static int phar_wrapper_unlink(php_stream_wrapper *wrapper, char *url, int optio
 
        host_len = strlen(resource->host);
        phar_request_initialize(TSRMLS_C);
-       if (zend_hash_find(&(PHAR_GLOBALS->phar_plain_map), resource->host, host_len+1, (void **)&plain_map) == SUCCESS) {
-               php_stream_wrapper_log_error(wrapper, options TSRMLS_CC, "phar error: \"%s\" cannot be unlinked, phar is extracted in plain map", url);
-               php_url_free(resource);
-               return 0;
-       }
 
        if (FAILURE == zend_hash_find(&(PHAR_GLOBALS->phar_fname_map), resource->host, strlen(resource->host), (void **) &pphar)) {
                pphar = NULL;
@@ -734,7 +708,7 @@ static int phar_wrapper_unlink(php_stream_wrapper *wrapper, char *url, int optio
 static int phar_wrapper_rename(php_stream_wrapper *wrapper, char *url_from, char *url_to, int options, php_stream_context *context TSRMLS_DC) /* {{{ */
 {
        php_url *resource_from, *resource_to;
-       char *error, *plain_map;
+       char *error;
        phar_archive_data *phar, *pfrom, *pto;
        phar_entry_info *entry;
        uint host_len;
@@ -812,13 +786,6 @@ static int phar_wrapper_rename(php_stream_wrapper *wrapper, char *url_from, char
 
        host_len = strlen(resource_from->host);
        phar_request_initialize(TSRMLS_C);
-       if (zend_hash_find(&(PHAR_GLOBALS->phar_plain_map), resource_from->host, host_len+1, (void **)&plain_map) == SUCCESS) {
-               /*TODO:use php_stream_rename() once available*/
-               php_url_free(resource_from);
-               php_url_free(resource_to);
-               php_error_docref(NULL TSRMLS_CC, E_WARNING, "phar error: cannot rename \"%s\" to \"%s\" from extracted phar archive", url_from, url_to);
-               return 0;
-       }
 
        if (SUCCESS != phar_get_archive(&phar, resource_from->host, strlen(resource_from->host), NULL, 0, &error TSRMLS_CC)) {
                php_url_free(resource_from);
index 0138735a9386ec0b16fbbca0fa98a93ea8570940..679fefc2cd0bd4dd82e24b4179458ed4820c64b4 100755 (executable)
@@ -53,26 +53,6 @@ closedir($a);
 echo "opendir edge cases\n";
 var_dump(opendir("phar://"));
 var_dump(opendir("phar://foo.phar/hi"));
-echo "extract_list test\n";
-ini_set('phar.extract_list', 'test.phar=' . dirname(__FILE__) . '/ump');
-mkdir($a = dirname(__FILE__) . '/ump');
-file_put_contents($a . '/test1.txt', 'hi');
-file_put_contents($a . '/test2.txt', 'hi');
-file_put_contents($a . '/test3.txt', 'hi');
-$b = opendir('phar://test.phar/');
-$z = array();
-while (false !== ($c = readdir($b))) {
-       $z[] = $c;
-}
-sort($z);
-foreach ($z as $c) {
-       echo "$c\n";
-}
-closedir($b);
-unlink($a . '/test1.txt');
-unlink($a . '/test2.txt');
-unlink($a . '/test3.txt');
-rmdir($a);
 ?>
 ===DONE===
 --CLEAN--
@@ -111,10 +91,4 @@ bool(false)
 Warning: opendir(phar://foo.phar/hi): failed to open dir: phar error: invalid url or non-existent phar "phar://foo.phar/hi"
 phar url "phar://foo.phar/hi" is unknown in %s027.php on line %d
 bool(false)
-extract_list test
-.
-..
-test1.txt
-test2.txt
-test3.txt
 ===DONE===
index a02b9d81e6497dbcf51596fc01a349492c2e59ea..a8f9d3f889bde88bb5d525fdfa3ebf621316bf22 100644 (file)
@@ -49,13 +49,6 @@ ini_set('phar.readonly', 0);
 rmdir($pname);
 rmdir($pname . '/');
 mkdir($pname . '/');
-
-// test extract_list with rmdir/mkdir
-ini_set('phar.extract_list', 'test.phar=' . dirname(__FILE__) . '/ump');
-mkdir($a = dirname(__FILE__) . '/ump');
-mkdir('phar://test.phar/test');
-rmdir('phar://test.phar/test');
-rmdir($a);
 ?>
 ===DONE===
 --CLEAN--
@@ -96,8 +89,4 @@ Warning: rmdir(): phar error: cannot remove directory "" in phar "%sdir.phar.php
 Warning: rmdir(): phar error: cannot remove directory "" in phar "%sdir.phar.php", directory does not exist in %sdir.php on line %d
 
 Warning: mkdir(): phar error: cannot create directory "" in phar "%sdir.phar.php", phar error: invalid path "" must not be empty in %sdir.php on line %d
-
-Warning: mkdir(): phar error: directory "test" cannot be created in phar "test.phar", phar is extracted in plain map in %sdir.php on line %d
-
-Warning: rmdir(): phar error: directory "test" cannot be removed in phar "test.phar", phar is extracted in plain map in %sdir.php on line %d
 ===DONE===
\ No newline at end of file
diff --git a/ext/phar/tests/extracted_001.phpt b/ext/phar/tests/extracted_001.phpt
deleted file mode 100755 (executable)
index 92dee7f..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
---TEST--
-Phar: extracted
---SKIPIF--
-<?php if (!extension_loaded("phar")) die("skip"); ?>
---INI--
-phar.readonly=0
-phar.require_hash=0
-phar.extract_list="phar_test.phar=test"
---FILE--
-<?php
-var_dump(Phar::getExtractList());
-ini_set('phar.extract_list', 'phar_test.phar='.dirname(__FILE__));
-var_dump(Phar::getExtractList());
-
-$pname = 'phar://phar_test.phar';
-
-var_dump(file_get_contents($pname . '/files/extracted.inc'));
-
-include $pname . '/files/extracted.inc';
-
-// for code coverage;
-ini_set('phar.extract_list', 'phar_test.phar='.dirname(__FILE__).',another.phar='. dirname(__FILE__));
-
-var_dump(file_get_contents('phar://another.phar/files/extracted.inc'));
-?>
-===DONE===
---EXPECTF--
-array(1) {
-  ["phar_test.phar"]=>
-  string(4) "test"
-}
-array(1) {
-  ["phar_test.phar"]=>
-  string(%d) "%s"
-}
-string(%d) "<?php var_dump(__FILE__); ?>
-"
-string(%d) "%sextracted.inc"
-string(%d) "<?php var_dump(__FILE__); ?>
-"
-===DONE===
index 4e60c881610fb69ac56123c1c2ea48d1d8ae621a..209fc482a074108e8315ac85c072ae0e50ef2c52 100644 (file)
@@ -32,9 +32,6 @@ $a = fopen($pname2 . '/hi', 'w');
 $a = fopen('phar://', 'r');
 $a = fopen('phar://foo.phar', 'r');
 
-ini_set('phar.extract_list', 'test.phar=' . dirname(__FILE__) . '/ump');
-$a = fopen('phar://test.phar/oops', 'r');
-
 file_put_contents($pname . '/hi', 'hi');
 $a = fopen($pname . '/hi', 'r');
 var_dump(fseek($a, 1), ftell($a));
@@ -44,9 +41,6 @@ fclose($a);
 var_dump(stat('phar://'));
 var_dump(stat('phar://foo.phar'));
 var_dump(is_dir($pname));
-ini_set('phar.extract_list', 'test.phar=' . dirname(__FILE__));
-var_dump(file_exists('phar://test.phar/' . basename(__FILE__)));
-var_dump(file_exists('phar://test.phar/@#$^&*%$#'));
 
 // this tests coverage of the case where the phar exists and has no files
 $phar = new Phar($fname3);
@@ -55,7 +49,6 @@ var_dump(file_exists($pname3 . '/test'));
 unlink($pname2 . '/hi');
 unlink('phar://');
 unlink('phar://foo.phar');
-unlink('phar://test.phar/' . basename(__FILE__));
 unlink($pname . '/oops');
 
 rename('phar://', 'phar://');
@@ -66,8 +59,6 @@ rename($pname . '/hi', 'phar://foo.phar/hi');
 ini_set('phar.readonly', 1);
 rename($pname . '/hi', $pname . '/there');
 ini_set('phar.readonly', 0);
-
-rename('phar://test.phar/' . basename(__FILE__), 'phar://test.phar/hi');
 ?>
 
 ===DONE===
@@ -86,8 +77,6 @@ Warning: fopen(phar://%sfopen_edgecases.2.phar.php/hi): failed to open stream: i
 Warning: fopen(phar://): failed to open stream: phar error: no directory in "phar://", must have at least phar:/// for root directory (always use full path to a new phar) in %sfopen_edgecases.php on line %d
 
 Warning: fopen(phar://foo.phar): failed to open stream: %s in %sfopen_edgecases.php on line %d
-
-Warning: fopen(phar://test.phar/oops): failed to open stream: phar error: file "oops" extracted from "test.phar" could not be opened in %sfopen_edgecases.php on line %d
 int(0)
 int(1)
 int(0)
@@ -99,8 +88,6 @@ bool(false)
 Warning: stat(): stat failed for phar://foo.phar in %sfopen_edgecases.php on line %d
 bool(false)
 bool(true)
-bool(true)
-bool(false)
 bool(false)
 
 Warning: unlink(): internal corruption of phar "%sfopen_edgecases.2.phar.php" (truncated manifest at stub end) in %sfopen_edgecases.php on line %d
@@ -115,8 +102,6 @@ Warning: unlink(): phar error: invalid url or non-existent phar "phar://foo.phar
 
 Warning: unlink(): phar error: unlink failed in %sfopen_edgecases.php on line %d
 
-Warning: unlink(): phar error: "phar://test.phar/fopen_edgecases.php" cannot be unlinked, phar is extracted in plain map in %sfopen_edgecases.php on line %d
-
 Warning: unlink(): unlink of "phar://%sfopen_edgecases.phar.php/oops" failed, file does not exist in %sfopen_edgecases.php on line %d
 
 Warning: rename(): phar error: cannot rename "phar://" to "phar://": invalid or non-writable url "phar://" in %sfopen_edgecases.php on line %d
@@ -129,6 +114,4 @@ Warning: rename(): phar error: cannot rename "phar://%sfopen_edgecases.phar.php/
 
 Warning: rename(): phar error: cannot rename "phar://%sfopen_edgecases.phar.php/hi" to "phar://%sfopen_edgecases.phar.php/there": invalid or non-writable url "phar://%sfopen_edgecases.phar.php/hi" in %sfopen_edgecases.php on line %d
 
-Warning: rename(): phar error: cannot rename "phar://test.phar/fopen_edgecases.php" to "phar://test.phar/hi" from extracted phar archive in %sfopen_edgecases.php on line %d
-
 ===DONE===
\ No newline at end of file
diff --git a/ext/phar/tests/loadphar_plainmap.phpt b/ext/phar/tests/loadphar_plainmap.phpt
deleted file mode 100644 (file)
index 5dda0d1..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
---TEST--
-Phar: Phar::loadPhar with phar.extract_list
---SKIPIF--
-<?php if (!extension_loaded("phar")) die("skip");?>
---INI--
-phar.readonly=1
---FILE--
-<?php
-
-ini_set('phar.extract_list', 'myphar.phar=' . dirname(__FILE__));
-
-echo Phar::loadPhar('myphar.phar');
-?>
---EXPECTF--
-%stests
\ No newline at end of file
diff --git a/ext/phar/tests/mapphar_plainmap.phpt b/ext/phar/tests/mapphar_plainmap.phpt
deleted file mode 100644 (file)
index 47af05d..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
---TEST--
-Phar: Phar::mapPhar with phar.extract_list
---SKIPIF--
-<?php if (!extension_loaded("phar")) die("skip");?>
---INI--
-phar.readonly=1
---FILE--
-<?php
-$fname = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.plain.php';
-
-file_put_contents($fname, '<?php echo Phar::mapPhar("myphar.phar") . "\n";');
-ini_set('phar.extract_list', 'myphar.phar=' . dirname(__FILE__));
-
-try {
-include 'phar://myphar.phar/' . basename($fname);
-} catch (Exception $e) {
-echo $e->getMessage() . "\n";
-}
-?>
---CLEAN--
-<?php
-unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.plain.php');
-?>
---EXPECTF--
-%stests
\ No newline at end of file
index 4d2efa3788f3841c5b7dc892d70d9bc6b01fb0d0..46ab7c9682f71fd74ccca88047e2ea4325e71ded 100644 (file)
@@ -27,8 +27,6 @@ include $fname;
 echo "\n";
 opendir('phar://');
 opendir('phar://hi.phar');
-ini_set('phar.extract_list', 'hi.phar='.dirname(__FILE__));
-opendir('phar://hi.phar/oopsie/daisy/');
 ?>
 ===DONE===
 --CLEAN--
@@ -41,6 +39,4 @@ phar url "phar://" is unknown in %sopendir.php on line %d
 
 Warning: opendir(phar://hi.phar): failed to open dir: phar error: invalid url or non-existent phar "phar://hi.phar"
 phar url "phar://hi.phar" is unknown in %sopendir.php on line %d
-
-Warning: opendir(phar://hi.phar/oopsie/daisy/): failed to open dir: phar error: file "%soopsie/daisy" extracted from "hi.phar" could not be opened in %sopendir.php on line %d
 ===DONE===
\ No newline at end of file
index 71404f22220d5d3dda6c7350b488fc6409866c8f..3f032457271c3818a6332d68ccd44516eb7b607e 100644 (file)
@@ -27,9 +27,7 @@ unlink(dirname(__FILE__) . '/buildfromiterator.phar');
 __HALT_COMPILER();
 ?>
 --EXPECTF--
-array(34) {
-  ["extracted_001.phpt"]=>
-  string(%d) "%sextracted_001.phpt"
+array(33) {
   ["phar_ctx_001.phpt"]=>
   string(%d) "%sphar_ctx_001.phpt"
   ["phar_get_supported_signatures_001.phpt"]=>
index 32b5bef29e89f5c2aa9d01d4874e00da70dadf98..9c953ee88a34315d22f794911098a8f1b5123718 100644 (file)
@@ -65,13 +65,6 @@ var_dump(Phar::isValidPharFilename('phar.zip.phar'));
 var_dump(Phar::isValidPharFilename('phar.zip.phar', true));
 var_dump(Phar::isValidPharFilename('phar.zip.phar', false));
 
-ini_set('phar.extract_list', 'myphar.phar=' . dirname(__FILE__));
-
-echo "\nmyphar.phar\n";
-var_dump(Phar::isValidPharFilename('myphar.phar'));
-var_dump(Phar::isValidPharFilename('myphar.phar', true));
-var_dump(Phar::isValidPharFilename('myphar.phar', false));
-
 echo "\ndir.phar.php\n";
 var_dump(Phar::isValidPharFilename('dir.phar.php'));
 var_dump(Phar::isValidPharFilename('dir.phar.php', true));
@@ -139,11 +132,6 @@ bool(true)
 bool(true)
 bool(false)
 
-myphar.phar
-bool(true)
-bool(true)
-bool(false)
-
 dir.phar.php
 bool(true)
 bool(true)
index c021701fc82e46d42a4adf2b904458ec193e18fa..7b31185827a73442baf8d8fe87cbb392917943f0 100644 (file)
@@ -9,11 +9,9 @@ phar.readonly=0
 phar.require_hash=0
 --FILE--
 <?php
-ini_set('phar.extract_list', 'phar_test.phar='.dirname(__FILE__).',another.phar='. dirname(__FILE__));
 phpinfo(INFO_MODULES);
 ini_set('phar.readonly',1);
 ini_set('phar.require_hash',1);
-ini_set('phar.extract_list', '');
 phpinfo(INFO_MODULES);
 ?>
 ===DONE===
@@ -35,7 +33,6 @@ Phar based on pear/PHP_Archive, original concept by Davey Shafik.
 Phar fully realized by Gregory Beaver and Marcus Boerger.
 Portions of tar implementation Copyright (c) 2003-2007 Tim Kientzle.
 Directive => Local Value => Master Value
-phar.extract_list => [phar_test.phar = %stests],[another.phar = %stests] => 
 phar.readonly => Off => Off
 phar.require_hash => Off => Off
 %a
@@ -56,7 +53,6 @@ Phar based on pear/PHP_Archive, original concept by Davey Shafik.
 Phar fully realized by Gregory Beaver and Marcus Boerger.
 Portions of tar implementation Copyright (c) 2003-2007 Tim Kientzle.
 Directive => Local Value => Master Value
-phar.extract_list =>  => 
 phar.readonly => On => Off
 phar.require_hash => On => Off
 %a
index 62d4700212c01d3b149df5c006cb15e0f1b752ba..1e0e567affe841344f900bd60d90c6c983793eeb 100644 (file)
@@ -31,7 +31,6 @@ Phar based on pear/PHP_Archive, original concept by Davey Shafik.
 Phar fully realized by Gregory Beaver and Marcus Boerger.
 Portions of tar implementation Copyright (c) 2003-2007 Tim Kientzle.
 Directive => Local Value => Master Value
-phar.extract_list =>  => 
 phar.readonly => On => On
 phar.require_hash => On => On
 %a
index 01c402ececa02ec9fda8973b9d17a63491a66d72..5894c83ea807d5fa5350f8b81a1ae5ae99b009d0 100644 (file)
@@ -31,7 +31,6 @@ Phar based on pear/PHP_Archive, original concept by Davey Shafik.
 Phar fully realized by Gregory Beaver and Marcus Boerger.
 Portions of tar implementation Copyright (c) 2003-2007 Tim Kientzle.
 Directive => Local Value => Master Value
-phar.extract_list =>  => 
 phar.readonly => On => On
 phar.require_hash => On => On
 %a
index e04133b29cf18b655c4cf275c27c96929b670891..1dbccda8899d4fe7f66429b4a3d6ecf39bf029a1 100644 (file)
@@ -11,11 +11,9 @@ phar.require_hash=0
 a=b
 --FILE--
 <?php
-ini_set('phar.extract_list', 'phar_test.phar='.dirname(__FILE__).',another.phar='. dirname(__FILE__));
 phpinfo(INFO_MODULES);
 ini_set('phar.readonly',1);
 ini_set('phar.require_hash',1);
-ini_set('phar.extract_list', '');
 phpinfo(INFO_MODULES);
 ?>
 ===DONE===
@@ -39,7 +37,6 @@ Phar based on pear/PHP_Archive, original concept by Davey Shafik.<br />Phar full
 </table><br />
 <table border="0" cellpadding="3" width="600">
 <tr class="h"><th>Directive</th><th>Local Value</th><th>Master Value</th></tr>
-<tr><td class="e">phar.extract_list</td><td class="v"><ul><li>phar_test.phar => %stests</li><li>another.phar => %stests</li></ul></td><td class="v"><ul></ul></td></tr>
 <tr><td class="e">phar.readonly</td><td class="v">Off</td><td class="v">Off</td></tr>
 <tr><td class="e">phar.require_hash</td><td class="v">Off</td><td class="v">Off</td></tr>
 </table><br />
@@ -62,7 +59,6 @@ Phar based on pear/PHP_Archive, original concept by Davey Shafik.<br />Phar full
 </table><br />
 <table border="0" cellpadding="3" width="600">
 <tr class="h"><th>Directive</th><th>Local Value</th><th>Master Value</th></tr>
-<tr><td class="e">phar.extract_list</td><td class="v"><ul></ul></td><td class="v"><ul></ul></td></tr>
 <tr><td class="e">phar.readonly</td><td class="v">On</td><td class="v">Off</td></tr>
 <tr><td class="e">phar.require_hash</td><td class="v">On</td><td class="v">Off</td></tr>
 </table><br />
diff --git a/ext/phar/tests/webphar_plainmap.phpt b/ext/phar/tests/webphar_plainmap.phpt
deleted file mode 100644 (file)
index ba14c92..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
---TEST--
-Phar: Phar::webPhar with phar.extract_list
---SKIPIF--
-<?php if (!extension_loaded("phar")) die("skip");?>
---INI--
-phar.readonly=1
---FILE--
-<?php
-$fname = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.plain.php';
-
-file_put_contents($fname, '<?php Phar::webPhar("myphar.phar", "index.php");');
-ini_set('phar.extract_list', 'myphar.phar=' . dirname(__FILE__));
-
-try {
-include 'phar://myphar.phar/' . basename($fname);
-} catch (Exception $e) {
-echo $e->getMessage() . "\n";
-}
-?>
---CLEAN--
-<?php
-unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.plain.php');
-?>
---EXPECT--
-Cannot use Phar::webPhar() from an extracted phar archive, simply use the extracted files directly
\ No newline at end of file