aboutsummaryrefslogtreecommitdiff
path: root/src/os/win32/ngx_files.c
Commit message (Collapse)AuthorAge
* Win32: non-ASCII names in ngx_fs_bsize(), ngx_fs_available().Maxim Dounin2023-02-23
| | | | | This fixes potentially incorrect cache size calculations and non-working "min_free" when using cache in directories with non-ASCII names.
* Win32: removed attempt to use a drive letter in ngx_fs_bsize().Maxim Dounin2023-02-23
| | | | | | | | | | 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 ':'.
* Win32: non-ASCII names support in ngx_open_tempfile().Maxim Dounin2023-02-23
| | | | | This makes it possible to use temporary directories with non-ASCII characters, either explicitly or via a prefix with non-ASCII characters in it.
* Win32: non-ASCII names support in ngx_rename_file().Maxim Dounin2023-02-23
| | | | | This makes it possible to upload files with non-ASCII characters when using the dav module (ticket #1433).
* Win32: non-ASCII names support in ngx_delete_file().Maxim Dounin2023-02-23
| | | | | This makes it possible to delete files with non-ASCII characters when using the dav module (ticket #1433).
* Win32: reworked ngx_win32_rename_file() to use nginx wrappers.Maxim Dounin2023-02-23
| | | | | | | | 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).
* Win32: reworked ngx_win32_rename_file() to check errors.Maxim Dounin2023-02-23
| | | | | | | | 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.
* Win32: non-ASCII directory names support in ngx_delete_dir().Maxim Dounin2023-02-23
| | | | | This makes it possible to delete directories with non-ASCII characters when using the dav module (ticket #1433).
* Win32: non-ASCII directory names support in ngx_create_dir().Maxim Dounin2023-02-23
| | | | | | | | | | | | 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.
* Win32: non-ASCII directory names support in ngx_getcwd().Maxim Dounin2023-02-23
| | | | | This makes it possible to start nginx without a prefix explicitly set in a directory with non-ASCII characters in it.
* Win32: non-ASCII names support in "include" with wildcards.Maxim Dounin2023-02-23
| | | | | Notably, ngx_open_glob() now supports opening directories with non-ASCII characters, and pathnames returned by ngx_read_glob() are converted to UTF-8.
* Win32: non-ASCII names support in autoindex (ticket #458).Maxim Dounin2023-02-23
| | | | | | 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.
* Cache: introduced min_free cache clearing.Maxim Dounin2020-06-22
| | | | | | | | | | | 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.
* Win32: removed NGX_DIR_MASK concept.Maxim Dounin2018-12-24
| | | | | | | | | | | | 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.
* Style.Sergey Kandaurov2017-08-09
|
* Style: use ngx_free() instead of free().Tatsuhiko Kubo2014-08-03
|
* Win32: ngx_open_dir() and ngx_close_dir() fixes.Maxim Dounin2014-07-05
| | | | | | | 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.
* Win32: support for UTF-16 surrogate pairs (ticket #457).Maxim Dounin2014-01-04
|
* Win32: plugged memory leak.Maxim Dounin2013-10-31
|
* Style.Maxim Dounin2012-06-25
|
* Win32: disallowed access to various non-canonical name variants.Maxim Dounin2012-06-05
| | | | | | 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.
* Fixed win32 build after realpath changes in r4559.Maxim Dounin2012-03-28
|
* Copyright updated.Maxim Konovalov2012-01-18
|
* Fix buffer overrun under Windows.Maxim Dounin2011-08-22
|
* ngx_create_file_mapping()Igor Sysoev2010-06-29
|
* do not free() stack allocated bufferIgor Sysoev2010-06-14
|
* compare long file names in case-insensitive mode,Igor Sysoev2010-03-03
| | | | the bug had been introduced in r3418
* disable Win32 short file namesIgor Sysoev2010-01-28
|
* fix Win32 error messages when an temporary file replaces an existent file:Igor Sysoev2009-12-15
| | | | | | *) do not rename an already renamed file *) now ngx_win32_rename_file() returns error code *) do not log failure inside ngx_win32_rename_file()
* *) reset cached dirent.d_type after stat()Igor Sysoev2009-10-14
| | | | | | | 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
* read_aheadIgor Sysoev2009-09-30
|
* uniform ngx_directio_on/off() interface with other file functionsIgor Sysoev2009-09-25
|
* test incomplete WriteFile()Igor Sysoev2009-09-24
|
* log file name for read/write errorsIgor Sysoev2009-09-24
|
* delete Win95 codeIgor Sysoev2009-09-24
|
* win32 ngx_file_info() utf8 supportIgor Sysoev2009-09-16
|
* preserve errno while ngx_free()Igor Sysoev2009-09-16
|
* handle Win32 ReadFile() EOF state in Unix wayIgor Sysoev2009-07-13
|
* fix logging in ngx_win32_rename_file()Igor Sysoev2009-05-29
|
* add trailing zero to a file nameIgor Sysoev2009-05-29
|
* uniform ngx_file_info() interface with ngx_fd_info()Igor Sysoev2009-04-29
|
* introduce ngx_write_console() to support OEM code pagesIgor Sysoev2009-04-28
|
* delete win32 ngx_file_append_mode() as we use reliableIgor Sysoev2009-04-08
| | | | FILE_APPEND_DATA|SYNCHRONIZE flags
* win32 ngx_open_file() supports utf8 names and NGX_FILE_APPENDIgor Sysoev2009-03-30
|
* ngx_fs_bsize()Igor Sysoev2009-03-30
|
* use GetFileAttributesEx() instead of GetFileAttributes()Igor Sysoev2009-01-21
|
* fix r1981 on win32Igor Sysoev2009-01-21
|
* $realpath_rootIgor Sysoev2008-09-27
|
* disable directio for unaligned reads in LinuxIgor Sysoev2008-09-12
|
* *) autoconfigure struct dirent capabilitiesIgor Sysoev2008-09-05
| | | | | *) move src/os/.../ngx_types.h's content into src/os/.../ngx_files.h and delete src/os/.../ngx_types.h