>>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