iliaa           Mon Nov  4 18:24:15 2002 EDT

  Modified files:              
    /TSRM       tsrm_virtual_cwd.c tsrm_virtual_cwd.h 
    /php4/ext/standard  link.c 
  Log:
  Revert virtual_link() patch.
  
  
Index: TSRM/tsrm_virtual_cwd.c
diff -u TSRM/tsrm_virtual_cwd.c:1.38 TSRM/tsrm_virtual_cwd.c:1.39
--- TSRM/tsrm_virtual_cwd.c:1.38        Mon Nov  4 15:45:28 2002
+++ TSRM/tsrm_virtual_cwd.c     Mon Nov  4 18:24:15 2002
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: tsrm_virtual_cwd.c,v 1.38 2002/11/04 20:45:28 andi Exp $ */
+/* $Id: tsrm_virtual_cwd.c,v 1.39 2002/11/04 23:24:15 iliaa Exp $ */
 
 #include <sys/types.h>
 #include <sys/stat.h>
@@ -282,29 +282,6 @@
        return buf;
 }
 
-CWD_API char *virtual_link(char *buf, size_t size TSRMLS_DC)
-{
-       char *p;
-       char tmp_path[MAXPATHLEN * 2];
-       char resolved_path[MAXPATHLEN];
-       
-       if (IS_ABSOLUTE_PATH(buf, size)) {
-               p = resolved_path;
-               memcpy(p, buf, size);
-               p[size] = '\0';
-       } else {
-               virtual_getcwd(tmp_path, MAXPATHLEN TSRMLS_CC);
-               p = tmp_path + strlen(tmp_path);
-               *p++ = '/';
-               memcpy(p, buf, size);
-               *(p + size) = '\0';
-               
-               p = tmp_path;
-       }
-       
-       return p;
-}
-
 /* Resolve path relatively to state and put the real path into state */
 /* returns 0 for ok, 1 for error */
 CWD_API int virtual_file_ex(cwd_state *state, const char *path, verify_path_func 
verify_path)
@@ -709,24 +686,30 @@
 #if !defined(TSRM_WIN32) && !defined(NETWARE)
 CWD_API int virtual_lstat(const char *path, struct stat *buf TSRMLS_DC)
 {
+       cwd_state new_state;
        int retval;
-       char *p;
 
-       p = virtual_link((char *)path, strlen(path) TSRMLS_CC);
-       retval = lstat(p, buf);
+       CWD_STATE_COPY(&new_state, &CWDG(cwd));
+       virtual_file_ex(&new_state, path, NULL);
+
+       retval = lstat(new_state.cwd, buf);
 
+       CWD_STATE_FREE(&new_state);
        return retval;
 }
 #endif
 
 CWD_API int virtual_unlink(const char *path TSRMLS_DC)
 {
+       cwd_state new_state;
        int retval;
-       char *resolved_path;
 
-       resolved_path = virtual_link((char *)path, strlen(path) TSRMLS_CC);
-       retval = unlink(resolved_path);
+       CWD_STATE_COPY(&new_state, &CWDG(cwd));
+       virtual_file_ex(&new_state, path, NULL);
 
+       retval = unlink(new_state.cwd);
+
+       CWD_STATE_FREE(&new_state);
        return retval;
 }
 
Index: TSRM/tsrm_virtual_cwd.h
diff -u TSRM/tsrm_virtual_cwd.h:1.22 TSRM/tsrm_virtual_cwd.h:1.23
--- TSRM/tsrm_virtual_cwd.h:1.22        Mon Nov  4 15:45:28 2002
+++ TSRM/tsrm_virtual_cwd.h     Mon Nov  4 18:24:15 2002
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: tsrm_virtual_cwd.h,v 1.22 2002/11/04 20:45:28 andi Exp $ */
+/* $Id: tsrm_virtual_cwd.h,v 1.23 2002/11/04 23:24:15 iliaa Exp $ */
 
 #ifndef VIRTUAL_CWD_H
 #define VIRTUAL_CWD_H
@@ -54,7 +54,7 @@
         (*(c) == '\\' && !IsDBCSLeadByte(*(c-1))))
 
 /* COPY_WHEN_ABSOLUTE also takes path as argument because netware needs it
-/* to account for volume name that is unique to NetWare absolute paths
+ * to account for volume name that is unique to NetWare absolute paths
  */
 #define COPY_WHEN_ABSOLUTE(path) 2
 #define IS_ABSOLUTE_PATH(path, len) \
@@ -144,7 +144,6 @@
 #endif
 #if !defined(TSRM_WIN32) && !defined(NETWARE)
 CWD_API int virtual_lstat(const char *path, struct stat *buf TSRMLS_DC);
-CWD_API char *virtual_link(char *buf, size_t size TSRMLS_DC);
 #endif
 CWD_API int virtual_unlink(const char *path TSRMLS_DC);
 CWD_API int virtual_mkdir(const char *pathname, mode_t mode TSRMLS_DC);
Index: php4/ext/standard/link.c
diff -u php4/ext/standard/link.c:1.41 php4/ext/standard/link.c:1.42
--- php4/ext/standard/link.c:1.41       Mon Oct 21 19:35:29 2002
+++ php4/ext/standard/link.c    Mon Nov  4 18:24:15 2002
@@ -16,7 +16,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: link.c,v 1.41 2002/10/21 23:35:29 iliaa Exp $ */
+/* $Id: link.c,v 1.42 2002/11/04 23:24:15 iliaa Exp $ */
 
 #include "php.h"
 #include "php_filestat.h"
@@ -58,24 +58,22 @@
 {
        zval **filename;
        char buff[MAXPATHLEN];
-       char *p;
        int ret;
-               
+
        if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &filename) == FAILURE) {
                WRONG_PARAM_COUNT;
        }
        convert_to_string_ex(filename);
 
-       p = virtual_link(Z_STRVAL_PP(filename), Z_STRLEN_PP(filename) TSRMLS_CC);
+       ret = readlink(Z_STRVAL_PP(filename), buff, MAXPATHLEN-1);
 
-       ret = readlink(p, buff, MAXPATHLEN-1);
        if (ret == -1) {
                php_error(E_WARNING, "readlink failed (%s)", strerror(errno));
                RETURN_FALSE;
        }
        /* Append NULL to the end of the string */
        buff[ret] = '\0';
-       
+
        RETURN_STRING(buff, 1);
 }
 /* }}} */



-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to