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