>>the etag and last-modified headers setting has nothing to do with mod_perl >>in this case - it's done by default_handler, so if you fallback to >>default_handler then you get to deal with its logic and results. > > > That can't be what's happening; *without* my module, the request is > served with *no* last-modified header and *no* etag header -- because > it's a document parsed for SSI, and the default handler therefore > doesn't provide those things.
well, that's two different things. if you accept the content phase and return DECLINED, you get the default-handler. if you don't accept the request, then you're getting server-parsed (or whatever else you set it to). so your module is making a difference, but it's not mod_perl's fault - you'd get the same result if you DECLINED from a C content handler. > > *With* my module, it's served with the last-modified date specified in > my handler -- *not* the date on the file, for example; and it changes > if I change what my module does -- and with an ETAG value that it gets > from somewhere. > > >>>And no documented syntax of set_etag *removes* an etag header, and >>>undef and 0 haven't given the desired results. >>> >>>So, any suggestions? >> >>try >> >>$r->notes('no-etag' => 1); > > > This makes no difference, it should, or else something is greatly amuck with your situation - I've used it myself with success. API_EXPORT_NONSTD(int) ap_send_header_field(request_rec *r, const char *fieldname, const char *fieldval) { if (strcasecmp(fieldname, "ETag") == 0) { if (ap_table_get(r->notes, "no-etag") != NULL) { return 1; } } return (0 < ap_rvputs(r, fieldname, ": ", fieldval, CRLF, NULL)); } even though this code checks for non-NULL and '1' ought to work fine, try $r->notes('no-etag' => 'omit'); > and I can't find any documentation anywhere > referring to it; google use the source, luke. --Geoff -- Reporting bugs: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html List etiquette: http://perl.apache.org/maillist/email-etiquette.html