summaryrefslogtreecommitdiffhomepage
path: root/src/os/win32/ngx_files.c (unfollow)
AgeCommit message (Collapse)AuthorFilesLines
2023-02-23Win32: non-ASCII names in ngx_fs_bsize(), ngx_fs_available().Maxim Dounin1-4/+42
This fixes potentially incorrect cache size calculations and non-working "min_free" when using cache in directories with non-ASCII names.
2023-02-23Win32: removed attempt to use a drive letter in ngx_fs_bsize().Maxim Dounin1-6/+0
Just a drive letter might not correctly represent file system being used, notably when using symlinks (as created by "mklink /d"). As such, instead of trying to call GetDiskFreeSpace() with just a drive letter, we now always use GetDiskFreeSpace() with full path. Further, it looks like the code to use just a drive letter never worked, since it tried to test name[2] instead of name[1] to be ':'.
2023-02-23Win32: non-ASCII names support in ngx_open_tempfile().Maxim Dounin1-0/+35
This makes it possible to use temporary directories with non-ASCII characters, either explicitly or via a prefix with non-ASCII characters in it.
2023-02-23Win32: non-ASCII names support in ngx_rename_file().Maxim Dounin1-0/+55
This makes it possible to upload files with non-ASCII characters when using the dav module (ticket #1433).
2023-02-23Win32: non-ASCII names support in ngx_delete_file().Maxim Dounin1-0/+36
This makes it possible to delete files with non-ASCII characters when using the dav module (ticket #1433).
2023-02-23Win32: reworked ngx_win32_rename_file() to use nginx wrappers.Maxim Dounin1-3/+3
This ensures that ngx_win32_rename_file() will support non-ASCII names when supported by the wrappers. Notably, this is used by PUT requests in the dav module when overwriting existing files with non-ASCII names (ticket #1433).
2023-02-23Win32: reworked ngx_win32_rename_file() to check errors.Maxim Dounin1-2/+10
Previously, ngx_win32_rename_file() retried on all errors returned by MoveFile() to a temporary name. It only make sense, however, to retry when the destination file already exists, similarly to the condition when ngx_win32_rename_file() is called. Retrying on other errors is meaningless and might result in an infinite loop.
2023-02-23Win32: non-ASCII directory names support in ngx_delete_dir().Maxim Dounin1-0/+36
This makes it possible to delete directories with non-ASCII characters when using the dav module (ticket #1433).
2023-02-23Win32: non-ASCII directory names support in ngx_create_dir().Maxim Dounin1-9/+71
This makes it possible to create directories under prefix with non-ASCII characters, as well as makes it possible to create directories with non-ASCII characters when using the dav module (ticket #1433). To ensure that the dav module operations are restricted similarly to other file operations (in particular, short names are not allowed), the ngx_win32_check_filename() function is used. It improved to support checking of just dirname, and now can be used to check paths when creating files or directories.
2023-02-23Win32: non-ASCII directory names support in ngx_getcwd().Maxim Dounin1-0/+34
This makes it possible to start nginx without a prefix explicitly set in a directory with non-ASCII characters in it.
2023-02-23Win32: non-ASCII names support in "include" with wildcards.Maxim Dounin1-33/+63
Notably, ngx_open_glob() now supports opening directories with non-ASCII characters, and pathnames returned by ngx_read_glob() are converted to UTF-8.
2023-02-23Win32: non-ASCII names support in autoindex (ticket #458).Maxim Dounin1-18/+237
Notably, ngx_open_dir() now supports opening directories with non-ASCII characters, and directory entries returned by ngx_read_dir() are properly converted to UTF-8.
2020-06-22Cache: introduced min_free cache clearing.Maxim Dounin1-0/+13
Clearing cache based on free space left on a file system is expected to allow better disk utilization in some cases, notably when disk space might be also used for something other than nginx cache (including nginx own temporary files) and while loading cache (when cache size might be inaccurate for a while, effectively disabling max_size cache clearing). Based on a patch by Adam Bambuch.
2018-12-24Win32: removed NGX_DIR_MASK concept.Maxim Dounin1-3/+18
Previous interface of ngx_open_dir() assumed that passed directory name has a room for NGX_DIR_MASK at the end (NGX_DIR_MASK_LEN bytes). While all direct users of ngx_dir_open() followed this interface, this also implied similar requirements for indirect uses - in particular, via ngx_walk_tree(). Currently none of ngx_walk_tree() uses provides appropriate space, and fixing this does not look like a right way to go. Instead, ngx_dir_open() interface was changed to not require any additional space and use appropriate allocations instead.
2017-08-09Style.Sergey Kandaurov1-0/+1
2014-08-03Style: use ngx_free() instead of free().Tatsuhiko Kubo1-1/+1
2014-07-05Win32: ngx_open_dir() and ngx_close_dir() fixes.Maxim Dounin1-0/+13
The ngx_open_dir() function changed to restore name passed to it. This fixes removing destination directory in dav module, as caught by dav.t. The ngx_close_dir() function introduced to properly convert errors, as FindClose() returns 0 on error.
2014-01-04Win32: support for UTF-16 surrogate pairs (ticket #457).Maxim Dounin1-2/+21
2013-10-31Win32: plugged memory leak.Maxim Dounin1-0/+2
2012-06-25Style.Maxim Dounin1-1/+1
2012-06-05Win32: disallowed access to various non-canonical name variants.Maxim Dounin1-33/+164
This includes trailings dots and spaces, NTFS streams (and short names, as previously checked). The checks are now also done in ngx_file_info(), thus allowing to use the "try_files" directive to protect external scripts.
2012-03-28Fixed win32 build after realpath changes in r4559.Maxim Dounin1-2/+2
2012-01-18Copyright updated.Maxim Konovalov1-0/+1
2011-08-22Fix buffer overrun under Windows.Maxim Dounin1-1/+2
2010-06-29ngx_create_file_mapping()Igor Sysoev1-0/+92
2010-06-14do not free() stack allocated bufferIgor Sysoev1-1/+0
2010-03-03compare long file names in case-insensitive mode,Igor Sysoev1-1/+1
the bug had been introduced in r3418
2010-01-28disable Win32 short file namesIgor Sysoev1-14/+50
2009-12-15fix Win32 error messages when an temporary file replaces an existent file:Igor Sysoev1-12/+6
*) do not rename an already renamed file *) now ngx_win32_rename_file() returns error code *) do not log failure inside ngx_win32_rename_file()
2009-10-14*) reset cached dirent.d_type after stat()Igor Sysoev1-1/+1
this fixes slash after link to a directory in ngx_http_autoindex_module; *) use cached dirent.d_type as hint on all systems the issues has been introduced in r2235
2009-09-30read_aheadIgor Sysoev1-0/+7
2009-09-25uniform ngx_directio_on/off() interface with other file functionsIgor Sysoev1-2/+2
2009-09-24test incomplete WriteFile()Igor Sysoev1-0/+7
2009-09-24log file name for read/write errorsIgor Sysoev1-2/+4
2009-09-24delete Win95 codeIgor Sysoev1-90/+12
2009-09-16win32 ngx_file_info() utf8 supportIgor Sysoev1-4/+16
2009-09-16preserve errno while ngx_free()Igor Sysoev1-3/+6
2009-07-13handle Win32 ReadFile() EOF state in Unix wayIgor Sysoev1-1/+7
2009-05-29fix logging in ngx_win32_rename_file()Igor Sysoev1-3/+7
2009-05-29add trailing zero to a file nameIgor Sysoev1-1/+1
2009-04-29uniform ngx_file_info() interface with ngx_fd_info()Igor Sysoev1-2/+2
2009-04-28introduce ngx_write_console() to support OEM code pagesIgor Sysoev1-0/+15
2009-04-08delete win32 ngx_file_append_mode() as we use reliableIgor Sysoev1-25/+0
FILE_APPEND_DATA|SYNCHRONIZE flags
2009-03-30win32 ngx_open_file() supports utf8 names and NGX_FILE_APPENDIgor Sysoev1-0/+111
2009-03-30ngx_fs_bsize()Igor Sysoev1-0/+20
2009-01-21use GetFileAttributesEx() instead of GetFileAttributes()Igor Sysoev1-21/+2
2009-01-21fix r1981 on win32Igor Sysoev1-3/+8
2008-09-27$realpath_rootIgor Sysoev1-0/+8
2008-09-12disable directio for unaligned reads in LinuxIgor Sysoev1-1/+7
2008-09-05*) autoconfigure struct dirent capabilitiesIgor Sysoev1-0/+1
*) move src/os/.../ngx_types.h's content into src/os/.../ngx_files.h and delete src/os/.../ngx_types.h