Apache Development Gurus:
I've worked with Apache for awhile now, but this is my first time tinkering with the source code for one of its modules. I'd like to alter mod_include to print out as a HTML comment all server side include references. My apologies if this is a trivial matter. For instance, if an HTML page has an SSI: <body> <!--#include virtual=”/foo/bar.html” --> </body> Mod_include outputs the content of /foo/bar.html: <body> (Content from /foo/bar.html) </body> I'd like to tweak mod_include to also output the fragment path: <body> <!—fragment=”/foo/bar.html” --> (Content from /foo/bar.html)</body> I've been able to successfully print out the include path *after* the filter has processed the SSI, but I'd like to add a comment before processing of the SSI. Here's a snippet of the handle_include method from mod_include.c that I've changed: //..etc.. parsed_string = ap_ssi_parse_string(ctx, tag_val, NULL, 0, SSI_EXPAND_DROP_NAME); //New code APR_BRIGADE_INSERT_TAIL(bb, apr_bucket_pool_create("<!-- fragment='", strlen("<!-- fragment='"), ctx->pool, f->c->bucket_alloc)); APR_BRIGADE_INSERT_TAIL(bb, apr_bucket_pool_create(parsed_string, strlen(parsed_string), ctx->pool, f->c->bucket_alloc)); APR_BRIGADE_INSERT_TAIL(bb, apr_bucket_pool_create("' -->", strlen("' -->"), ctx->pool, f->c->bucket_alloc)); //End new code //Original source code -- continues to process include if (tag[0] == 'f') { char *newpath; apr_status_t rv; /* be safe; only files in this directory or below allowed */ rv = apr_filepath_merge(&newpath, NULL, parsed_string, APR_FILEPATH_SECUREROOTTEST | APR_FILEPATH_NOTABSOLUTE, ctx->dpool); if (rv != APR_SUCCESS) { error_fmt = "unable to include file \"%s\" in parsed file %s"; } else { rr = ap_sub_req_lookup_file(newpath, r, f->next); } } else { rr = ap_sub_req_lookup_uri(parsed_string, r, f->next); } //etc... The modifications above will print the fragment path after the SSI content: <body> (Content from /foo/bar.html) <!—fragment=”/foo/bar.html” --> </body> What updates do I need to make to this code to force the fragment path to be printed before the SSI content: <body> <!—fragment=”/foo/bar.html” --> (Content from /foo/bar.html) </body> Any guidance on this matter would be greatly appreciated. Thanks, Travis