vendor/nginx/src/http/ngx_http_cache.h in nginxtra-1.6.3.9 vs vendor/nginx/src/http/ngx_http_cache.h in nginxtra-1.8.0.9
- old
+ new
@@ -22,12 +22,16 @@
#define NGX_HTTP_CACHE_REVALIDATED 6
#define NGX_HTTP_CACHE_HIT 7
#define NGX_HTTP_CACHE_SCARCE 8
#define NGX_HTTP_CACHE_KEY_LEN 16
+#define NGX_HTTP_CACHE_ETAG_LEN 42
+#define NGX_HTTP_CACHE_VARY_LEN 42
+#define NGX_HTTP_CACHE_VERSION 3
+
typedef struct {
ngx_uint_t status;
time_t valid;
} ngx_http_cache_valid_t;
@@ -51,24 +55,30 @@
ngx_file_uniq_t uniq;
time_t expire;
time_t valid_sec;
size_t body_start;
off_t fs_size;
+ ngx_msec_t lock_time;
} ngx_http_file_cache_node_t;
struct ngx_http_cache_s {
ngx_file_t file;
ngx_array_t keys;
uint32_t crc32;
u_char key[NGX_HTTP_CACHE_KEY_LEN];
+ u_char main[NGX_HTTP_CACHE_KEY_LEN];
ngx_file_uniq_t uniq;
time_t valid_sec;
time_t last_modified;
time_t date;
+ ngx_str_t etag;
+ ngx_str_t vary;
+ u_char variant[NGX_HTTP_CACHE_KEY_LEN];
+
size_t header_start;
size_t body_start;
off_t length;
off_t fs_size;
@@ -79,11 +89,17 @@
ngx_buf_t *buf;
ngx_http_file_cache_t *file_cache;
ngx_http_file_cache_node_t *node;
+#if (NGX_THREADS)
+ ngx_thread_task_t *thread_task;
+#endif
+
ngx_msec_t lock_timeout;
+ ngx_msec_t lock_age;
+ ngx_msec_t lock_time;
ngx_msec_t wait_time;
ngx_event_t wait_event;
unsigned lock:1;
@@ -91,21 +107,29 @@
unsigned updated:1;
unsigned updating:1;
unsigned exists:1;
unsigned temp_file:1;
+ unsigned reading:1;
+ unsigned secondary:1;
};
typedef struct {
+ ngx_uint_t version;
time_t valid_sec;
time_t last_modified;
time_t date;
uint32_t crc32;
u_short valid_msec;
u_short header_start;
u_short body_start;
+ u_char etag_len;
+ u_char etag[NGX_HTTP_CACHE_ETAG_LEN];
+ u_char vary_len;
+ u_char vary[NGX_HTTP_CACHE_VARY_LEN];
+ u_char variant[NGX_HTTP_CACHE_KEY_LEN];
} ngx_http_file_cache_header_t;
typedef struct {
ngx_rbtree_t rbtree;
@@ -120,10 +144,11 @@
struct ngx_http_file_cache_s {
ngx_http_file_cache_sh_t *sh;
ngx_slab_pool_t *shpool;
ngx_path_t *path;
+ ngx_path_t *temp_path;
off_t max_size;
size_t bsize;
time_t inactive;
@@ -140,10 +165,10 @@
ngx_int_t ngx_http_file_cache_new(ngx_http_request_t *r);
ngx_int_t ngx_http_file_cache_create(ngx_http_request_t *r);
void ngx_http_file_cache_create_key(ngx_http_request_t *r);
ngx_int_t ngx_http_file_cache_open(ngx_http_request_t *r);
-void ngx_http_file_cache_set_header(ngx_http_request_t *r, u_char *buf);
+ngx_int_t ngx_http_file_cache_set_header(ngx_http_request_t *r, u_char *buf);
void ngx_http_file_cache_update(ngx_http_request_t *r, ngx_temp_file_t *tf);
void ngx_http_file_cache_update_header(ngx_http_request_t *r);
ngx_int_t ngx_http_cache_send(ngx_http_request_t *);
void ngx_http_file_cache_free(ngx_http_cache_t *c, ngx_temp_file_t *tf);
time_t ngx_http_file_cache_valid(ngx_array_t *cache_valid, ngx_uint_t status);