diff src/http/ngx_http_log_handler.h @ 479:c52408583801 release-0.1.14

nginx-0.1.14-RELEASE import *) Feature: the autoconfiguration directives: --http-client-body-temp-path=PATH, --http-proxy-temp-path=PATH, and --http-fastcgi-temp-path=PATH *) Change: the directory name for the temporary files with the client request body is specified by directive client_body_temp_path, by default it is <prefix>/client_body_temp. *) Feature: the ngx_http_fastcgi_module and the directives: fastcgi_pass, fastcgi_root, fastcgi_index, fastcgi_params, fastcgi_connect_timeout, fastcgi_send_timeout, fastcgi_read_timeout, fastcgi_send_lowat, fastcgi_header_buffer_size, fastcgi_buffers, fastcgi_busy_buffers_size, fastcgi_temp_path, fastcgi_max_temp_file_size, fastcgi_temp_file_write_size, fastcgi_next_upstream, and fastcgi_x_powered_by. *) Bugfix: the "[alert] zero size buf" error; the bug had appeared in 0.1.3. *) Change: the URI must be specified after the host name in the proxy_pass directive. *) Change: the %3F symbol in the URI was considered as the argument string start. *) Feature: the unix domain sockets support in the ngx_http_proxy_module. *) Feature: the ssl_engine and ssl_ciphers directives. Thanks to Sergey Skvortsov for SSL-accelerator.
author Igor Sysoev <igor@sysoev.ru>
date Tue, 18 Jan 2005 13:03:58 +0000
parents 42d11f017717
children
line wrap: on
line diff
--- a/src/http/ngx_http_log_handler.h
+++ b/src/http/ngx_http_log_handler.h
@@ -13,49 +13,54 @@
 #include <ngx_http.h>
 
 
-typedef u_char *(*ngx_http_log_op_pt) (ngx_http_request_t *r, u_char *buf,
-                                       uintptr_t data);
+typedef struct ngx_http_log_op_s  ngx_http_log_op_t;
+
+typedef u_char *(*ngx_http_log_op_run_pt) (ngx_http_request_t *r, u_char *buf,
+                                           ngx_http_log_op_t *op);
+
+typedef size_t (*ngx_http_log_op_getlen_pt) (ngx_http_request_t *r,
+                                             uintptr_t data);
 
-#define NGX_HTTP_LOG_COPY_SHORT  (ngx_http_log_op_pt) 0
-#define NGX_HTTP_LOG_COPY_LONG   (ngx_http_log_op_pt) -1
+typedef ngx_int_t (*ngx_http_log_op_compile_pt) (ngx_http_log_op_t *op,
+                                                 ngx_str_t *value);
 
-#define NGX_HTTP_LOG_ARG         (u_int) -1
+struct ngx_http_log_op_s {
+    size_t                      len;
+    ngx_http_log_op_getlen_pt   getlen;
+    ngx_http_log_op_run_pt      run;
+    uintptr_t                   data;
+};
 
 
 typedef struct {
-    size_t               len;
-    ngx_http_log_op_pt   op;
-    uintptr_t            data;
-} ngx_http_log_op_t;
-
-
-typedef struct {
-    ngx_str_t            name;
-    ngx_array_t         *ops;        /* array of ngx_http_log_op_t */
+    ngx_str_t                   name;
+    ngx_array_t                *ops;        /* array of ngx_http_log_op_t */
 } ngx_http_log_fmt_t;
 
 
 typedef struct {
-    ngx_str_t            name;
-    size_t               len;
-    ngx_http_log_op_pt   op;
+    ngx_str_t                   name;
+    size_t                      len;
+    ngx_http_log_op_compile_pt  compile;
+    ngx_http_log_op_getlen_pt   getlen;
+    ngx_http_log_op_run_pt      run;
 } ngx_http_log_op_name_t;
 
 
 typedef struct {
-    ngx_array_t          formats;    /* array of ngx_http_log_fmt_t */
+    ngx_array_t                 formats;    /* array of ngx_http_log_fmt_t */
 } ngx_http_log_main_conf_t;
 
 
 typedef struct {
-    ngx_open_file_t     *file;
-    ngx_array_t         *ops;        /* array of ngx_http_log_op_t */
+    ngx_open_file_t            *file;
+    ngx_array_t                *ops;        /* array of ngx_http_log_op_t */
 } ngx_http_log_t;
 
 
 typedef struct {
-    ngx_array_t         *logs;       /* array of ngx_http_log_t */
-    ngx_uint_t           off;        /* unsigned  off:1 */
+    ngx_array_t                *logs;       /* array of ngx_http_log_t */
+    ngx_uint_t                  off;        /* unsigned  off:1 */
 } ngx_http_log_loc_conf_t;