1 #ifndef DDEBUG_H
2 #define DDEBUG_H
3 
4 #include <ngx_config.h>
5 #include <ngx_core.h>
6 
7 #if defined(DDEBUG) && (DDEBUG)
8 
9 #   define dd_dump_chain_size() { \
10         int              n; \
11         ngx_chain_t     *cl; \
12             \
13         for (n = 0, cl = ctx->out; cl; cl = cl->next, n++) { \
14         } \
15             \
16         dd("chain size: %d", n); \
17     }
18 
19 #   if (NGX_HAVE_VARIADIC_MACROS)
20 
21 #       define dd(...) fprintf(stderr, "rds-csv *** %s: ", __func__); \
22             fprintf(stderr, __VA_ARGS__); \
23             fprintf(stderr, " at %s line %d.\n", __FILE__, __LINE__)
24 
25 #   else
26 
27 #include <stdarg.h>
28 #include <stdio.h>
29 
30 #include <stdarg.h>
31 
32 static ngx_inline void
dd(const char * fmt,...)33 dd(const char * fmt, ...) {
34 }
35 
36 #    endif
37 
38 #else
39 
40 #   define dd_dump_chain_size()
41 
42 #   if (NGX_HAVE_VARIADIC_MACROS)
43 
44 #       define dd(...)
45 
46 #   else
47 
48 #include <stdarg.h>
49 
50 static ngx_inline void
dd(const char * fmt,...)51 dd(const char * fmt, ...) {
52 }
53 
54 #   endif
55 
56 #endif
57 
58 #if defined(DDEBUG) && (DDEBUG)
59 
60 #define dd_check_read_event_handler(r)   \
61     dd("r->read_event_handler = %s", \
62         r->read_event_handler == ngx_http_block_reading ? \
63             "ngx_http_block_reading" : \
64         r->read_event_handler == ngx_http_test_reading ? \
65             "ngx_http_test_reading" : \
66         r->read_event_handler == ngx_http_request_empty_handler ? \
67             "ngx_http_request_empty_handler" : "UNKNOWN")
68 
69 #define dd_check_write_event_handler(r)   \
70     dd("r->write_event_handler = %s", \
71         r->write_event_handler == ngx_http_handler ? \
72             "ngx_http_handler" : \
73         r->write_event_handler == ngx_http_core_run_phases ? \
74             "ngx_http_core_run_phases" : \
75         r->write_event_handler == ngx_http_request_empty_handler ? \
76             "ngx_http_request_empty_handler" : "UNKNOWN")
77 
78 #else
79 
80 #define dd_check_read_event_handler(r)
81 #define dd_check_write_event_handler(r)
82 
83 #endif
84 
85 #endif /* DDEBUG_H */
86