| |
| #if (NGX_DEBUG) |
| |
| void |
| ndk_debug_helper (const char *func, const char *fmt, ...) |
| { |
| size_t len, flen, tlen; |
| char *s, *p, *e; |
| |
| // check to see if the format is empty |
| |
| flen = strlen (fmt); |
| |
| p = |
| |
| // build func name |
| |
| len = strlen (func); |
| |
| |
| if (flen == 0) |
| tlen = len + 1; |
| else |
| |
| char func_name [len + flen + 1]; |
| |
| s = func_name; |
| e = s + len; |
| |
| memcpy (s, func, len); |
| |
| // remove initial ngx_ |
| |
| if (strncmp (s, "ngx_", 4) == 0) |
| s += 4; |
| |
| // replace '_' with ' ' |
| |
| for (p=s; p<e; p++) { |
| if (*p == '_') |
| *p = ' '; |
| } |
| |
| vfprintf (stderr, const char *format, va_list ap) |
| } |
| |
| |
| void |
| ndk_debug_request_helper (const char *func, ngx_http_request_t *r) |
| { |
| ngx_http_posted_request_t *pr; |
| |
| // TODO : improve the format |
| |
| fprintf (stderr, "%s %.*s %.*s?%.*s c:%d m:%p r:%p ar:%p pr:%p", |
| func, |
| (int) r->method_name.len, r->method_name.data, |
| (int) r->uri.len, r->uri.data, |
| (int) r->args.len, r->args.data, |
| 0/*(int) r->main->count*/, r->main, |
| r, r->connection->data, r->parent); |
| |
| if (r->posted_requests) { |
| fprintf(stderr, " posted:"); |
| |
| for (pr = r->posted_requests; pr; pr = pr->next) { |
| fprintf (stderr, "%p,", pr); |
| } |
| } |
| |
| fprintf (stderr, "\n"); |
| } |
| |
| |
| #endif |