If the concensus says "Please don't Extend Options", I will provide this
patch as a directive.
Phil
ps. Now if we could just get a concensus.....
> -----Original Message-----
> From: William A. Rowe, Jr. [SMTP:[EMAIL PROTECTED]]
> Sent: Wednesday, May 02, 2001 10:42 PM
> To: [EMAIL PROTECTED]; Dietz, Phil E.
> Subject: Re: [RFC] InodeEtag option
>
> Folks,
>
> I thoroughly support this patch (as an Options flag or as a stand-alone
> indicator) for 1.3.20. I'm +1 on (finally) extending the Options byte,
> but
> +1 on the alternative since folks object.
>
> Rodent: Extending Options has been nixed in the past [no opinion]
> Joshua: Options is already overloaded, confusing [a -.5, perhaps?]
> Marc: Options is depreciated NCSA compatibility cruft
>
> Phil, I can't find your original patch (sans Options.) I'd suggest the
> directive ETagIdentity flag (on or off, default of on for most platforms,
> perhaps an IFDEF for win32/os2 to off.)
>
> Bill
>
> ----- Original Message -----
> From: "Dietz, Phil E." <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Monday, February 26, 2001 3:44 PM
> Subject: [RFC] InodeEtag option
>
>
> > OK, I converted my ETag patch to use Options. Of note:
> >
> > - the allow_options_t size increased to a long because all 8 bits of
> char
> > were in use.
> > - if InodeEtag is not present in Options, it uses inodes like the
> current
> > behaviour.
> > - the patch below is beta and against version 1.3.17. Newer ones
> against
> > 1.3.19 to follow.
> >
> > I will test with Insure later this week.
> > Phil Dietz
> >
> > Patch Version 1.0:
> >
> > --- ../apache_1.3.17/src/main/http_protocol.c Thu Jan 18 07:25:07 2001
> > +++ src/main/http_protocol.c Mon Feb 26 11:56:23 2001
> > @@ -656,16 +656,30 @@
> > * we send a weak tag instead of a strong one, since it could
> > * be modified again later in the second, and the validation
> > * would be incorrect.
> > + *
> > + * The use of the inode is controlled with the InodeEtag Option.
> > + * Disabling allows browser-side cacheing (304s) to happen more
> often
> > + * when serving default_handler objects from web farms with > 1
> unit.
> > */
> >
> > weak = ((r->request_time - r->mtime > 1) && !force_weak) ? "" :
> "W/";
> >
> > if (r->finfo.st_mode != 0) {
> > - etag = ap_psprintf(r->pool,
> > +
> > + if (ap_allow_options(r) & OPT_INODE_ETAG) {
> > + etag = ap_psprintf(r->pool,
> > "%s\"%lx-%lx-%lx\"", weak,
> > (unsigned long) r->finfo.st_ino,
> > (unsigned long) r->finfo.st_size,
> > (unsigned long) r->mtime);
> > + }
> > + else {
> > + etag = ap_psprintf(r->pool,
> > + "%s\"%lx-%lx\"", weak,
> > + (unsigned long) r->finfo.st_size,
> > + (unsigned long) r->mtime);
> > + }
> > +
> > }
> > else {
> > etag = ap_psprintf(r->pool, "%s\"%lx\"", weak,
> >
> >
> > --- ../apache_1.3.17/src/main/http_core.c Mon Jan 15 12:04:57 2001
> > +++ src/main/http_core.c Mon Feb 26 14:28:40 2001
> > @@ -1298,6 +1298,9 @@
> > else if (!strcasecmp(w, "RunScripts")) { /* AI backcompat. Yuck
> */
> > opt = OPT_MULTI|OPT_EXECCGI;
> > }
> > + else if (!strcasecmp(w, "InodeEtag")) {
> > + opt = OPT_INODE_ETAG;
> > + }
> > else if (!strcasecmp(w, "None")) {
> > opt = OPT_NONE;
> > }
> >
> > --- ../apache_1.3.17/src/include/http_core.h Mon Jan 15 12:04:33 2001
> > +++ src/include/http_core.h Mon Feb 26 14:43:18 2001
> > @@ -84,7 +84,8 @@
> > #define OPT_INCNOEXEC 32
> > #define OPT_SYM_OWNER 64
> > #define OPT_MULTI 128
> > -#define OPT_ALL (OPT_INDEXES|OPT_INCLUDES|OPT_SYM_LINKS|OPT_EXECCGI)
> > +#define OPT_INODE_ETAG 256
> > +#define OPT_ALL
> > (OPT_INDEXES|OPT_INCLUDES|OPT_SYM_LINKS|OPT_EXECCGI|OPT_INODE_ETAG)
> >
> > /* options for get_remote_host() */
> > /* REMOTE_HOST returns the hostname, or NULL if the hostname
> > @@ -178,7 +179,7 @@
> >
> > /* Per-directory configuration */
> >
> > -typedef unsigned char allow_options_t;
> > +typedef unsigned long allow_options_t;
> > typedef unsigned char overrides_t;
> >
> > typedef struct {
> >
> >