summaryrefslogtreecommitdiffhomepage
path: root/src/core/ngx_file.c (follow)
AgeCommit message (Collapse)AuthorFilesLines
2016-03-31Fixed logging.Sergey Kandaurov1-2/+2
2016-03-30Style.Ruslan Ermilov1-1/+1
2016-03-29Win32: additional error code NGX_EEXIST_FILE (ticket #910).Maxim Dounin1-2/+2
On Windows there are two possible error codes which correspond to the EEXIST error code: ERROR_FILE_EXISTS used by CreateFile(CREATE_NEW), and ERROR_ALREADY_EXISTS used by CreateDirectory(). MoveFile() seems to use both: ERROR_ALREADY_EXISTS when moving within one filesystem, and ERROR_FILE_EXISTS when copying a file to a different drive.
2016-03-18Threads: offloading of temp files writing to thread pools.Maxim Dounin1-0/+9
The ngx_thread_write_chain_to_file() function introduced, which uses ngx_file_t thread_handler, thread_ctx and thread_task fields. The task context structure (ngx_thread_file_ctx_t) is the same for both reading and writing, and can be safely shared as long as operations are serialized. The task->handler field is now always set (and not only when task is allocated), as the same task can be used with different handlers. The thread_write flag is introduced in the ngx_temp_file_t structure to explicitly enable use of ngx_thread_write_chain_to_file() in ngx_write_chain_to_temp_file() when supported by caller. In collaboration with Valentin Bartenev.
2015-04-07Core: limited levels of subdirectory hierarchy used for temp files.Sergey Kandaurov1-0/+4
Similar to ngx_http_file_cache_set_slot(), the last component of file->name with a fixed length of 10 bytes, as generated in ngx_create_temp_path(), is used as a source for the names of intermediate subdirectories with each one taking its own part. Ensure that the sum of specified levels with slashes fits into the length (ticket #731).
2015-04-07Core: removed excessive initialization in ngx_conf_set_path_slot().Sergey Kandaurov1-4/+0
Level hierarchy is pre-zeroed in ngx_pcalloc() of the surrounding ngx_path_t.
2015-04-07Core: fixed error handling on ngx_conf_full_name() failure.Sergey Kandaurov1-1/+1
2015-02-02Core: reverted prefix-based temp files (a9138c35120d).Roman Arutyunyan1-20/+8
The use_temp_path http cache feature is now implemented using a separate temp hierarchy in cache directory. Prefix-based temp files are no longer needed.
2015-02-02Core: supported directory skipping in ngx_walk_tree().Roman Arutyunyan1-1/+9
If pre_tree_handler() returns NGX_DECLINED, the directory is ignored.
2014-12-26Core: added prefix-based temporary files.Valentin Bartenev1-8/+20
Now, if the "path" parameter is NULL, ngx_create_temp_file() will use file->name as a predefined file path prefix.
2014-12-26Unified handling of ngx_create_temp_file() return value.Valentin Bartenev1-1/+1
The original check for NGX_AGAIN was surplus, since the function returns only NGX_OK or NGX_ERROR. Now it looks similar to other places. No functional changes.
2013-09-16Improved check for duplicate path names in ngx_add_path().Valentin Bartenev1-0/+8
The same path names with different "data" context should not be allowed. In particular it rejects configurations like this: proxy_cache_path /var/cache/ keys_zone=one:10m max_size=1g inactive=5m; proxy_cache_path /var/cache/ keys_zone=two:20m max_size=4m inactive=30s;
2013-09-16Removed surplus initializations from ngx_conf_set_path_slot().Valentin Bartenev1-3/+0
An instance of ngx_path_t is already zeroed by ngx_pcalloc().
2013-09-16Use ngx_pcalloc() in ngx_conf_merge_path_value().Valentin Bartenev1-5/+1
It initializes the "data" pointer of ngx_path_t that will be checked after subsequent changes.
2013-08-20Backed out f1a91825730a and 7094bd12c1ff.Maxim Dounin1-6/+2
While ngx_get_full_name() might have a bit more descriptive arguments, the ngx_conf_full_name() is generally easier to use when parsing configuration and limits exposure of cycle->prefix / cycle->conf_prefix details.
2013-08-06Replaced ngx_conf_full_name() with ngx_get_full_name().Valentin Bartenev1-2/+6
The ngx_get_full_name() function takes more readable arguments list.
2013-08-06Fixed memory leaks in the root and auth_basic_user_file directives.Valentin Bartenev1-0/+91
If a relative path is set by variables, then the ngx_conf_full_name() function was called while processing requests, which causes allocations from the cycle pool. A new function that takes pool as an argument was introduced.
2012-12-14Fixed handling of ngx_write_fd() and ngx_read_fd() errors.Valentin Bartenev1-4/+4
The ngx_write_fd() and ngx_read_fd() functions return -1 in case of error, so the incorrect comparison with NGX_FILE_ERROR (which is 0 on windows platforms) might result in inaccurate error message in the error log. Also the ngx_errno global variable is being set only if the returned value is -1.
2012-09-28Correct plural form for "path" in the whole source base.Andrey Belov1-6/+6
2012-04-03Fixed spelling in multiline C comments.Ruslan Ermilov1-1/+1
2012-01-18Copyright updated.Maxim Konovalov1-0/+1
2011-07-24elimination of reading cache files by cache loaderIgor Sysoev1-0/+1
2010-05-14ngx_str_set() and ngx_str_null()Igor Sysoev1-2/+1
2010-03-30do not set file time in ngx_copy_file() if the time is -1,Igor Sysoev1-4/+6
this fixes an issue when file is moved across devices
2009-12-17fix Win32 error message when an temporary file replaces an existent file:Igor Sysoev1-0/+4
return at once if ngx_win32_rename_file() was not failed and do not try to delete already the renamed temporary file
2009-12-15fix Win32 error messages when an temporary file replaces an existent file:Igor Sysoev1-11/+1
*) 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-14ignore EACCES errors for top level directories in ngx_create_full_path()Igor Sysoev1-2/+11
2009-10-14do not create Win32 drive letter in ngx_create_full_path()Igor Sysoev1-1/+7
2009-08-21*) share temporary number between workersIgor Sysoev1-14/+9
*) randomize collision offset
2009-08-20test EXDEV after path creationIgor Sysoev1-1/+0
2009-08-20fix copy failure logging and stale files removal, introduced in r3025Igor Sysoev1-8/+17
2009-08-20fix copy destination name length, introduced in r3025Igor Sysoev1-2/+2
2009-08-13fix building on 64-bit platforms, introduced in r3025Igor Sysoev1-2/+2
2009-08-12allow cross device temporary files atomic copying:Igor Sysoev1-4/+170
*) ngx_copy_file() *) delete ngx_ext_rename_file_t.log_rename_error and .rename_error fields
2009-08-11NGX_ENOPATHIgor Sysoev1-15/+3
2009-08-10cache loader processIgor Sysoev1-1/+3
2009-05-28Win32 returns ERROR_PATH_NOT_FOUND instead of ERROR_FILE_NOT_FOUNDIgor Sysoev1-2/+8
2009-04-29uniform ngx_file_info() interface with ngx_fd_info()Igor Sysoev1-1/+3
2009-03-30introduce cache manager instead of cache cleanerIgor Sysoev1-2/+2
2009-03-23a prelimiary proxy cache supportIgor Sysoev1-1/+44
2009-02-24small optimization: " == NGX_ERROR" > " != NGX_OK"Igor Sysoev1-1/+1
2008-12-10use ngx_ext_rename_file() for single file MOVEIgor Sysoev1-7/+11
2008-06-17*) back out r2040Igor Sysoev1-1/+1
*) refactor ngx_palloc() *) introduce ngx_pnalloc() *) additional pool blocks have smaller header
2008-03-03C++ compatibilityIgor Sysoev1-1/+1
2008-01-03transform ngx_create_path_and_rename_file() to ngx_ext_rename_file()Igor Sysoev1-11/+19
2007-12-18comment ngx_walk_tree()Igor Sysoev1-0/+18
2007-12-17ngx_create_hashed_filename() does not need ngx_file_tIgor Sysoev1-16/+15
2007-12-17create the only cleanupIgor Sysoev1-5/+5
2007-12-10move condition declarations inside blocks where they are usedIgor Sysoev1-4/+3
2007-12-07ngx_create_path_and_rename_file()Igor Sysoev1-0/+83