perl-modperl mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "David Dyer-Bennet" <d...@dd-b.net>
Subject Re: Actions of $r->update_mtime
Date Thu, 22 Jan 2004 19:09:16 GMT
Geoffrey Young <geoff@modperlcookbook.org> writes on 22 January 2004 at 14:02:45 -0500
 > 
 > >>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.

Oh, I see what you're saying.  What's happening is that if I decline,
it's getting *default*, rather than "what was previously configured".
Is that what you're saying?  Any way to push another content handler
on the stack, rather than replacing what's there?  (Yeah, I can
replace what's there with a list, I know how to do that.)

[snip]

 > >>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');

I seem to remember documentation explicitly limiting "notes" to being
*strings*, so this might be worth trying (although the notes method
really ought to force a string interpretation on the 1, in that
case).  I'll give this a try.  The code certainly does look like it
checks for that.  

 > > and I can't find any documentation anywhere
 > > referring to it; google
 > 
 > use the source, luke.

After buying a whole book on the topic, in addition to what's online?
Sheesh.  I guess if it's the only way, I'll have to.
-- 
David Dyer-Bennet, <mailto:dd-b@dd-b.net>, <http://www.dd-b.net/dd-b/>
RKBA: <http://noguns-nomoney.com> <http://www.dd-b.net/carry/>
Photos: <dd-b.lighthunters.net>  Snapshots: <www.dd-b.net/dd-b/SnapshotAlbum/>
Dragaera/Steven Brust: <http://dragaera.info/>

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


Mime
View raw message