diff options
| author | Igor Sysoev <igor@sysoev.ru> | 2009-10-26 17:32:17 +0000 |
|---|---|---|
| committer | Igor Sysoev <igor@sysoev.ru> | 2009-10-26 17:32:17 +0000 |
| commit | efdaec7003e37933e113b009407f2a62df2ec78a (patch) | |
| tree | fbf57f161e23d1254eb47a769ba69d83f9e5a5b7 /src/core/ngx_file.h | |
| parent | 7571f6c962e5b02abf01b2f1c9f84cb109728d4d (diff) | |
| download | nginx-efdaec7003e37933e113b009407f2a62df2ec78a.tar.gz nginx-efdaec7003e37933e113b009407f2a62df2ec78a.tar.bz2 | |
merge r3024, r3025, r3028, r3033, r3034, r3035, r3036:
allow cross device temporary files atomic copying
Diffstat (limited to 'src/core/ngx_file.h')
| -rw-r--r-- | src/core/ngx_file.h | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/src/core/ngx_file.h b/src/core/ngx_file.h index 7768e48e1..56315433b 100644 --- a/src/core/ngx_file.h +++ b/src/core/ngx_file.h @@ -73,16 +73,25 @@ typedef struct { ngx_uint_t path_access; time_t time; ngx_fd_t fd; - ngx_err_t rename_error; unsigned create_path:1; unsigned delete_file:1; - unsigned log_rename_error:1; ngx_log_t *log; } ngx_ext_rename_file_t; +typedef struct { + off_t size; + size_t buf_size; + + ngx_uint_t access; + time_t time; + + ngx_log_t *log; +} ngx_copy_file_t; + + typedef struct ngx_tree_ctx_s ngx_tree_ctx_t; typedef ngx_int_t (*ngx_tree_init_handler_pt) (void *ctx, void *prev); @@ -117,9 +126,9 @@ ngx_int_t ngx_add_path(ngx_conf_t *cf, ngx_path_t **slot); ngx_int_t ngx_create_pathes(ngx_cycle_t *cycle, ngx_uid_t user); ngx_int_t ngx_ext_rename_file(ngx_str_t *src, ngx_str_t *to, ngx_ext_rename_file_t *ext); +ngx_int_t ngx_copy_file(u_char *from, u_char *to, ngx_copy_file_t *cf); ngx_int_t ngx_walk_tree(ngx_tree_ctx_t *ctx, ngx_str_t *tree); -void ngx_init_temp_number(void); ngx_atomic_uint_t ngx_next_temp_number(ngx_uint_t collision); char *ngx_conf_set_path_slot(ngx_conf_t *cf, ngx_command_t *cmd, void *conf); @@ -128,4 +137,8 @@ char *ngx_conf_merge_path_value(ngx_conf_t *cf, ngx_path_t **path, char *ngx_conf_set_access_slot(ngx_conf_t *cf, ngx_command_t *cmd, void *conf); +extern ngx_atomic_t *ngx_temp_number; +extern ngx_atomic_int_t ngx_random_number; + + #endif /* _NGX_FILE_H_INCLUDED_ */ |
