Re: DAV and lazy evaluation

2007-03-24 Thread Greg Marr

At 12:11 PM 3/24/2007, Justin Erenkrantz wrote:

I don't want to propose a bunch of tiny changes like this,
but I'm looking towards a possible review of mod_dav.
Meanwhile, anyone BTDT and have insights to share?


What is BTDT?  -- justin


Been There, Done That



Re: 3.0 - Proposed Requirements

2007-02-14 Thread Greg Marr

At 08:33 AM 2/14/2007, Garrett Rooney wrote:

On 2/14/07, Paul Querna <[EMAIL PROTECTED]> wrote:
This proposed list of requirements for a 3.0 platform. this list 
enables
a 'base' level of performance and design decisions to be made. If 
others

can make designs work with 'lessor' requirements, all the better, but
I'm not worried about it.

Proposed Requirements:
- C99 Compiler.


Are there any C99 compilers?  I was under the impression that GCC was
close, but nobody else really seemed to be pushing for it (i.e.
Microsoft doesn't seem to care).


According to all the information I've found, the only C99 features 
that Visual Studio 2005 supports are "long long", variadic macros, 
and C++ style comments (which they've supported for years because of 
requests from C++ customers).




Re: Win x64 build targets?

2006-11-02 Thread Greg Marr

At 07:56 AM 11/2/2006, Ivan Ristic wrote:

BTW, what's a "round tuit"? :)


It's a play on words:
"I'll do it when I get around to it" -> "I'll do it when I get a 
round tuit"


If you don't have enough round tuits, you don't have the time to do 
something.




Re: svn commit: r468373 - in /httpd/httpd/trunk: CHANGES modules/cache/mod_cache.c modules/cache/mod_cache.h modules/cache/mod_disk_cache.c modules/cache/mod_disk_cache.h modules/cache/mo

2006-10-27 Thread Greg Marr

At 01:41 PM 10/27/2006, Davi Arnaut wrote:

Niklas Edmundsson wrote:
> And when you have a file backend, you want to hit your disk cache 
and
> not the backend when delivering data to a client. People might 
think
> that this doesn't matter, but for large files, especially larger 
than
> RAM in your machine, you usually go disk-bound without much help 
from

> the OS disk cache.

But that's a corner case. There is no reason in doing this for small
files (common case). For example, in a enterprise grade server 
memory is

cheap and permanent storage is slow and expensive.


So why would this server be using mod_disk_cache in that 
case?  Shouldn't this server be using mod_mem_cache?  Selecting 
mod_disk_cache over mod_mem_cache means it's better to serve the 
cache from disk rather than from memory.  If serving from the disk on 
the original request is too slow, then wouldn't serving from the disk 
on the subsequent requests be too slow as well?




Re: [PATCH] Support for external listener

2006-03-20 Thread Greg Marr

At 10:39 AM 3/20/2006, Sander Temme wrote:

On Mar 20, 2006, at 12:26 AM, Graham Leggett wrote:


Sander Temme wrote:


What do you, the httpd dev community, think of:
1) the concept?


This kind of thing is definitely overdue - tomcat has had this for
ages.


2) the attached implementation?


Tomcat lets you override the address as well, although I guess this
would be covered by the use of ServerName and ServerAlias.


Yes, I expect to handle that part of the problem with the existing 
directive.


Isn't the port already handled by existing directives?



Re: Code update to handle apache dynamic configuration updates to httpd.conf.

2005-12-21 Thread Greg Marr

Prathama first wrote:
But my requirement is that I shouln't restart the apache web server 
while

updating the certificates. As there are many other requests to other
virtual hosts are being processed.


Prathama then wrote:
But the requirement for my project itself is to be able to update 
the configuration (update SSL certificates/key of a virtual host) 
dynamically without restart.


I think if you reworded your requirements a bit, then you would have 
a better chance at finding a solution that will work for you.


"My requirement is that I update the certificate without losing the 
many other requests to other virtual hosts that are being processed."




Re: macro facility/default conf file/auth groups

2005-08-04 Thread Greg Marr

At 12:52 PM 8/4/2005, Paul A Houle wrote:
(2) This particular system has a production and a test instance,  so 
I'd love to have a way to set variables that I can interpolate into 
arbitrary strings.  For instance,  everything connected with the 
production system may be under


This already exists in mod_macro (google knows where it is).



Re: mod_smtpd design.

2005-07-01 Thread Greg Marr

At 11:34 AM 7/1/2005, Rian A Hunter wrote:

Quoting Garrett Rooney <[EMAIL PROTECTED]>:
> Rian Hunter wrote:
> > type misc_smtp_handler(request_rec *r) {
> > smtpd_request_rec *smtp_data;
> >
> > if (strncmp("http", r->protocol_name, 4)) {
> > // decline to handle, this module doesn't handle
> > // http requests.
> > }
> > //then get smtpd specific data
> > smtp_data = get_smtpd_request(r);
> >
> > // do some handlin'
> > }
> >
> > The advantage to this approach is a less bulky (but more all
> > encompassing) request_rec with support for an arbitrary amount 
of

> > protocols and protocol specific data.
>
> Rather than inserting dozens of strcmps all throught the 
processing, I'd
> prefer to store an int identifying the protocol, and just have a 
simple

> compare.  No reason to burn CPU on the strcmp if we don't have to.
>
> -garrett
>

The reason I suggested a strcmp is that it gives freedom to module 
developers to
set and implement any protocol they like. Doing integer comparisons 
would
require us to maintain a list of "official" integer->protocol 
mappings, but
there may be other ways to approach it without having that 
constraint. Maybe we
can use the official iana port description list to specifiy 
protocols like 80

means http, 25 means smtp, 143 means imap etc.


It doesn't need to be a compile-time mapping.  There could be a 
per-process mapping from string to integer.  On load, each module 
calls a function to register the protocols that they're interested 
in.  If the protocol has already been registered, its integer is 
returned.  If not, it is given the next slot in the protocol table, 
and the new integer is returned.




Re: HTTPD 2.1 (Head) Build issues for NetWare...

2005-06-17 Thread Greg Marr

At 10:42 AM 6/17/2005, William A. Rowe, Jr. wrote:
Checkout date/time is generally the right choice for developers, 
because otherwise make doesn't always pick up when a file has 
changed.  (I've been bit by the Visual SourceSafe "modification 
time" default enough times.)


Although - heh - you are assuming the order of the checked out files 
happen to be stacked so that the dependency happens to be a fraction 
of a second older than the target :)


Actually, I'm assuming that there are no checked in files that are 
dependents of other checked in files, (no generated files ever 
checked in) since that's also asking for trouble (been there, done 
that).




Re: HTTPD 2.1 (Head) Build issues for NetWare...

2005-06-16 Thread Greg Marr

At 12:01 PM 6/16/2005, William A. Rowe, Jr. wrote:
Back to httpd land; the question is --- is this the right choice for 
*our tarballs*?  Which may or may not be related to the question 
above.  In any case; this is useful metadata even for end users who 
build the package for the reasons I mentioned; does anyone have a 
desire/justification to lose the commit dates and use the RM's 
checkout date?


It seems to me that modification or commit date/time is the right 
choice for *tarballs*.


Checkout date/time is generally the right choice for developers, 
because otherwise make doesn't always pick up when a file has 
changed.  (I've been bit by the Visual SourceSafe "modification time" 
default enough times.)




Re: do we still want sendfile enabled with our default conf files?

2005-03-18 Thread Greg Marr
At 11:23 AM 3/18/2005, Justin Erenkrantz wrote:
I absolutely refuse to punish users who are using good OSes because 
some OSes are brain-dead.  This is exactly the role that APR is 
meant to fill

Feel free to advocate Linux always returning APR_ENOTIMPL for 
sendfile - I don't care.  However, blocking sendfile on non-buggy 
OSes is not a solution that I am willing to sign off on.  -- justin
Isn't this about a change to not enable sendfile in the default HTTPd 
config, not a change to APR to disable sendfile?  In that case, this 
won't affect existing HTTPd users, because they already have it 
enabled in their config, and the default config never replaces an 
existing config.



Re: [OT] Developer lists and Reply-To header

2004-09-23 Thread Greg Marr
At 07:20 AM 9/23/2004, Mladen Turk wrote:
Is there any reason why apr, apr-util, httpd mailing lists have 
Reply-To header set to the sender and not to the list itself. I 
think almost all other lists has the 'Replay-To' header set to the 
list itself. I mean, I'm receiving the messages from the list and 
not from the particular poster, so I should reply to the list, right?
Search for
reply-to considered harmful
on Google and you'll find more information than you ever wanted to 
read about both sides of the issue.

I found myself couple of times replying to the original sender by 
default, while my intention was to reply to the list. The solution 
is either to 'reply to all' (why would anyone wish to receive two 
messages about the same subject?) or doing that by hand.
The big question is which is worse, sending a message to the list 
when your intention was to send it to a single person, sending a 
message to a single person when your intention was to send it to the 
list.  You'll find large numbers of people on each side.

Some mailing list software is smart enough to not send an extra copy 
to members that will be receiving it directly.



Re: [PATCH] Re: Seg fault: race conditions in mod_mem_cache.c

2004-09-10 Thread Greg Marr
At 06:53 PM 9/10/2004, Jean-Jacques Clar wrote:
I replaced the cleanup field with a bit set in refcount.  This is 
done to prevent race conditions when refcount is accessed on two 
different threads/CPUS.

+#define OBJECT_CLEANUP_BIT 0x00F0
0x00F0 isn't a bit, it's 4 bits: 0x0010 | 0x0020 | 
0x0040 | 0x0080

Why would you not use something farther up, such as 0x4000, for 
the bit?  (I imagine 0x8000 would cause problems if apr_atomic_t 
isn't unsigned).

+
 /* Forward declarations */
 static int remove_entity(cache_handle_t *h);
 static apr_status_t store_headers(cache_handle_t *h, request_rec 
*r, cache_info *i);
@@ -152,17 +154,15 @@
 {
 cache_object_t *obj = (cache_object_t *)a;

-/* Cleanup the cache object. Object should be removed from the 
cache
- * now. Increment the refcount before setting cleanup to avoid 
a race
- * condition. A similar pattern is used in remove_url()
- */
-apr_atomic_inc(&obj->refcount);
-
-obj->cleanup = 1;
-
-if (!apr_atomic_dec(&obj->refcount)) {
+apr_atomic_t tmp_refcount = obj->refcount;
+/* Cleanup the cache object. Object should be removed from the 
cache now. */
+if (!apr_atomic_read(&obj->refcount)) {
 cleanup_cache_object(obj);
 }
+else if(tmp_refcount != apr_atomic_cas(&obj->refcount, 
tmp_refcount | OBJECT_CLEANUP_BIT, tmp_refcount)) {
+memcache_cache_free(obj);
+}
+return;
 }
 /*
  * functions return a 'negative' score since priority queues
@@ -276,11 +276,11 @@
 }
 /* Remember, objects marked for cleanup are, by design, 
already
  * removed from the cache. remove_url() could have already
- * removed the object from the cache (and set obj->cleanup)
+ * removed the object from the cache (and set the 
OBJECT_CLEANUP_BIT)
  */
-if (!obj->cleanup) {
+if (!(apr_atomic_read(&obj->refcount) & 
OBJECT_CLEANUP_BIT)) {
 cache_remove(sconf->cache_cache, obj);
-obj->cleanup = 1;
+apr_atomic_set(&obj->refcount, obj->refcount | 
OBJECT_CLEANUP_BIT);
 }
 if (sconf->lock) {
 apr_thread_mutex_unlock(sconf->lock);
@@ -288,10 +288,8 @@
 }

 /* Cleanup the cache object */
-if (!apr_atomic_dec(&obj->refcount)) {
-if (obj->cleanup) {
-cleanup_cache_object(obj);
-}
+if(apr_atomic_dec(&obj->refcount) == OBJECT_CLEANUP_BIT) {
+cleanup_cache_object(obj);
 }
 return APR_SUCCESS;
 }
@@ -314,11 +312,7 @@
 while (obj) {
 /* Iterate over the cache and clean up each entry */
 /* Free the object if the recount == 0 */
-apr_atomic_inc(&obj->refcount);
-obj->cleanup = 1;
-if (!apr_atomic_dec(&obj->refcount)) {
-cleanup_cache_object(obj);
-}
+memcache_cache_free(obj);
 obj = cache_pop(co->cache_cache);
 }
@@ -415,7 +409,6 @@
 apr_atomic_set(&obj->refcount, 1);
 mobj->total_refs = 1;
 obj->complete = 0;
-obj->cleanup = 0;
 obj->vobj = mobj;
 /* Safe cast: We tested < sconf->max_cache_object_size above */
 mobj->m_len = (apr_size_t)len;
@@ -536,9 +529,9 @@
  * an object marked for cleanup is by design not in the
  * hash table.
  */
-if (!obj->cleanup) {
+if (!(obj->refcount & OBJECT_CLEANUP_BIT)) {
 cache_remove(sconf->cache_cache, obj);
-obj->cleanup = 1;
+apr_atomic_set(&obj->refcount, obj->refcount | 
OBJECT_CLEANUP_BIT);
 ap_log_error(APLOG_MARK, APLOG_INFO, 0, NULL, "gcing a 
cache entry");
 }

@@ -629,20 +622,13 @@
 mem_cache_object_t *mobj;
 cache_remove(sconf->cache_cache, obj);
 mobj = (mem_cache_object_t *) obj->vobj;
-
-/* Refcount increment in this case MUST be made under
- * protection of the lock
- */
-apr_atomic_inc(&obj->refcount);
-if (obj) {
-obj->cleanup = 1;
-}
+apr_atomic_set(&obj->refcount, obj->refcount | 
OBJECT_CLEANUP_BIT);
 }
 if (sconf->lock) {
 apr_thread_mutex_unlock(sconf->lock);
 }
 if (obj) {
-if (!apr_atomic_dec(&obj->refcount)) {
+if(apr_atomic_read(&obj->refcount) == OBJECT_CLEANUP_BIT) {
 cleanup_cache_object(obj);
 }
 }
@@ -908,8 +894,8 @@
 if (sconf->lock) {
 apr_thread_mutex_lock(sconf->lock);
 }
-if (obj->cleanup) {
-/* If obj->cleanup is set, the object has been 
prematurly
+if ((apr_atomic_read(&obj->refcount) & 
OBJECT_CLEANUP_BIT)) {
+/* If OBJECT_CLEANUP_BIT is set, the object has 
been prematurly
  * ejected from the cache by the garbage 
collector. Add the
  * object back to the cache. If an object with 
the same key is
  * found in the cache, eject it in favor of 
the comp

Re: Move apache-1.3 to Subversion

2004-07-15 Thread Greg Marr
At 10:50 PM 7/15/2004, William A. Rowe, Jr. wrote:
I agree, here, with Joe.  Wondering if it's an appropriate 
alternative.

I'm facing similar, with a subproject entering incubation, and I'd 
like to know our decision here, before I go and create a subproject 
structure under /httpd/ that turns out to be wonky.

is /trunk/httpd/ an appropriate solution?  This bit me, trying to 
check out some /incubation/ stuff.
Everything I've seen on source control strategies recommends stuff 
like:
/httpd/trunk/
/httpd/branches/
etc.

This seems to make the most sense to me from an organizational 
standpoint, especially once you start adding other top level projects.

As an example:
/apr/trunk/
/apr-util/trunk/
/httpd/trunk/
makes a heck of a lot more sense than
/trunk/httpd/
/trunk/apr/
/trunk/apr-util/
since the logical grouping is by project, then by whether it's the 
trunk or a branch, and then by the name of the branch.

Someone that doesn't know the organization of the source may make 
this mistake once, if it's not well documented, or if they don't read 
the docs first.  After that, they'll probably never make that mistake 
again.  With the other direction, you'll constantly have to deal with 
the illogical organization.



Re: util_ldap [Bug 29217] - Remove references to calloc() and free()

2004-06-11 Thread Greg Marr
At 12:33 PM 6/11/2004, William A. Rowe, Jr. wrote:
The proper logic to add to a cache is
wrlock
  test if exists again
  add element
unlock
because there is a race condition in the logic below
rdlock
  test if the element exists
>> race is here, prior to wrlocking, another thread may 
wrlock->insert
  promote to wrlock
insert
unlock
Wow, how about that.  I just (as in within the last hour) read an 
article in the July issue of DDJ[1] that talked about replacing 
Singleton (WRowe's second example) with with Double-Checked Locking 
(WRowe's first example) and the problems that still exist because of 
compiler optimization.

What it boils down to is if this:
wrlock
  test if exists again
  add element
unlock
can be broken down as this:
wrlock
  test if exists again
  allocate element
  fill in element
  insert element
unlock
then the compiler may optimize this as:
wrlock
  test if exists again
  allocate element
  insert element
>> race is here, prior to filling in element, another thread may
>> read element, and use element that hasn't been filled in yet.
  fill in element
unlock
Does the "add element" step guarantee that it won't insert the 
element into the cache until it is fully constructed, no matter what 
the optimizer does to the code?

Of course, this is only Part I of the article, Part II isn't until 
the August issue.

[1] Dr. Dobb's Journal, www.ddj.com 
(http://www.ddj.com/articles/2004/0407/)



Re: Better error logging for mod_access

2004-06-09 Thread Greg Marr
At 10:18 PM 6/8/2004, Rici Lake wrote:
The patch is now posted to bugzilla as [Bug 29450]. I believe that 
conforms to the patches.html document cited below. Although that 
document says -C3 is acceptable, I have submitted it in the 
preferential -u format (which I also prefer, actually).
It says use -u, but if you absolutely *can't* do -u, then of the 
remaining options, -C3 is the best, or at least, that is what it is 
meant to say.



Re: cvs commit: httpd-2.0 libhttpd.dsp

2004-03-04 Thread Greg Marr
At 01:33 PM 3/4/2004, William A. Rowe, Jr. wrote:
At 12:04 PM 3/4/2004, Greg Marr wrote:
>At 12:00 PM 3/4/2004, William A. Rowe, Jr. wrote:
>>At 09:55 AM 3/4/2004, Greg Marr wrote:
>>
>>>/incremental:no is the default, and MSDev will at times remove 
flags that it finds redundant, even ones that it added 
itself.  It's a bit schizophrenic like that.
>>
>>uh wrong.  with /debug incremental yes is the default but you 
have
>>to pound it into the msdev's head.  please fix/revert.
>>
>>>>>   -# ... /dll /incremental:no /debug /machine:I386 
/base:@"os\win32\BaseAddr.ref",libhttpd.dll /opt:ref
>>>>>   +# ... /dll /debug /machine:I386 
/base:@"os\win32\BaseAddr.ref",libhttpd.dll /opt:ref
>>>>...
>
>Odd, I thought non-incremental was the default, but the help says 
otherwise.  Incremental is the default, for regular and debug, at 
least in VC6.
>
>Why would you not want incremental for a debug build anyway?

Greg we are creating the release build there - we create a pdb for 
unwinding core dumps.
Oh, duh.  Yeah.

It is an optimized binary - incremental is not a healthy way to 
release a final image.  Again, please revert.
I would if I could... I was just commenting on why I thought it 
happened.



Re: cvs commit: httpd-2.0 libhttpd.dsp

2004-03-04 Thread Greg Marr
At 12:00 PM 3/4/2004, William A. Rowe, Jr. wrote:
At 09:55 AM 3/4/2004, Greg Marr wrote:

>/incremental:no is the default, and MSDev will at times remove 
flags that it finds redundant, even ones that it added 
itself.  It's a bit schizophrenic like that.

uh wrong.  with /debug incremental yes is the default but you have
to pound it into the msdev's head.  please fix/revert.
>>>   -# ... /dll /incremental:no /debug /machine:I386 
/base:@"os\win32\BaseAddr.ref",libhttpd.dll /opt:ref
>>>   +# ... /dll /debug /machine:I386 
/base:@"os\win32\BaseAddr.ref",libhttpd.dll /opt:ref
>>...
Odd, I thought non-incremental was the default, but the help says 
otherwise.  Incremental is the default, for regular and debug, at 
least in VC6.

Why would you not want incremental for a debug build anyway?



Re: cvs commit: httpd-2.0 libhttpd.dsp

2004-03-04 Thread Greg Marr
At 09:09 AM 3/4/2004, Joe Orton wrote:
On Mon, Mar 01, 2004 at 05:49:52PM -, [EMAIL PROTECTED] wrote:
> ake 2004/03/01 09:49:52
>
>   Modified:.libhttpd.dsp
>   Log:
>   add eoc_bucket.c to project
I'm not qualified to review Win32 changes but did you mean to remove
/incremental:no from the linker flags here as well as adding
eoc_bucket.c?  Can you add this change to the list of changes to 
include
in the EOC bucket backport if it is really OK to backport for 2.0?
/incremental:no is the default, and MSDev will at times remove flags 
that it finds redundant, even ones that it added itself.  It's a bit 
schizophrenic like that.

>   -# ... /dll /incremental:no /debug /machine:I386 
/base:@"os\win32\BaseAddr.ref",libhttpd.dll /opt:ref
>   +# ... /dll /debug /machine:I386 
/base:@"os\win32\BaseAddr.ref",libhttpd.dll /opt:ref
...



Re: FileSystem v.s. Other Resources [was configurable Location?]

2004-02-05 Thread Greg Marr
At 10:22 AM 2/5/2004, [EMAIL PROTECTED] wrote:
Thanks for the feedback, Will.

William A. Rowe, Jr. wrote:
At 03:39 PM 2/4/2004, [EMAIL PROTECTED] wrote:

But then if I play devil's advocate, someone could see the new directive 
and turn it on when it's not appropriate and cause Bad Things to 
happen.  Mainly I'm looking for comments on whether this should be 
configurable or not.
Yes, I'm one who will agree with your devil's position :)  I know the problem
you are trying to solve, and changing the behavior of  isn't 
quite the solution...
I'm only changing  ...  is unaffected.
Well, that's not entirely true.  The  is affected indirectly, 
because it no longer applies.  The behavior currently is: it applies to 
everything it matches.  This would change it to: it applies to everything 
it matches unless it also matches a , in which case it doesn't apply.



Re: [patch] - digest nonce including MM bump, doc and changes.

2003-12-18 Thread Greg Marr
Couldn't the new member be placed at the end of the request rec so 
that it's only a minor bump?

+  *) SECURITY - verification as to wether the nonce returned in the
s/wether/whether/

+  "A random value or the servers IP may be a good choise.\n" },
s/choise/choice/

+/* We need to create a nonce which:
+ * a) changes all the time (see r->request_time)
+ *below and
+ * b) of which we can verify that it is our own
+ *fairly easily when it comes to veryfing
s/veryfing/verifying/

+ *the digest coming back in the response.
+ * c) and which as a whole should not
+ *be unlikely to be in use anywhere else.
"should not likely be in use" or "should be unlikely to be in use"

+If none if configured a sensible, but not particular
s/if/is/
s/particular/particularly/
--
Greg Marr
[EMAIL PROTECTED]


Re: Creating HTTPD Tarballs

2003-11-16 Thread Greg Marr
On Sun, 16 Nov 2003 18:45:25 -0700
 "Paul Querna" <[EMAIL PROTECTED]> wrote:
On Sun, 16 Nov 2003 17:15:35 -0800, Roy T. Fielding wrote
> -1.  I'm still of the mind that _every_ release should be 
recreatable.
> Anything we put out there is going to be at least perceived as
> official,
> and we should take that into account.

Every release is tagged.  A tarball is not a release.  Nothing is a
release until AFTER the associated tarball has three +1 votes, at 
which
point it becomes a release and should be tagged as such.
Why not name the releases/tarballs from a Date?
This is already done automatically every 6 hours.  Doing it on demand 
shouldn't be any different.


Re: consider reopening 1.3

2003-11-16 Thread Greg Marr
On Sun, 16 Nov 2003 16:21:04 -0500
 Glenn <[EMAIL PROTECTED]> wrote:
On Sun, Nov 16, 2003 at 04:12:20PM -0500, Jim Jagielski wrote:
I may be misunderstanding you... or do you mean just have
Apache 1.3 "APR aware" and not for 1.3 to *use* it per se,
but allow for modules to call APR... That would be useful,
but anything deeper than that would scare people I think...
APR is just as "new" as Apache 2.0.
The latter.  Only that it be available so that I can spend my
time developing with Apache2 paradigms and have most of them
translate to usefullness on Apache 1.3.  Sort of a like a
forward-compatibility to 2.0 in the same way that ap_compat.h
is a backward-compatibility from 2.0 to 1.3.
I believe that there has been some discussion on this list in the past 
about people using APR with 1.3 modules.  There should be no 
requirement that httpd use APR for a module to use it.


Re: [PATCH] PR 18388 Set-Cookie header not honored on 304(Not modified) status

2003-06-01 Thread Greg Marr
I found some time to look for existing discussions on this... 
(should have done that earlier)...  It isn't valid to send 
Set-Cookie on a 304.

It is not valid to set a cookie in a 304 response.  Please see
section 10.3.5 of RFC2616.  That is the reason Apache explictly
lists headers that will be sent and why Set-Cookie isn't one of
them."
I don't see how 10.3.5 says that Set-Cookie is invalid.  It says that 
entity headers aren't allowed, but Set-Cookie isn't listed under the 
Entity Header section.  (In fact, it isn't listed in the spec at all.)

I see that other people had the same thoughts in the first link.


Re: cvs commit: httpd-2.0/modules/experimental mod_cache.c

2002-12-17 Thread Greg Marr
At 02:23 PM 12/17/2002, Paul J. Reder wrote:

Yup, the coredump happened in the first call with the %d. I just 
patched this second call without looking at the exp parm, then 
failed to notice the warning... *sigh* must be near Christmas 
vacation when it takes three passes to get something like this 
right... ;)

Any reason not to just use apr_pstrcat(p, "Broken expires header ", 
exps) and save the overhead of the psprintf?

Cliff Woolley wrote:


On Tue, 17 Dec 2002, Joe Orton wrote:


On Tue, Dec 17, 2002 at 05:10:05PM -, Bill Stoddard wrote:


  else if (exps != NULL && exp == APR_DATE_BAD) {
  /* if a broken Expires header is present, don't 
cache it */
 -reason = apr_pstrcat(p, "Broken expires header 
%s", exp);
 +reason = apr_psprintf(p, "Broken expires header 
%s", exp);
Still not right - 'exp' is an apr_time_t, you mean 'exps' I guess?

mod_cache.c: In function `cache_in_filter':
mod_cache.c:543: warning: format argument is not a pointer (arg 3)


Oooh, yowtch... good call.  I wasn't even looking at that part.


--
Greg Marr
[EMAIL PROTECTED]




Re: cvs commit: httpd-2.0/modules/loggers mod_logio.c

2002-11-04 Thread Greg Marr
At 03:50 PM 11/1/2002, Greg Stein wrote:

On Fri, Nov 01, 2002 at 06:07:53PM -, [EMAIL PROTECTED] wrote:
>...
>   +++ BaseAddr.ref1 Nov 2002 18:07:52 -   1.22
>   @@ -60,3 +60,4 @@
>mod_authz_groupfile  0x6FB10x0001
>mod_authz_host   0x6FB00x0001
>mod_authz_user   0x6FAF0x0001
>   +mod_logio0x6FAE0x0001

For efficiency purposes, those numbers should be as close together 
as possible.

FYI, these are as close together as possible.  You can't specify the 
addresses with any finer granularity than 0x1.

I don't recall how to find the size of the module;


If you're on WinNT, you can use Quick View.  I'm not sure in Win2K, 
other than just checking the size of the executable in Windows 
Explorer.  Also, the reason for the 0x0001 at the end of the line 
is so the linker knows how much space you've allocated for the 
module.  If it module is larger than that size, a warning will be 
issued at link time.

--
Greg Marr
[EMAIL PROTECTED]



Re: stable 2.0 trees

2002-10-16 Thread Greg Marr

On Wed, 16 Oct 2002 19:24:22 -0400
  Joshua Slive <[EMAIL PROTECTED]> wrote:
>I'm +1 for creating 2.1 and 2.2 trees as proposed by Bill.

My one thought about this proposal is that it is unclear whether or 
not this is attempting to emulate the Perl versioning scheme.  If so, 
then it's backwards, since Perl uses even numbers for releases and odd 
numbers for development, but Bill proposed that 2.1 be the "stable" 
branch, and "2.2" become the "development" branch.



Re: Thread-unsafe libraries in httpd-2.0

2002-08-16 Thread Greg Marr

At 10:41 AM 8/16/2002, Rodent of Unusual Size wrote:
> > And, my point back to you is that should be part of the 
> documentation
> > of the module NOT of httpd-2.0.
>
>IMNSHO, that is *such* BS.  If someone has a working Web server and 
>upgrades following our recommendations, and things stop working, 
>it's not PHP that will get blamed.  PHP still works just fine; there 
>always has been the potential for trouble with threaded libraries, 
>but that wasn't an issue because the Web server didn't use threads.
>
>What changed?  The Web server; it started supporting threads.  So it 
>behooves the Web server to document the potential for problems.  Why 
>should the burden be put on PHP, or any other module for that 
>matter?  *They* weren't the ones that enabled threading.

I don't see what the big deal is here.  It doesn't have to be one or 
the other.  It REALLY is up to PHP and mod_perl to let their users 
know that they aren't thread-safe.  It would also be helpful for 
Apache to let its users know that there are potential problems due to 
non-thread-safe third-party modules.

As someone else posted, put a notice in the Apache distribution area 
that Apache 2.0 now supports threaded models, and before upgrading to 
Apache 2.0 and using one of the threaded models, users should check 
with each third-party module that they use to see if they're 
thread-safe.

Then PHP and mod_perl can put notices in their distribution areas 
that some of the libraries they use aren't thread-safe, and that 
until this is fixed, users should not use any of the threaded models 
in Apache 2.0, and recommend use of the non-threaded models.

-- 
Greg Marr
[EMAIL PROTECTED]
"We thought you were dead."
"I was, but I'm better now." - Sheridan, "The Summoning"




Contributing patches page

2002-06-18 Thread Greg Marr

http://httpd.apache.org/dev/patches.html
Under "Submitting your patch", the first sentence still refers to the 
old mailing list: "If you are a subscriber to new-httpd", 



Re: [1.3] Proxy fixes and FWD: Re: [apache-modules] Setting bytes_sent in Request Record while generating all headers by myself in Apache 1.3]

2002-05-29 Thread Greg Marr

At 01:30 PM 05/29/2002, Thomas Eibner wrote:
>Index: proxy_http.c
>===
>RCS file: /home/cvspublic/apache-1.3/src/modules/proxy/proxy_http.c,v
>retrieving revision 1.98
>diff -u -r1.98 proxy_http.c
>--- proxy_http.c21 Apr 2002 21:16:39 -  1.98
>+++ proxy_http.c29 May 2002 17:04:38 -
>@@ -350,6 +350,20 @@
>   * where the original request came from.
>   */
>  ap_table_mergen(req_hdrs, "X-Forwarded-For", 
> r->connection->remote_ip);
>+if (r->proxyreq == PROXY_PASS) {
>+const char *buf;
>+/* Add X-Forwarded-Host: so that upstream knows what the
>+ * original request hostname was.
>+ */
>+if ((buf - ap_table_get(r->headers_in, "Host"))) {

I think this should be "buf =" instead of "buf -".

-- 
Greg Marr
[EMAIL PROTECTED]
"We thought you were dead."
"I was, but I'm better now." - Sheridan, "The Summoning"




Re: cvs commit: httpd-dist README.html

2002-05-23 Thread Greg Marr

On Thu, May 23, 2002 at 06:45:03PM -, [EMAIL PROTECTED] wrote:
 > slive   02/05/23 11:45:02
...
 >   +Do not download from www.apache.org.  Please use a mirror site
 >   +   to help use save apache.org bandwidth.

should that be "help us save"?

-- 
Greg Marr
[EMAIL PROTECTED]
"We thought you were dead."
"I was, but I'm better now." - Sheridan, "The Summoning"




Re: FW: Apache 2.0.36 and xcopy on WinNT

2002-05-10 Thread Greg Marr

At 03:00 PM 05/10/2002, William A. Rowe, Jr. wrote:
>At 01:18 PM 5/10/2002, you wrote:
>>At 01:55 PM 05/10/2002, William A. Rowe, Jr. wrote:
>>>Ahhh.  Win95 and forward do support the /y flag.  Since WinNT does 
>>>not, I'll revert the change that presumed our modern 
>>>command.com/cmd.exe based xcopy'ies all work.
>>>
>>>Expect a fix in .37 - thanks for the report!
>>
>>You can put the /y switch in the COPYCMD environment 
>>variable.  WinNT's xcopy ignores this, but Win2K's will pick it up.
>
>Won't solve the problem.  You have no idea how many 'Y's they must 
>push, nor how that will break in-IDE builds :-)  Will revert to the 
>old <.y.

What do you mean by "how many 'Y's they must push"?  I also don't see 
how it can break in-IDE builds.  We use it with in-IDE builds all the 
time.  If you're worried about it affecting other xcopy commands, set 
the COPYCMD variable to /y, call xcopy, and then clear it again.

-- 
Greg Marr
[EMAIL PROTECTED]
"We thought you were dead."
"I was, but I'm better now." - Sheridan, "The Summoning"




Re: FW: Apache 2.0.36 and xcopy on WinNT

2002-05-10 Thread Greg Marr

At 01:55 PM 05/10/2002, William A. Rowe, Jr. wrote:
>Ahhh.  Win95 and forward do support the /y flag.  Since WinNT does 
>not, I'll revert the change that presumed our modern 
>command.com/cmd.exe based xcopy'ies all work.
>
>Expect a fix in .37 - thanks for the report!

You can put the /y switch in the COPYCMD environment 
variable.  WinNT's xcopy ignores this, but Win2K's will pick it up.

-- 
Greg Marr
[EMAIL PROTECTED]
"We thought you were dead."
"I was, but I'm better now." - Sheridan, "The Summoning"




RE: PR 7966

2002-04-12 Thread Greg Marr

At 10:10 PM 04/11/2002, Ryan Bloom wrote:
> > From: Justin Erenkrantz [mailto:[EMAIL PROTECTED]]
> > On Thu, Apr 11, 2002 at 07:02:48PM -0700, Ryan Bloom wrote:
> > > Dollars to Donuts, the problem is that the C-L filter isn't 
> removing the
> > > C-L header from the request.  I won't have time to look at this 
> for a
> > > few weeks though.
> >
> > The request?  Don't you mean the file?
> >
> > Taking a quick look at default_handler:
> >
> > server/core.c line 3208:
> > ap_set_content_length(r, r->finfo.size);
> >
> > Isn't that call bogus?  Why just not let the C-L filter handle it?
>
>No, it isn't bogus.  If the file isn't changed, then the call is 
>correct.  It is only bogus if the content is changed, as it is with 
>SSI requests.  If the C-L filter can't verify the C-L, it should be 
>removing it from the request.  If it doesn't, that is the bug.

Isn't the filter that changes the content responsible for removing 
the C-L?  Otherwise, the C-L filter would either remove the C-L every 
time, or have to buffer the entire thing.

-- 
Greg Marr
[EMAIL PROTECTED]
"We thought you were dead."
"I was, but I'm better now." - Sheridan, "The Summoning"




RE: cvs commit: httpd-2.0 STATUS

2002-04-08 Thread Greg Marr

At 09:50 AM 04/08/2002, Ryan Bloom wrote:
> > Ok, I've got two versions of httpd-2.0.35-i686-pc-linux.tar.gz, one
> > from a 2.2.18 RedHat 7.0 machine, and the other from a 2.4.9 
> RedHat 7.2
> > machine. What do I do with these now? How do I sign them? (I need 
> to
> > put my public key in the KEYS file, but I'm a little clumsy with 
> gpg.)
>
>If you key isn't already in the KEYS file, you can't release those 
>binaries.

Uh, why not?  As long as the key is in the KEYS file before the 
binaries are posted, what difference does it make when it was added?


-- 
Greg Marr
[EMAIL PROTECTED]
"We thought you were dead."
"I was, but I'm better now." - Sheridan, "The Summoning"




Re: 1.3.24-dev new warning...

2002-03-19 Thread Greg Marr

At 01:07 PM 04/19/2002, William A. Rowe, Jr. wrote:
>At 10:03 AM 3/19/2002, you wrote:
>>At 10:42 PM -0600 3/7/02, William A. Rowe, Jr. wrote:
>> >C:\clean\apache-1.3\src\modules\proxy\proxy_util.c(565)
>> >  : warning C4018: '<' : signed/unsigned mismatch
>> >
>> >n = ap_bread(f, buf, MIN(buf_size, len - 
>> total_bytes_rcvd));
>>
>>I had posted a patch regarding this a bit ago... Any feedback? I was
>>not able to recreate the exact error messages locally on any of
>>my machines, so I couldn't see if it solved the specific problem
>>(without creating more :) ).
>
>Doh!  MIN() is implemented in terms of a terniary, and those are very
>broken in terms of the result type on win32.  Casting the MIN() back 
>to
>the arg type of ap_bread() should be sufficient.

I doubt it.  The warning is about the '<', which occurs because 
buf_size is size_t, and len is off_t.

BTW, I've never had any troubles with the result type of ?: on 
Win32.  It's always the result type of the true result, which is what 
it should be, as far as I've seen.  Could you be a bit more specific?

-- 
Greg Marr
[EMAIL PROTECTED]
"We thought you were dead."
"I was, but I'm better now." - Sheridan, "The Summoning"




RE: Using Apache 1.3 modules with 2.0 was Re: Please help kill httpd-2.0 bugs...

2002-02-27 Thread Greg Marr

At 12:03 PM 02/27/2002, Ryan Bloom wrote:
> > On Wed, Feb 27, 2002 at 04:44:03PM +, Thom May wrote:
> > However, that brings up a point:
> >
> > Can we detect when a 1.3 module will be used with 2.0?  One of my
> > housemates was trying to install the PHP 1.3 module with 2.0.32 on
> > Win32 last night.  It just said as this bug does too:
> >
> > Cannot load E:/apache/Apache2/modules/ApacheModuleJServ.dll into 
> server:
> > The specified module could not be found.
> >
> > Can we detect and report an suitable error message in this
> > case?  -- justin
>
>Yeah, that's actually trivial.  The module structure has a key that 
>is the Apache version number.  Look at MODULE_MAGIC_COOKIE.  Just do 
>a quick comparison when we load the module, and output a valid error.

Not on Windows.  You will not be able to even load the module.  The 
LoadLibrary call will fail, since the module is linked against 
functions that don't exist.  That is a standard system error message 
from using LoadLibrary to load a DLL when a required dependency 
doesn't exist.

-- 
Greg Marr
[EMAIL PROTECTED]
"We thought you were dead."
"I was, but I'm better now." - Sheridan, "The Summoning"




Re: [patch] per-child (Re: 2.0.32 has been released.)

2002-02-14 Thread Greg Marr

At 09:37 AM 02/14/2002, Jeroen Massar wrote:
>First I noticed that the KEYS file is missing from the tar file.

The KEYS should not be in the tar file.  You have to get the KEYS 
from a trusted source, and the file you are attempting to verify is 
not a trusted source, otherwise you wouldn't be trying to verify it.

-- 
Greg Marr
[EMAIL PROTECTED]
"We thought you were dead."
"I was, but I'm better now." - Sheridan, "The Summoning"




Re: Releases, showstoppers, and vetos

2002-02-06 Thread Greg Marr

At 03:53 PM 02/06/2002, Rodent of Unusual Size wrote:
>Greg Marr wrote:
> >
> > I read that last sentence as: "An issue becomes a showstopper when
> > it is listed as such in STATUS, and remains one until someone 
> vetoes
> > it, at which time it is no longer a showstopper. ..."
>
>I think that's bogus, too.  If someone thinks something is serious 
>enough to stop a release, they should be no more overridable than 
>any other block (read: veto).  I find the idea of being able to veto 
>a showstopper completely ludicrous. :-)

It could be.  I wasn't expressing an opinion one way or another, just 
attempting to interpret the current guidelines.

-- 
Greg Marr
[EMAIL PROTECTED]
"We thought you were dead."
"I was, but I'm better now." - Sheridan, "The Summoning"




Re: Releases, showstoppers, and vetos

2002-02-06 Thread Greg Marr

At 03:33 PM 02/06/2002, Rodent of Unusual Size wrote:
>"Roy T. Fielding" wrote:
> >
> > A showstopper, aside from a yet-to-be-reverted veto, can be
> > moved from one section of STATUS to another by the RM (or
> > anyone, for that matter) whenever they want.  It is only
> > a showstopper if we ALL agree it is. The category only exists
> > to simply remind us of what needs to be fixed.
>
>Not codified, and certainly not clear:
>
> > Showstoppers
> >   Showstoppers are issues that require a fix be in place
> >   before the next public release. They are listed in the STATUS
> >   file in order to focus special attention on the problem. An
> >   issue becomes a showstopper when it is listed as such in
> >   STATUS and remains so by lazy consensus.
>
>'Consensus' means vetos apply, as opposed to 'majority.'

FYI, from my reading, I concur that vetos apply in this situation, 
but they apply to the issue being a showstopper, not to the 
showstopper stopping a release.  I read that last sentence as: "An 
issue becomes a showstopper when it is listed as such in STATUS, and 
remains one until someone vetoes it, at which time it is no longer a 
showstopper.  Thus, a consensus is required for an issue to be a 
showstopper, and anyone can move something out of the showstopper 
category at any time."

-- 
Greg Marr
[EMAIL PROTECTED]
"We thought you were dead."
"I was, but I'm better now." - Sheridan, "The Summoning"




Re: [PATCH] improve mod_cgid robustness

2002-01-28 Thread Greg Marr

At 06:44 AM 01/28/2002, Jeff Trawick wrote:
>On systems that can accept new CGI requests faster than the daemon can
>fork, it is easy to fill the listen queue on the Unix socket and get
>ECONNREFUSED, resulting in a 500 error going back to the browser.  It
>is alarming to see a zillion requests for the same resource in the
>access log, with large numbers of them getting 500 instead of 200.

Shouldn't these be 503 Service Unavailable instead of just a plain 500?

-- 
Greg Marr
[EMAIL PROTECTED]
"We thought you were dead."
"I was, but I'm better now." - Sheridan, "The Summoning"




Re: Tag 1.3.23?

2002-01-21 Thread Greg Marr

At 04:13 PM 01/21/2002, William Rowe wrote:
>The following (decorated, default) exported symbol names, and the 
>attached
>asm output from footest and footest2 illustrate that _stdcall is 
>ignored
>for vararg prototypes :)

looking up __stdcall in the MSVC help gives this:
The __stdcall calling convention is used to call Win32 API functions. 
The callee cleans the stack, so the compiler makes vararg functions 
__cdecl.

-- 
Greg Marr
[EMAIL PROTECTED]
"We thought you were dead."
"I was, but I'm better now." - Sheridan, "The Summoning"




Re: Tag 1.3.23?

2002-01-18 Thread Greg Marr

At 12:53 PM 01/18/2002, Bill Stoddard wrote:
>If we break binary compatability with even one function, we need to 
>bump the MMN major.

That wouldn't do anything, because a module using one of these 
functions will never get a chance to check the MMN.  The Windows 
loader will prevent it from loading in the first place, since it is 
linked against a function that doesn't exist.  The breaking of binary 
compatibility in this case is at the link layer.

-- 
Greg Marr
[EMAIL PROTECTED]
"We thought you were dead."
"I was, but I'm better now." - Sheridan, "The Summoning"




Re: Proposal: Future release strategies

2001-09-06 Thread Greg Marr

At 02:47 PM 09/06/2001, Bill Stoddard wrote:
> > Well - the vote on the table is to take the LDAP code out of 
> Apache v2.0
> > - but the next question is when it's removed, what do we do with 
> it?
>
>I will probably be a user of mod_ldap, but right now, I am inclined 
>to remove it from the
>core and put it in its own repository for the same reasons I want to 
>keep mod_gz out.

Why not just put them in modules/experimental?  Isn't that what it's 
for?

-- 
Greg Marr
[EMAIL PROTECTED]
"We thought you were dead."
"I was, but I'm better now." - Sheridan, "The Summoning"




Re: apxs broken

2001-09-06 Thread Greg Marr

At 01:32 PM 09/06/2001, Stas Bekman wrote:
>Also the regex that does s/(foo)/{foo}/ is cleaner in case someone was
>doing $(foo)_bar with the current patch, this will break, since it 
>makes
>$foo_bar, whereas it should be better ${foo}_bar.

A regexp is overkill in this case, assuming that the input is a known 
set, and all parens need to be changed to braces.

--- apxs.in.orig  Fri Sep  7 01:27:52 2001
+++ apxs.in   Fri Sep  7 01:27:56 2001
@@ -245,6 +245,8 @@

  open IN, $file or die "cannot open $file: $!";
  while (){
+# $(foo) => ${foo}
+tr/()/{}/;
  if (/^\s*(.*?)\s*=\s*(.*)$/){
  $rh_config->{$1} = $2;
  }
@@ -261,7 +263,6 @@
  my $val = exists $config_vars{$arg}
  ? $config_vars{$arg}
  : $config_vars{lc $arg};
-$val =~ s/[()]//g;
  $result .= eval qq("$val");
  $result .= ";;";
  $ok = 1;
@@ -270,7 +271,7 @@
  if (exists $internal_vars{$arg} or exists 
$internal_vars{lc $arg}) {
  my $val = exists $internal_vars{$arg} ? $arg : lc 
$arg;
  $val = eval "\$CFG_$val";
-$result .= eval qq("$val");
+$result .= eval qq("$val") if defined $val;
  $result .= ";;";
  $ok = 1;
  }

-- 
Greg Marr
[EMAIL PROTECTED]
"We thought you were dead."
"I was, but I'm better now." - Sheridan, "The Summoning"




Re: [PATCH] optimization for setting of allowed methods

2001-09-06 Thread Greg Marr

At 12:58 PM 09/06/2001, Ryan Bloom wrote:
>>  Weren't these "method numbers" recently removed so that there are 
>> no "standard" methods, and all the methods are added the same way 
>> at run time?
>
>In order to keep backwards compat, keep the patch small, and keep 
>the performance high for the standard HTTP methods, the old macros 
>were kept.  ... they are gauranteed to have the same value as the 
>constant though.

Ah, I missed that part of it.  Thanks.

-- 
Greg Marr
[EMAIL PROTECTED]
"We thought you were dead."
"I was, but I'm better now." - Sheridan, "The Summoning"




Re: [PATCH] optimization for setting of allowed methods

2001-09-06 Thread Greg Marr

At 11:50 AM 09/06/2001, Brian Pane wrote:
>This patch eliminates some run-time conversion of method names to 
>numbers (something that I noticed while looking through function 
>call profiles).
>
>RCS file: /home/cvspublic/httpd-2.0/server/core.c,v
>-ap_allow_methods(r, MERGE_ALLOW, "GET", "OPTIONS", "POST", NULL);
>+ap_allow_standard_methods(r, MERGE_ALLOW, M_GET, M_OPTIONS, 
>M_POST, -1);
>
>RCS file: 
>/home/cvspublic/httpd-2.0/modules/mappers/mod_negotiation.c,v
>-ap_allow_methods(r, REPLACE_ALLOW, "GET", "OPTIONS", "POST", 
>NULL);
>+ap_allow_standard_methods(r, REPLACE_ALLOW, M_GET, M_OPTIONS, 
>M_POST, -1);

Weren't these "method numbers" recently removed so that there are no 
"standard" methods, and all the methods are added the same way at run 
time?

-- 
Greg Marr
[EMAIL PROTECTED]
"We thought you were dead."
"I was, but I'm better now." - Sheridan, "The Summoning"




Re: Fw: Regarding lower-case HTML tags

2001-09-05 Thread Greg Marr

At 11:12 PM 09/04/2001, William A. Rowe, Jr. wrote:
> > > I've been using tidy, from the w3c, for a while now, to do
> > > pretty-reformatting of HTML documents. One of the things that 
> it does is
> > > lower-case HTML tags. I was wondering, in light of comments 
> made a week
> > > or two ago, whether it would be worthwhile to do this with 
> files in the
> > > docs as I a working with them?

The reason it does that is that XML is case-sensitive for tag names, 
and the HTML working group chose to use lowercase for XHTML.  Thus, 
if the pages were ever to be marked as XHTML, they'd need to be 
lowercase.

-- 
Greg Marr
[EMAIL PROTECTED]
"We thought you were dead."
"I was, but I'm better now." - Sheridan, "The Summoning"




Re: cvs commit: httpd-2.0/modules/experimental mod_cache.c

2001-09-04 Thread Greg Marr

At 06:19 PM 09/03/2001, Graham Leggett wrote:
>Greg Marr wrote:
>
> > How exactly do you use Cache-Control directives so that the 
> content that
> > is cached is before includes are processed, and that when it is
> > retrieved from the cache, the includes are processed?  It just 
> doesn't
> > work that way.  In this case you have to put the includes before 
> the
> > cache.
>
>mod_cache and mod_include should have no knowledge of each other.

Exactly.  They shouldn't care in which order they are run, that 
should be up to the admin.  You're saying the opposite, that 
mod_cache should only be able to run after mod_include.

>mod_cache is interested in content going to the browser.

You're interested in having mod_cache only interested in content 
going to the browser.  There's a difference.

>There are already two caches in the loop (a transparent ISP cache, 
>and the browser cache) so if mod_include doesn't generate proper 
>Cache-Control: headers
>then mod_includes is broken already without any help from mod_cache.

This has absolutely nothing to do with using mod_cache to cache the 
page just before it is processed by mod_include, and processing the 
page retrieved from the cache using mod_include.

>I don't see any reason why mod_cache should interfere with 
>mod_include (or vice versa).

Apparently you do.

>mod_cache only cares about what is spat out at the end of the filter 
>chain

Why should it be restricted like that?  That makes it less useful.

>One of the fundamental design points about mod_cache was to separate 
>it from all other modules (specifically mod_proxy).  Tying mod_cache 
>behaviour to mod_include (or any other module) is a step backwards 
>in the design.

So why are you saying it should be done that way?  It should be able 
to be placed at any point in the filter chain.  Requiring it to come 
after mod_ is tying its behavior to mod_, saying 
that mod_ must process the   file before it is cached.

-- 
Greg Marr
[EMAIL PROTECTED]
"We thought you were dead."
"I was, but I'm better now." - Sheridan, "The Summoning"




Re: cvs commit: httpd-2.0/modules/experimental mod_cache.c

2001-09-01 Thread Greg Marr

Graham Leggett <[EMAIL PROTECTED]> wrote:
> Greg Marr wrote:
> 
> > In Ian's particular case, that is incorrect.  The value of his
> > includes vary from request to request, so he needs the cache to
> > be before the includes filter.
> 
> This isn't necessary - simply use the Cache-Control directives
> correctly so that the includes content is not cached.

How exactly do you use Cache-Control directives so that the content that
is cached is before includes are processed, and that when it is
retrieved from the cache, the includes are processed?  It just doesn't
work that way.  In this case you have to put the includes before the
cache.

> mod_cache should behave exactly like a transparent cache would.

In your application, yes, not in the one in question.

> No, I'm saying use the Cache-Control directives correctly exactly as
> a transparent proxy would.

That's not the desired behavior.



Re: cvs commit: httpd-2.0/modules/experimental mod_cache.c

2001-09-01 Thread Greg Marr

On Sat, 01 Sep 2001 14:47:55 +0200
 Graham Leggett <[EMAIL PROTECTED]> wrote:
> Bill Stoddard wrote:
> 
> > Yep, you definitely need CACHE_OUT to be a CONTENT filter in this
> > case since INCLUDES is a CONTENT filter and you need INCLUDES to
> > be run after CACHE_OUT.
> 
> I disagree - includes is something that should be cached as it is a
> performance bottleneck.

In Ian's particular case, that is incorrect.  The value of his includes
vary from request to request, so he needs the cache to be before the
includes filter.

> If the user specifies "cache this URL range" it would be wrong to
> override the user's wishes and not cache something.

You're saying that we should override the user's wishes and cache the
page with the request-specific information instead of before these are
added.