pajoye Mon, 25 Jul 2011 16:50:07 +0000 Revision: http://svn.php.net/viewvc?view=revision&revision=313678
Log: - add expand_filepath_with_mode (not used anywhere yet but will be used for file ops (fopen&co) to avoid extra links resolution and other non required ops on open Changed paths: U php/php-src/branches/PHP_5_4/UPGRADING.INTERNALS U php/php-src/branches/PHP_5_4/main/fopen_wrappers.c U php/php-src/branches/PHP_5_4/main/fopen_wrappers.h U php/php-src/trunk/UPGRADING.INTERNALS U php/php-src/trunk/main/fopen_wrappers.c U php/php-src/trunk/main/fopen_wrappers.h Modified: php/php-src/branches/PHP_5_4/UPGRADING.INTERNALS =================================================================== --- php/php-src/branches/PHP_5_4/UPGRADING.INTERNALS 2011-07-25 16:45:39 UTC (rev 313677) +++ php/php-src/branches/PHP_5_4/UPGRADING.INTERNALS 2011-07-25 16:50:07 UTC (rev 313678) @@ -11,6 +11,7 @@ f. streams that enclose private streams g. leak_variable h. API Signature changes + i. new TSRM function expand_filepath_with_mode 2. Build system changes a. Unix build system changes @@ -184,6 +185,9 @@ . php_unescape_html_entities PHPAPI char *php_unescape_html_entities(unsigned char *old, size_t oldlen, size_t *newlen, int all, int flags, char *hint_charset TSRMLS_DC); + i. + PHPAPI char *expand_filepath_with_mode(const char *filepath, char *real_path, const char *relative_to, size_t relative_to_len, int realpath_mode TSRMLS_DC); + expand_filepath_with_mode lets define how realpath will behave, using one of the existing mode: CWD_EXPAND , CWD_FILEPATH or CWD_REALPATH. ======================== 2. Build system changes Modified: php/php-src/branches/PHP_5_4/main/fopen_wrappers.c =================================================================== --- php/php-src/branches/PHP_5_4/main/fopen_wrappers.c 2011-07-25 16:45:39 UTC (rev 313677) +++ php/php-src/branches/PHP_5_4/main/fopen_wrappers.c 2011-07-25 16:50:07 UTC (rev 313678) @@ -741,6 +741,14 @@ */ PHPAPI char *expand_filepath_ex(const char *filepath, char *real_path, const char *relative_to, size_t relative_to_len TSRMLS_DC) { + return expand_filepath_with_mode(filepath, real_path, relative_to, relative_to_len, CWD_FILEPATH TSRMLS_CC); +} +/* }}} */ + +/* {{{ expand_filepath_use_realpath + */ +PHPAPI char *expand_filepath_with_mode(const char *filepath, char *real_path, const char *relative_to, size_t relative_to_len, int realpath_mode TSRMLS_DC) +{ cwd_state new_state; char cwd[MAXPATHLEN]; int copy_len; @@ -785,7 +793,7 @@ new_state.cwd = strdup(cwd); new_state.cwd_length = strlen(cwd); - if (virtual_file_ex(&new_state, filepath, NULL, CWD_FILEPATH TSRMLS_CC)) { + if (virtual_file_ex(&new_state, filepath, NULL, realpath_mode TSRMLS_CC)) { free(new_state.cwd); return NULL; } Modified: php/php-src/branches/PHP_5_4/main/fopen_wrappers.h =================================================================== --- php/php-src/branches/PHP_5_4/main/fopen_wrappers.h 2011-07-25 16:45:39 UTC (rev 313677) +++ php/php-src/branches/PHP_5_4/main/fopen_wrappers.h 2011-07-25 16:50:07 UTC (rev 313678) @@ -28,6 +28,7 @@ PHPAPI int php_fopen_primary_script(zend_file_handle *file_handle TSRMLS_DC); PHPAPI char *expand_filepath(const char *filepath, char *real_path TSRMLS_DC); PHPAPI char *expand_filepath_ex(const char *filepath, char *real_path, const char *relative_to, size_t relative_to_len TSRMLS_DC); +PHPAPI char *expand_filepath_with_mode(const char *filepath, char *real_path, const char *relative_to, size_t relative_to_len, int realpath_mode TSRMLS_DC); PHPAPI int php_check_open_basedir(const char *path TSRMLS_DC); PHPAPI int php_check_open_basedir_ex(const char *path, int warn TSRMLS_DC); Modified: php/php-src/trunk/UPGRADING.INTERNALS =================================================================== --- php/php-src/trunk/UPGRADING.INTERNALS 2011-07-25 16:45:39 UTC (rev 313677) +++ php/php-src/trunk/UPGRADING.INTERNALS 2011-07-25 16:50:07 UTC (rev 313678) @@ -11,6 +11,7 @@ f. streams that enclose private streams g. leak_variable h. API Signature changes + i. new TSRM function expand_filepath_with_mode 2. Build system changes a. Unix build system changes @@ -184,6 +185,9 @@ . php_unescape_html_entities PHPAPI char *php_unescape_html_entities(unsigned char *old, size_t oldlen, size_t *newlen, int all, int flags, char *hint_charset TSRMLS_DC); + i. + PHPAPI char *expand_filepath_with_mode(const char *filepath, char *real_path, const char *relative_to, size_t relative_to_len, int realpath_mode TSRMLS_DC); + expand_filepath_with_mode lets define how realpath will behave, using one of the existing mode: CWD_EXPAND , CWD_FILEPATH or CWD_REALPATH. ======================== 2. Build system changes Modified: php/php-src/trunk/main/fopen_wrappers.c =================================================================== --- php/php-src/trunk/main/fopen_wrappers.c 2011-07-25 16:45:39 UTC (rev 313677) +++ php/php-src/trunk/main/fopen_wrappers.c 2011-07-25 16:50:07 UTC (rev 313678) @@ -741,6 +741,14 @@ */ PHPAPI char *expand_filepath_ex(const char *filepath, char *real_path, const char *relative_to, size_t relative_to_len TSRMLS_DC) { + return expand_filepath_with_mode(filepath, real_path, relative_to, relative_to_len, CWD_FILEPATH TSRMLS_CC); +} +/* }}} */ + +/* {{{ expand_filepath_use_realpath + */ +PHPAPI char *expand_filepath_with_mode(const char *filepath, char *real_path, const char *relative_to, size_t relative_to_len, int realpath_mode TSRMLS_DC) +{ cwd_state new_state; char cwd[MAXPATHLEN]; int copy_len; @@ -785,7 +793,7 @@ new_state.cwd = strdup(cwd); new_state.cwd_length = strlen(cwd); - if (virtual_file_ex(&new_state, filepath, NULL, CWD_FILEPATH TSRMLS_CC)) { + if (virtual_file_ex(&new_state, filepath, NULL, realpath_mode TSRMLS_CC)) { free(new_state.cwd); return NULL; } Modified: php/php-src/trunk/main/fopen_wrappers.h =================================================================== --- php/php-src/trunk/main/fopen_wrappers.h 2011-07-25 16:45:39 UTC (rev 313677) +++ php/php-src/trunk/main/fopen_wrappers.h 2011-07-25 16:50:07 UTC (rev 313678) @@ -28,6 +28,7 @@ PHPAPI int php_fopen_primary_script(zend_file_handle *file_handle TSRMLS_DC); PHPAPI char *expand_filepath(const char *filepath, char *real_path TSRMLS_DC); PHPAPI char *expand_filepath_ex(const char *filepath, char *real_path, const char *relative_to, size_t relative_to_len TSRMLS_DC); +PHPAPI char *expand_filepath_with_mode(const char *filepath, char *real_path, const char *relative_to, size_t relative_to_len, int use_realpath TSRMLS_DC); PHPAPI int php_check_open_basedir(const char *path TSRMLS_DC); PHPAPI int php_check_open_basedir_ex(const char *path, int warn TSRMLS_DC);
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php