stas 2004/05/12 18:45:30
Modified: src/modules/perl modperl_filter.c Log: - better tracing (show the actual data as in modperl_io_apache.c) - extra comments Revision Changes Path 1.89 +28 -17 modperl-2.0/src/modules/perl/modperl_filter.c Index: modperl_filter.c =================================================================== RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_filter.c,v retrieving revision 1.88 retrieving revision 1.89 diff -u -u -r1.88 -r1.89 --- modperl_filter.c 4 May 2004 06:19:11 -0000 1.88 +++ modperl_filter.c 13 May 2004 01:45:30 -0000 1.89 @@ -139,8 +139,8 @@ const char *body; int status; - MP_TRACE_f(MP_FUNC, "\n\n\tparsing headers: %d bytes [%s]\n", len, - apr_pstrmemdup(wb->pool, buf, len)); + MP_TRACE_f(MP_FUNC, "\n\n\tparsing headers: %db [%s]\n", len, + MP_TRACE_STR_TRUNC(wb->pool, buf, len)); status = modperl_cgi_header_parse(r, (char *)buf, &len, &body); @@ -176,9 +176,10 @@ APR_BRIGADE_INSERT_TAIL(bb, bucket); } - MP_TRACE_f(MP_FUNC, "\n\n\twrite out: %d bytes\n" + MP_TRACE_f(MP_FUNC, "\n\n\twrite out: %db [%s]\n" "\t\tfrom %s\n\t\tto %s filter handler\n", len, + MP_TRACE_STR_TRUNC(wb->pool, buf, len), ((wb->r && wb->filters == &wb->r->output_filters) ? "response handler" : "current filter handler"), MP_FILTER_NAME(*(wb->filters))); @@ -589,17 +590,19 @@ /*modperl_brigade_dump(filter->bb_in, stderr);*/ MP_TRACE_f(MP_FUNC, MP_FILTER_NAME_FORMAT - "wanted: %d bytes\n", + "wanted: %db\n", MP_FILTER_NAME(filter->f), wanted); if (filter->remaining) { if (filter->remaining >= wanted) { MP_TRACE_f(MP_FUNC, MP_FILTER_NAME_FORMAT - "eating and returning %d of " - "remaining %d leftover bytes\n", + "eating and returning %d [%s]\n\tof " + "remaining %db\n", MP_FILTER_NAME(filter->f), - wanted, filter->remaining); + wanted, + MP_TRACE_STR_TRUNC(filter->pool, filter->leftover, wanted), + filter->remaining); sv_catpvn(buffer, filter->leftover, wanted); filter->leftover += wanted; filter->remaining -= wanted; @@ -607,7 +610,7 @@ } else { MP_TRACE_f(MP_FUNC, MP_FILTER_NAME_FORMAT - "eating remaining %d leftover bytes\n", + "eating remaining %db\n", MP_FILTER_NAME(filter->f), filter->remaining); sv_catpvn(buffer, filter->leftover, filter->remaining); @@ -632,7 +635,7 @@ if (filter->rc == APR_SUCCESS) { MP_TRACE_f(MP_FUNC, MP_FILTER_NAME_FORMAT - "read in: %s bucket with %d bytes (0x%lx)\n", + "read in: %s bucket with %db (0x%lx)\n", MP_FILTER_NAME(filter->f), filter->bucket->type->name, buf_len, @@ -665,9 +668,10 @@ MP_TRACE_f(MP_FUNC, MP_FILTER_NAME_FORMAT - "return: %d bytes from %d bucket%s (%d bytes leftover)\n", + "return: %db from %d bucket%s [%s]\n\t(%db leftover)\n", MP_FILTER_NAME(filter->f), len, num_buckets, ((num_buckets == 1) ? "" : "s"), + MP_TRACE_STR_TRUNC(filter->pool, SvPVX(buffer), len), filter->remaining); return len; @@ -785,11 +789,10 @@ apr_bucket_alloc_t *ba = filter->f->c->bucket_alloc; char *copy = apr_pmemdup(filter->pool, buf, *len); apr_bucket *bucket = apr_bucket_transient_create(copy, *len, ba); - /* MP_TRACE_f(MP_FUNC, "writing %d bytes: %s\n", *len, copy); */ MP_TRACE_f(MP_FUNC, MP_FILTER_NAME_FORMAT - "write out: %d bytes:\n", - MP_FILTER_NAME(filter->f), - *len); + "write out: %db [%s]:\n", + MP_FILTER_NAME(filter->f), *len, + MP_TRACE_STR_TRUNC(filter->pool, copy, *len)); APR_BRIGADE_INSERT_TAIL(filter->bb_out, bucket); /* modperl_brigade_dump(filter->bb_out, stderr); */ return APR_SUCCESS; @@ -882,11 +885,12 @@ if ((av = dcfg->handlers_per_dir[idx])) { modperl_handler_t **handlers = (modperl_handler_t **)av->elts; int i; - ap_filter_t *f; for (i=0; i<av->nelts; i++) { modperl_filter_ctx_t *ctx; + ap_filter_t *f; + /* process non-mod_perl filter handlers */ if ((handlers[i]->attrs & MP_FILTER_HTTPD_HANDLER)) { addfunc(handlers[i]->name, NULL, NULL, c); MP_TRACE_f(MP_FUNC, @@ -895,9 +899,11 @@ continue; } + /* skip non-connection level filters, e.g. request filters + * configured outside the resource container */ if (!(handlers[i]->attrs & MP_FILTER_CONNECTION_HANDLER)) { MP_TRACE_f(MP_FUNC, - "%s is not a FilterConnection handler\n", + "%s is not a FilterConnection handler, skipping\n", handlers[i]->name); continue; } @@ -955,6 +961,7 @@ int registered = 0; ap_filter_t *f; + /* process non-mod_perl filter handlers */ if ((handlers[i]->attrs & MP_FILTER_HTTPD_HANDLER)) { addfunc(handlers[i]->name, NULL, r, r->connection); MP_TRACE_f(MP_FUNC, @@ -963,9 +970,13 @@ continue; } + /* skip non-request level filters, e.g. connection filters + * configured outside the resource container, merged into + * resource's dcfg->handlers_per_dir[] entry. + */ if ((handlers[i]->attrs & MP_FILTER_CONNECTION_HANDLER)) { MP_TRACE_f(MP_FUNC, - "%s is not a FilterRequest handler\n", + "%s is not a FilterRequest handler, skipping\n", handlers[i]->name); continue; }