You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Dean Gaudet <dg...@arctic.org> on 1997/09/23 00:22:56 UTC
[PATCH] PR#1133: workaround ETag in mod_include for 1.2.5
We've already solved this properly in 1.3. For 1.2.5 here is a workaround
that removes the ETag header from mod_include output when XBitHack Full is
set. Note that since set_last_modified does the conditional get
negotiation it's possible that a request from a client with an old
response (pre-this patch) can get a use_local_copy response due to ETags.
But I don't think this is worth worrying about.
Dean
Index: CHANGES
===================================================================
RCS file: /export/home/cvs/apache/src/CHANGES,v
retrieving revision 1.286.2.54
diff -u -r1.286.2.54 CHANGES
--- CHANGES 1997/09/22 21:58:49 1.286.2.54
+++ CHANGES 1997/09/22 22:18:53
@@ -1,5 +1,10 @@
Changes with Apache 1.2.5
+ *) mod_include when using XBitHack Full would send ETags in addition to
+ sending Last-Modifieds. This is incorrect HTTP/1.1 behaviour. A
+ workaround has been applied to 1.2.5, a more full solution will appear
+ in 1.3. [Dean Gaudet] PR#1133
+
*) Inetd mode (which is buggy) uses timeouts without having setup the
jmpbuffer. [Dean Gaudet] PR#1064
Index: mod_include.c
===================================================================
RCS file: /export/home/cvs/apache/src/mod_include.c,v
retrieving revision 1.33.2.5
diff -u -r1.33.2.5 mod_include.c
--- mod_include.c 1997/07/31 08:50:02 1.33.2.5
+++ mod_include.c 1997/09/22 22:18:55
@@ -1815,8 +1815,13 @@
/* OS/2 dosen't support Groups. */
&& (r->finfo.st_mode & S_IXGRP)
#endif
- && (errstatus = set_last_modified (r, r->finfo.st_mtime)))
- return errstatus;
+ ) {
+ errstatus = set_last_modified (r, r->finfo.st_mtime);
+ table_unset(r->headers_out, "ETag");
+ if (errstatus) {
+ return errstatus;
+ }
+ }
send_http_header(r);