#if NFS_HACK
if (lockfn) {
- unlink(lockfn);
+ V_UNLINK(lockfn);
}
#endif
if (lockfn) efree(lockfn);
dbf = info->dbf;
#if NFS_HACK
- unlink(info->lockfn);
+ V_UNLINK(info->lockfn);
#else
if (info->lockfn) {
lockfd = V_OPEN((info->lockfn,O_RDWR,0644));
V_STAT(buf, &sbuf) == 0 &&
/* is it expired? */
(now - sbuf.st_atime) > maxlifetime) {
- unlink(buf);
+ V_UNLINK(buf);
nrdels++;
}
}
if (!_ps_files_path_create(buf, sizeof(buf), data, key))
return FAILURE;
- unlink(buf);
+ V_UNLINK(buf);
return SUCCESS;
}
static void _file_upload_dtor(char *file)
{
- unlink(file);
+ V_UNLINK(file);
}
RETURN_FALSE;
}
- ret = unlink((*filename)->value.str.val);
+ ret = V_UNLINK((*filename)->value.str.val);
if (ret == -1) {
php_error(E_WARNING, "Unlink failed (%s)", strerror(errno));
RETURN_FALSE;
#else
#define V_LSTAT(path, buff) virtual_lstat(path, buff)
#endif
+#define V_UNLINK(path) virtual_unlink(path)
#else
#define V_GETCWD(buff, size) getcwd(buff,size)
#define V_FOPEN(path, mode) fopen(path, mode)
#define V_GETWD(buf) getwd(buf)
#define V_STAT(path, buff) stat(path, buff)
#define V_LSTAT(path, buff) lstat(path, buff)
+#define V_UNLINK(path) unlink(path)
#endif
#include "zend_constants.h"
#endif
+CWD_API int virtual_unlink(const char *path)
+{
+ cwd_state new_state;
+ int retval;
+ CWDLS_FETCH();
+
+ 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;
+}
+
#if 0
main(void)
#ifndef ZEND_WIN32
CWD_API int virtual_lstat(const char *path, struct stat *buf);
#endif
+CWD_API int virtual_unlink(const char *path);
+
CWD_API int virtual_file_ex(cwd_state *state, const char *path, verify_path_func verify_path);
ZEND_BEGIN_MODULE_GLOBALS(cwd)