[STATUS] (httpd-2.1) Wed Sep 17 23:45:28 EDT 2003

2003-09-17 Thread Rodent of Unusual Size
APACHE 2.1 STATUS:  -*-text-*-
Last modified at [$Date: 2003/08/31 16:14:38 $]

Release [NOTE that only Alpha/Beta releases occur in 2.1 development]:

2.1.0   : in development

Please consult the following STATUS files for information
on related projects:

* srclib/apr/STATUS
* srclib/apr-util/STATUS
* docs/STATUS

Contributors looking for a mission:

* just do an egrep on "TODO" or "XXX" and see what's there


CURRENT RELEASE NOTES:


RELEASE SHOWSTOPPERS:

* Handling of non-trailing / config by non-default handler is broken
  http://marc.theaimsgroup.com/?l=apache-httpd-dev&m=105451701628081&w=2

* the edge connection filter cannot be removed 
  http://marc.theaimsgroup.com/?l=apache-httpd-dev&m=105366252619530&w=2

CURRENT VOTES:

* Promote mod_cache from experimental to non-experimental
  status (keep issues noted below in EXPERIMENTAL MODULES as
  items to be addressed as a supported module).
  +1: jim, bnicholes
  -0: jerenkrantz
  -1: stoddard
  There are a couple of problems that need to be resolved
  before this module is moved out of experimental. 
  1) We need to at least review and comment on the RFC violations
  2) Resolve issue of how to cache page fragements (or perhaps -if- we
  want to cache page fragements). Today, mod_cache/mod_mem_cache
  will cache #include 'virtual' requests (but not #include 'file' 
  requests). This was accomplished by making CACHE_IN a
  CONTENT_SET-1 filter to force it to run before the SUBREQ_CORE
  filter.  But now responses cannot be cached that include the
  effects of having been run through CONTENT_SET filters
  (mod_deflate, mod_expires, etc).  We could rerun all the
  CONTENT_SET filters on the cached response, but this will not
  work in all cases. For example, mod_expires relies on installing
  the EXPIRATION filter during fixups. Contents served out of
  mod_cache (out of the quick_handler) bypass -all- the request
  line server hooks (Ryan really hated this. It is great for
  performance, but bad because of the complications listed above).
 

  jerenkrantz: There are a slew of RFC compliance bugs filed in Bugzilla
   for mod_cache (see 'RFC 2616 violations' below).  I think
   fixing them is a pre-requisite before it isn't experimental.

* httpd-std.conf and friends

  a) httpd-std.conf should be tailored by install (from src or
 binbuild) even if user has existing httpd.conf
 +1:   trawick, slive, gregames, ianh, Ken, wrowe, jwoolley, jim, nd,
   erikabele
   wrowe - prefer httpd.default.conf to avoid ambiguity with cvs

  b) tailored httpd-std.conf should be copied by install to
 sysconfdir/examples
 -0:   striker

  c) tailored httpd-std.conf should be installed to
 sysconfdir/examples or manualdir/exampleconf/
 +1:   slive, trawick, Ken, nd (prefer the latter), erikabele

  d) Installing a set of default config files when upgrading a server
 doesn't make ANY sense at all.
 +1:   ianh - medium/big sites don't use 'standard config' anyway, as it
  usually needs major customizations
 -1:   Ken, wrowe, jwoolley, jim, nd, erikabele
   wrowe - diff is wonderful when comparing old/new default configs,
   even for customized sites that ianh mentions
   jim - ... assuming that the default configs have been updated
 with the required inline docs to explain the
 changes

* If the parent process dies, should the remaining child processes
  "gracefully" self-terminate. Or maybe we should make it a runtime
  option, or have a concept of 2 parent processes (one being a 
  "hot spare").
  See: Message-ID: <[EMAIL PROTECTED]>

  Self-destruct: Ken, Martin, Lars
  Not self-destruct: BrianP, Ian, Cliff, BillS
  Make it runtime configurable: Aaron, jim, Justin, wrowe, rederpj, nd

  /* The below was a concept on *how* to handle the problem */
  Have 2 parents: +1: jim
  -1: Justin, wrowe, rederpj, nd
  +0: Lars, Martin (while standing by, could it do
something useful?)

* Make the worker MPM the default MPM for threaded Unix boxes.
  +1:   Justin, Ian, Cliff, BillS, striker, wrowe, nd
  +0:   BrianP, Aaron (mutex contention is looking better with the
latest code, let's continue tuning and testing), rederpj, jim
  -0:   Lars

RELEASE NON-SHOWSTOPPERS BUT WOULD BE REAL NICE TO WRAP THESE UP:

* Filter stacks and subrequests, redirects and fast redirects.
  There's at least one PR that suffers from the current unclean behaviour
  (which lets the server send garbage): PR 17629
  nd says: Every subreque

[STATUS] (httpd-2.0) Wed Sep 17 23:45:19 EDT 2003

2003-09-17 Thread Rodent of Unusual Size
APACHE 2.0 STATUS:  -*-text-*-
Last modified at [$Date: 2003/09/17 10:53:32 $]

Release:

2.0.48  : in development
2.0.47  : released July 09, 2003 as GA.
2.0.46  : released May 28, 2003 as GA.
2.0.45  : released April 1, 2003 as GA.
2.0.44  : released January 20, 2003 as GA.
2.0.43  : released October 3, 2002 as GA.
2.0.42  : released September 24, 2002 as GA.
2.0.41  : rolled September 16, 2002.  not released.
2.0.40  : released August 9, 2002 as GA.
2.0.39  : released June 17, 2002 as GA.
2.0.38  : rolled June 16, 2002.  not released.
2.0.37  : rolled June 11, 2002.  not released.
2.0.36  : released May 6, 2002 as GA.
2.0.35  : released April 5, 2002 as GA.
2.0.34  : tagged March 26, 2002.
2.0.33  : tagged March 6, 2002.  not released.
2.0.32  : released Feburary 16, 2002 as beta.
2.0.31  : rolled Feburary 1, 2002.  not released.
2.0.30  : tagged January 8, 2002.  not rolled.
2.0.29  : tagged November 27, 2001.  not rolled.
2.0.28  : released November 13, 2001 as beta.
2.0.27  : rolled November 6, 2001
2.0.26  : tagged October 16, 2001.  not rolled.
2.0.25  : rolled August 29, 2001
2.0.24  : rolled August 18, 2001
2.0.23  : rolled August 9, 2001
2.0.22  : rolled July 29, 2001
2.0.21  : rolled July 20, 2001
2.0.20  : rolled July 8, 2001
2.0.19  : rolled June 27, 2001
2.0.18  : rolled May 18, 2001
2.0.17  : rolled April 17, 2001
2.0.16  : rolled April 4, 2001
2.0.15  : rolled March 21, 2001
2.0.14  : rolled March 7, 2001
2.0a9   : released December 12, 2000
2.0a8   : released November 20, 2000
2.0a7   : released October 8, 2000
2.0a6   : released August 18, 2000
2.0a5   : released August 4, 2000
2.0a4   : released June 7, 2000
2.0a3   : released April 28, 2000
2.0a2   : released March 31, 2000
2.0a1   : released March 10, 2000

Please consult the following STATUS files for information
on related projects:

* srclib/apr/STATUS
* srclib/apr-util/STATUS
* docs/STATUS

Contributors looking for a mission:

* just do an egrep on "TODO", "XXX" and see what's there

RELEASE SHOWSTOPPERS:

PATCHES TO PORT FROM 2.1
  [ please place file names and revisions from HEAD here, so it is easy to
identify exactly what the proposed changes are! ]

* The cache code should be able to cache a response if it has an
  Expires header but no Etag or Last-Modified headers. This submitted
  patch (by [EMAIL PROTECTED]) resolves PR 23130.
  
http://cvs.apache.org/viewcvs.cgi/httpd-2.0/modules/experimental/mod_cache.c.diff?r1=1.76&r2=1.77
  +1: rederpj, fielding, brianp

* Modifies the cache code to be header-location agnostic. Also
  fixes a number of other cache code bugs related to PR 15852
  (an RFC 2616 violation).
  
http://cvs.apache.org/viewcvs.cgi/httpd-2.0/modules/experimental/cache_storage.c.diff?r1=1.28&r2=1.29
  
http://cvs.apache.org/viewcvs.cgi/httpd-2.0/modules/experimental/cache_storage.c.diff?r1=1.29&r2=1.30
  
http://cvs.apache.org/viewcvs.cgi/httpd-2.0/modules/experimental/cache_util.c.diff?r1=1.27&r2=1.28
  
http://cvs.apache.org/viewcvs.cgi/httpd-2.0/modules/experimental/mod_cache.c.diff?r1=1.74&r2=1.75
  
http://cvs.apache.org/viewcvs.cgi/httpd-2.0/modules/experimental/mod_cache.c.diff?r1=1.75&r2=1.76
  
http://cvs.apache.org/viewcvs.cgi/httpd-2.0/modules/experimental/mod_cache.h.diff?r1=1.39&r2=1.40
  
http://cvs.apache.org/viewcvs.cgi/httpd-2.0/modules/experimental/mod_disk_cache.c.diff?r1=1.46&r2=1.47
  
http://cvs.apache.org/viewcvs.cgi/httpd-2.0/modules/experimental/mod_mem_cache.c.diff?r1=1.93&r2=1.94
  +1: rederpj, fielding, trawick

* Correct the code in ap_check_cache_feshness to check max_age, smax_age,
  and expires correctly. This is a RFC 2616 compliance issue.
  
http://cvs.apache.org/viewcvs.cgi/httpd-2.0/modules/experimental/cache_util.c.diff?r1=1.26&r2=1.27
  +1: rederpj, stoddard, fielding

* mod_rewrite.c: Fix mod_rewrite's support of the [P] option to send
  rewritten request using "proxy:". The code was adding multiple "proxy:"
  fields in the rewritten URI. PR: 13946.
  
http://cvs.apache.org/viewcvs.cgi/httpd-2.0/modules/mappers/mod_rewrite.c.diff?r1=1.153&r2=1.154
  
http://cvs.apache.org/viewcvs.cgi/httpd-2.0/modules/mappers/mod_rewrite.c.diff?r1=1.154&r2=1.155
  
http://cvs.apache.org/viewcvs.cgi/httpd-2.0/modules/mappers/mod_rewrite.c.diff?r1=1.156&r2=1.157
  
http://cvs.apache.org/viewcvs.cgi/httpd-2.0/modules/mappers/mod_rewrite.c.diff?r1=1.173&r2=1.174
  +1: rederpj, nd, trawick, fielding

* Replace some of the mutex locking in the worker MPM with
  atomic operations for higher concurrency.
  server/mpm/worker/fdqueue.c 1.24, 1.25
  +1: brianp

* Rewrite how proxy sends its request to allow input bodies to 
  

[STATUS] (apache-1.3) Wed Sep 17 23:45:13 EDT 2003

2003-09-17 Thread Rodent of Unusual Size
APACHE 1.3 STATUS:  -*-text-*-
  Last modified at [$Date: 2003/09/02 20:10:36 $]

Release:

   1.3.29-dev: In development
   1.3.28: Tagged July 16, 2003.
   1.3.27: Tagged September 30, 2002. Announced Oct 3, 2002.
   1.3.26: Tagged June 18, 2002.
   1.3.25: Tagged June 17, 2002. Not released.
   1.3.24: Tagged Mar 21, 2002. Announced Mar 22, 2002.
   1.3.23: Tagged Jan 21, 2002.
   1.3.22: Tagged Oct 8, 2001.  Announced Oct 12, 2001.
   1.3.21: Not released.
 (Pulled for htdocs/manual config mismatch. t/r Oct 5, 2001)
   1.3.20: Tagged and rolled May 15, 2001. Announced May 21, 2001.
   1.3.19: Tagged and rolled Feb 26, 2001. Announced Mar 01, 2001.
   1.3.18: Tagged and rolled Not released.
 (Pulled because of an incorrect unescaping fix. t/r Feb 19, 2001)
   1.3.17: Tagged and rolled Jan 26, 2001. Announced Jan 29, 2001.
   1.3.16: Not released.
 (Pulled because of vhosting bug. t/r Jan 20, 2001)
   1.3.15: Not released.
 (Pulled due to CVS dumping core during the tagging when it
  reached src/os/win32/)
   1.3.14: Tagged and Rolled Oct 10, 2000.  Released/announced on the 13th.
   1.3.13: Not released.
 (Pulled in the "first minutes" due to a Netware build bug)
   1.3.12: Tagged and rolled Feb. 23, 2000. Released/announced on the 25th.
   1.3.11: Tagged and rolled Jan. 19, 2000. Released/announced on the 21st.
   1.3.10: Not released.
 (Pulled at "last minute" due to a build bug in the MPE port)
1.3.9: Tagged and rolled on Aug. 16, 1999. Released and announced on 19th.
1.3.8: Not released.
1.3.7: Not released.
1.3.6: Tagged and rolled on Mar. 22, 1999. Released and announced on 24th.
1.3.5: Not released.
1.3.4: Tagged and rolled on Jan. 9, 1999.  Released on 11th, announced on 12th.
1.3.3: Tagged and rolled on Oct. 7, 1998.  Released on 9th, announced on 10th.
1.3.2: Tagged and rolled on Sep. 21, 1998. Announced and released on 23rd.
1.3.1: Tagged and rolled on July 19, 1998. Announced and released.
1.3.0: Tagged and rolled on June 1, 1998.  Announced and released on the 6th.
   
2.0  : Available for general use, see httpd-2.0 repository

RELEASE SHOWSTOPPERS:

   None

RELEASE NON-SHOWSTOPPERS BUT WOULD BE REAL NICE TO WRAP THESE UP:

   * Current vote on 3 PRs for inclusion:
  Bugz #17877 (passing chunked encoding thru proxy)
  (still checking if RFC compliant... vote is on the
   correctness of the patch code only).
+1: jim, chuck, minfrin
  Bugz #9181 (Unable to set headers on non-2XX responses)
+1: Martin, Jim
  Gnats #10246 (Add ProxyConnAllow directive)
+0: Martin (or rather -.5, see dev@ Message
<[EMAIL PROTECTED]>)

* htpasswd.c and htdigest.c use tmpnam()... consider using
  mkstemp() when available.
Message-ID: <[EMAIL PROTECTED]>
Status:

* Dean's "unescaping hell" (unescaping the various URI components
  at the right time and place, esp. unescaping the host name).
Message-ID: <[EMAIL PROTECTED]>
Status:

* Martin observed a core dump because a ipaddr_chain struct contains
  a NULL-"server" pointer when being dereferenced by invoking "httpd -S".
Message-ID: <[EMAIL PROTECTED]>
Status: Workaround enabled. Clean solution can come after 1.3.19

* long pathnames with many components and no AllowOverride None
  Workaround is to define  with AllowOverride None,
  which is something all sites should do in any case.
Status: Marc was looking at it.  (Will asks 'wasn't this patched?')

* Ronald Tschalär's patch to mod_proxy to allow other modules to
  set headers too (needed by mod_auth_digest)
Message-ID: <[EMAIL PROTECTED]>
Status:


Available Patches (Most likely, will be ported to 2.0 as appropriate):

   *  A rewrite of ap_unparse_uri_components() by Jeffrey W. Baker
 <[EMAIL PROTECTED]> to more fully close some segfault potential.
Message-ID: <[EMAIL PROTECTED]>
Status:  Jim +1 (for 1.3.19), Martin +0

* Andrew Ford's patch (1999/12/05) to add absolute times to mod_expires
Message-ID: <[EMAIL PROTECTED]>
Status: Martin +1, Jim +1, Ken +1 (on concept)

* Raymond S Brand's path to mod_autoindex to fix the header/readme
  include processing so the envariables are correct for the included
  documents.  (Actually, there are two variants in the patch message,
  for two different ways of doing it.)
Message-ID: <[EMAIL PROTECTED]>
Status: Martin +1(concept)

* Jayaram's patch (10/27/99) for bugfix to mod_autoindex
  IndexIgnore  should hide the files with this file-
  extension in directory listings. This was NOT happening because the 
  total filename was being compared with the file-extension.
  Status: Martin +1(untested), Ken +1(untested)
   

Reviewers wanted for second edition of Apache Pocket Reference

2003-09-17 Thread Andrew Ford
I am hoping to get a second edition of the Apache Pocket Reference 
together for O'Reilly by the end of November and wondered whether anyone 
out there would like to act as technical reviewer for the new edition?  
(This edition will of course cover Apache version 2 as well as 1.3.)

I would also welcome any comments based on the first edition of the 
book, especially pertaining to re-organization of the content..

Please reply by email directly to me.

Andrew

--
Andrew Ford,  Director   Ford & Mason Ltd / Pauntley Press
[EMAIL PROTECTED]  South Wing Compton House 
ford-mason.co.uk Compton Green, Redmarley   Tel: +44 1531 829900
pauntley-press.co.uk Gloucester, GL19 3JB   Fax: +44 1531 829901
refcards.com Great Britain   Mobile: +44 7785 258278




Input filter and setting HTTP headers in Apache 2.0

2003-09-17 Thread albertochan
Hi,

I am writing a module need to be able to examine
POST data, and insert inbound HTTP request headers
after my code has been run by apache so that:

1.  the web application can still retrieve the POST
data if required for its own consumption 
2.  the web application needs to have access to the
HTTP inbound request headers generated at runtime
(mod_header can't help me) by my code.

A web application in this case could be one of the
following (not exhaustive): 
*   a native apache 2.0 module 
*   mod_jk with Tomcat on the back end actually
running the application 
*   mod_cgi/mod_cgid 
*   mod_proxy (the back web webserver will act as the
web application)

Attempted Solution

Use an input filter. This provides the mechanism to
examine the POST data at my will without consuming
it off the socket, thus giving the web application
still the opportunity to consume it.

The input filter chain happens during the handler
phase, and is triggered if either of the following
is true:

1.  there is an explicit call by the web application
to read the POST data (either calling the
ap_XXX_client_block() series API or
ap_get_brigade()) 
2.  in the case where the web application doesn't
care about the POST data (but still requires the
inbound HTTP request headers that my code creates),
it is the ap_finalize_request_protocol() that
triggers the input filter chain. This is most likely
a special case, since if the web application doesn't
care about the POST data, a GET would be more
appropriate.

Problem

Let's say that the web application, before executing
its own logic, needs to check for a HTTP request
header that I generate to decide if it should
proceed or not. So unless the web application tries
to consume the POST data, my code (in the input
filter) will never get the chance to run to insert
those inbound HTTP request headers that the
application requires.

Question

Is there a work around for the above solution in
order to avoid the above problem, in order:

1.  for my code to be able to examine the POST data
and still allow the web application to consume it,
and 
2.  for my code to be able to insert those inbound
HTTP request headers so that the web application can
see them at run time, without putting the constraint
on it to have to retrieve the POST data first to
have access to those inbound HTTP request headers?
An example would be a cgi application that relies on
mod_cgi. mod_cgi first reads the HTTP request
headers before reading the POST data
(add_common_vars() is called way before
ap_get_brigade() in cgi_handler()). So that means
the cgi application will never get the chance to see
the headers that my code inserted. Once
ap_get_brigade() returns, the headers will be set,
but add_common_vars() has already been executed.

Since I need to be able to peek at the POST data
without consuming it, the input filter is the only
known solution (right?).Is there a known work around
this?

The only way I can see where I will have the ability
to insert those HTTP inbound request headers is if
my filter runs between the CORE_IN and the HTTP_IN
input filter, in which case I will need a properly
populated request_rec* structure to be able to use
the ap_XXX APIs (typical things would be get the
mime-type, content-length of the POST data, protocol
version, etc). Since my filter will run before the
HTTP_IN filter would have had a chance to parse the
request line and the request headers, it will most
likely cause confusion within the Apache internal
state.

Any other ideas?


Thanks, -Alberto



Re: cvs commit: apache-1.3/src/main rfc1413.c

2003-09-17 Thread Brad Nicholes
No problem.  How's this?

Brad

Brad Nicholes
Senior Software Engineer
Novell, Inc., the leading provider of Net business solutions
http://www.novell.com 

>>> [EMAIL PROTECTED] Wednesday, September 17, 2003 1:18:49 PM >>>
If you will change the logic for multithreads (not to be confused with
your logic changes for winsock :-)  from

#if (defined(NETWARE) || defined(WIN32))

to use

#ifdef MULTITHREAD

and decorate STATIC (e.g. RFC_USER_STATIC) to avoid possible name
clashes - I'd be very happy to accept this patch :-)

At 02:07 PM 9/17/2003, Brad Nicholes wrote:
>   Sorry about the ugly .diff file.  Forgot to add the -u when I did
the
>diff.  I already caught the trashed stack variable and made the fix
so
>everything looks much better in the log (real info instead of trash). 
I
>also believe that Apache is smart enough not to make the call on a
>keep-alive.  In my testing I have seen a single request to the identd
>daemon but several entries for the page and .gifs in the access_log
with
>the correct information.  Here is a good diff with the ap_pstrdup()
>added.  If it looks good to you, I will go ahead and check it in.
>
>Brad
>
>Brad Nicholes
>Senior Software Engineer
>Novell, Inc., the leading provider of Net business solutions
>http://www.novell.com 
>
 [EMAIL PROTECTED] Wednesday, September 17, 2003 12:33:30 PM >>>
>At 01:09 PM 9/17/2003, Brad Nicholes wrote:
>>Ah yeah, I noticed the problem with the JMP_BUF but for some reason
I
>>missed the local statics.  I am assuming that these local variables
>are
>>static simply to accomodate the setjmp() call.  If I get rid of
>setjmp()
>>and simply set the recv/send timeouts on the socket itself, there
>>shouldn't be any reason to have the locals declared as static.
>>
>>See the attached .diff file.  Seems to work fine on NetWare.
>
>First - e not diff -u and no file reference in the .diff :-?
>
>One more critical observation, if no longer static - this becomes
>evil:
>
>> #if (defined(NETWARE) || defined(WIN32))
>> if (setsocktimeout(sock, ap_rfc1413_timeout) == 0) {
>> if (get_rfc1413(sock, &conn->local_addr,
&conn->remote_addr,
>user, srv) >= 0)
>> result = user;
>
>result points to stack - promptly trashed.  We will need to allocate
>char* user from a pool, although I suggest we keep the fixed length
>buffer
>and simply pstrdup into conn->pool after invoking rfc1413.
>
>Do we in 1.3 already protect against invoking this multiple times for
>a keep-alive connection?  We should if we don't - it's expensive.
>
>Bill
>
>




rfc1413.c.diff
Description: Binary data


Re: cvs commit: apache-1.3/src/main rfc1413.c

2003-09-17 Thread William A. Rowe, Jr.
If you will change the logic for multithreads (not to be confused with
your logic changes for winsock :-)  from

#if (defined(NETWARE) || defined(WIN32))

to use

#ifdef MULTITHREAD

and decorate STATIC (e.g. RFC_USER_STATIC) to avoid possible name
clashes - I'd be very happy to accept this patch :-)

At 02:07 PM 9/17/2003, Brad Nicholes wrote:
>   Sorry about the ugly .diff file.  Forgot to add the -u when I did the
>diff.  I already caught the trashed stack variable and made the fix so
>everything looks much better in the log (real info instead of trash).  I
>also believe that Apache is smart enough not to make the call on a
>keep-alive.  In my testing I have seen a single request to the identd
>daemon but several entries for the page and .gifs in the access_log with
>the correct information.  Here is a good diff with the ap_pstrdup()
>added.  If it looks good to you, I will go ahead and check it in.
>
>Brad
>
>Brad Nicholes
>Senior Software Engineer
>Novell, Inc., the leading provider of Net business solutions
>http://www.novell.com 
>
 [EMAIL PROTECTED] Wednesday, September 17, 2003 12:33:30 PM >>>
>At 01:09 PM 9/17/2003, Brad Nicholes wrote:
>>Ah yeah, I noticed the problem with the JMP_BUF but for some reason I
>>missed the local statics.  I am assuming that these local variables
>are
>>static simply to accomodate the setjmp() call.  If I get rid of
>setjmp()
>>and simply set the recv/send timeouts on the socket itself, there
>>shouldn't be any reason to have the locals declared as static.
>>
>>See the attached .diff file.  Seems to work fine on NetWare.
>
>First - e not diff -u and no file reference in the .diff :-?
>
>One more critical observation, if no longer static - this becomes
>evil:
>
>> #if (defined(NETWARE) || defined(WIN32))
>> if (setsocktimeout(sock, ap_rfc1413_timeout) == 0) {
>> if (get_rfc1413(sock, &conn->local_addr, &conn->remote_addr,
>user, srv) >= 0)
>> result = user;
>
>result points to stack - promptly trashed.  We will need to allocate
>char* user from a pool, although I suggest we keep the fixed length
>buffer
>and simply pstrdup into conn->pool after invoking rfc1413.
>
>Do we in 1.3 already protect against invoking this multiple times for
>a keep-alive connection?  We should if we don't - it's expensive.
>
>Bill
>
>




Re: Sync to CVS problem

2003-09-17 Thread Cliff Woolley
On Wed, 17 Sep 2003, Juan Rivera wrote:

> I have previously downloaded a copy of the Apache server code from the cvs
> repository using "anoncvs" login and
> CVSROOT=:pserver:[EMAIL PROTECTED]:/home/cvspublic.
>
> However, I am unable to connect to the server for the past couple of days. I
> get the following error:
>  (Logging in to [EMAIL PROTECTED])
> CVS password:
> cvs [login aborted]: recv() from server cvs.apache.org: EOF

I just tried this and it worked fine for me.  If you do an nslookup on
cvs.apache.org, what address do you get?


> Also, if I use the other server (CVSROOT=
> :pserver:[EMAIL PROTECTED]:/cvs/apache) I can connect to the server.
> However I cannot export the code using the command "cvs export -d httpd-2.0
> -r APACHE_2_0_44 httpd-2.0".  I get the following error:
> cvs export: cannot open /root/.cvsignore: Permission denied
> cvs export: warning: cannot write to history file
> /cvs/apache/CVSROOT/history: Permission denied
> cvs export: Updating httpd-2.0
> cvs export: failed to create lock directory for `/cvs/apache/httpd-2.0'
> (/cvs/apache/httpd-2.0/#cvs.lock): Permission denied
> cvs export: failed to obtain dir lock in repository `/cvs/apache/httpd-2.0'
> cvs [export aborted]: read lock failed - giving up

I don't know anything about sourcery.org, can't help you there.

--Cliff


Sync to CVS problem

2003-09-17 Thread Juan Rivera
Title: Sync to CVS problem





Hi,


I have previously downloaded a copy of the Apache server code from the cvs repository using "anoncvs" login and CVSROOT=:pserver:[EMAIL PROTECTED]:/home/cvspublic. 

However, I am unable to connect to the server for the past couple of days. I get the following error:
 (Logging in to [EMAIL PROTECTED])
CVS password:
cvs [login aborted]: recv() from server cvs.apache.org: EOF



Also, if I use the other server (CVSROOT= :pserver:[EMAIL PROTECTED]:/cvs/apache) I can connect to the server. However I cannot export the code using the command "cvs export -d httpd-2.0 -r APACHE_2_0_44 httpd-2.0".  I get the following error:

cvs export: cannot open /root/.cvsignore: Permission denied
cvs export: warning: cannot write to history file /cvs/apache/CVSROOT/history: Permission denied
cvs export: Updating httpd-2.0
cvs export: failed to create lock directory for `/cvs/apache/httpd-2.0' (/cvs/apache/httpd-2.0/#cvs.lock): Permission denied

cvs export: failed to obtain dir lock in repository `/cvs/apache/httpd-2.0'
cvs [export aborted]: read lock failed - giving up


Any ideas what may be wrong?


Thanks


Juan





Re: cvs commit: apache-1.3/src/main rfc1413.c

2003-09-17 Thread Brad Nicholes
   Sorry about the ugly .diff file.  Forgot to add the -u when I did the
diff.  I already caught the trashed stack variable and made the fix so
everything looks much better in the log (real info instead of trash).  I
also believe that Apache is smart enough not to make the call on a
keep-alive.  In my testing I have seen a single request to the identd
daemon but several entries for the page and .gifs in the access_log with
the correct information.  Here is a good diff with the ap_pstrdup()
added.  If it looks good to you, I will go ahead and check it in.

Brad

Brad Nicholes
Senior Software Engineer
Novell, Inc., the leading provider of Net business solutions
http://www.novell.com 

>>> [EMAIL PROTECTED] Wednesday, September 17, 2003 12:33:30 PM >>>
At 01:09 PM 9/17/2003, Brad Nicholes wrote:
>Ah yeah, I noticed the problem with the JMP_BUF but for some reason I
>missed the local statics.  I am assuming that these local variables
are
>static simply to accomodate the setjmp() call.  If I get rid of
setjmp()
>and simply set the recv/send timeouts on the socket itself, there
>shouldn't be any reason to have the locals declared as static.
>
>See the attached .diff file.  Seems to work fine on NetWare.

First - e not diff -u and no file reference in the .diff :-?

One more critical observation, if no longer static - this becomes
evil:

> #if (defined(NETWARE) || defined(WIN32))
> if (setsocktimeout(sock, ap_rfc1413_timeout) == 0) {
> if (get_rfc1413(sock, &conn->local_addr, &conn->remote_addr,
user, srv) >= 0)
> result = user;

result points to stack - promptly trashed.  We will need to allocate
char* user from a pool, although I suggest we keep the fixed length
buffer
and simply pstrdup into conn->pool after invoking rfc1413.

Do we in 1.3 already protect against invoking this multiple times for
a keep-alive connection?  We should if we don't - it's expensive.

Bill




rfc1413.c.diff
Description: Binary data


Re: cvs commit: apache-1.3/src/main rfc1413.c

2003-09-17 Thread William A. Rowe, Jr.
At 01:09 PM 9/17/2003, Brad Nicholes wrote:
>Ah yeah, I noticed the problem with the JMP_BUF but for some reason I
>missed the local statics.  I am assuming that these local variables are
>static simply to accomodate the setjmp() call.  If I get rid of setjmp()
>and simply set the recv/send timeouts on the socket itself, there
>shouldn't be any reason to have the locals declared as static.
>
>See the attached .diff file.  Seems to work fine on NetWare.

First - e not diff -u and no file reference in the .diff :-?

One more critical observation, if no longer static - this becomes evil:

> #if (defined(NETWARE) || defined(WIN32))
> if (setsocktimeout(sock, ap_rfc1413_timeout) == 0) {
> if (get_rfc1413(sock, &conn->local_addr, &conn->remote_addr, user, srv) >= 0)
> result = user;

result points to stack - promptly trashed.  We will need to allocate
char* user from a pool, although I suggest we keep the fixed length buffer
and simply pstrdup into conn->pool after invoking rfc1413.

Do we in 1.3 already protect against invoking this multiple times for
a keep-alive connection?  We should if we don't - it's expensive.

Bill




Re: cvs commit: apache-1.3/src/main rfc1413.c

2003-09-17 Thread Brad Nicholes
Ah yeah, I noticed the problem with the JMP_BUF but for some reason I
missed the local statics.  I am assuming that these local variables are
static simply to accomodate the setjmp() call.  If I get rid of setjmp()
and simply set the recv/send timeouts on the socket itself, there
shouldn't be any reason to have the locals declared as static.

See the attached .diff file.  Seems to work fine on NetWare.


Brad

Brad Nicholes
Senior Software Engineer
Novell, Inc., the leading provider of Net business solutions
http://www.novell.com 

>>> [EMAIL PROTECTED] Wednesday, September 17, 2003 11:38:16 AM >>>
At 04:54 PM 9/16/2003, Brad Nicholes wrote:
>  Looking through the code I don't see anything that would be a
thread-safety issue.  What am I missing?


/* rfc1413 - return remote user name, given socket structures */
API_EXPORT(char *) ap_rfc1413(conn_rec *conn, server_rec *srv)
{
static char user[RFC1413_USERLEN + 1];  /* XXX */
static char *result;
static int sock;

Presumes that the requests are serialized (note static storage of
these
and the JMP_BUF, which might have per-thread context on some
platforms.)

Bill




rfc1413.c.diff
Description: Binary data


Re: cvs commit: apache-1.3/src/main rfc1413.c

2003-09-17 Thread William A. Rowe, Jr.
At 04:54 PM 9/16/2003, Brad Nicholes wrote:
>  Looking through the code I don't see anything that would be a thread-safety issue.  
> What am I missing?


/* rfc1413 - return remote user name, given socket structures */
API_EXPORT(char *) ap_rfc1413(conn_rec *conn, server_rec *srv)
{
static char user[RFC1413_USERLEN + 1];  /* XXX */
static char *result;
static int sock;

Presumes that the requests are serialized (note static storage of these
and the JMP_BUF, which might have per-thread context on some platforms.)

Bill




RE: Tagged 2.0

2003-09-17 Thread Sander Striker
> From: Jeff Trawick [mailto:[EMAIL PROTECTED]
> Sent: Wednesday, September 17, 2003 2:15 PM

> Sander Striker wrote:
> 
> > I've re tagged the 2.0 tree with STRIKER_2_0_48_PRE2.  I've
> > put some tarballs containing that tag up at:
> 
> There are some other fixes merged back since then, and it looks like 
> another set of fixes that are close to being approved.
> 
> Here is one issue I'd strongly suggest resolving for 2.0.48:
> 
> Greg indicated in the last couple of days that www.apache.org had almost 
> 12000 error messages (at that point) related to mutex errors with 
> mod_rewrite.  That affects flock users (e.g., FreeBSD) starting the 
> server as root.  I would suggest picking up this change to resolve that:

*nod*  That'd be a good one to include.

> Beyond this one, I'm afraid that I'm not very familiar with the 
> real-world implications of not picking up the other available fixes.

Everything that was voted upon can go in IMO.  I was kind of hoping that
we could get this release out this week, but I'm afraid that's not going
to happen, if we want pre3 to serve on minotaur for a few days.
 
> I'd like to think that within a couple of days we could get 7 or 8 more 
> fixes merged back, at which point we'd be ready for another release 
> anyway.  But it wouldn't be prudent to count on that happening ;)

Tell you what, if I see those merges start trickling in, I'll hold the
pre3 tag til friday.  We'll put the thing on minotaur directly, and
announce to stable-testers.  I'm hoping we can get enough +1s around
tuesday/wednesday to push out the final release.

I haven't been pushing this release hard enough.  It's dragging
on way too long...  Sorry about that.


Sander 


Re: Tagged 2.0

2003-09-17 Thread Jeff Trawick
Sander Striker wrote:

I've re tagged the 2.0 tree with STRIKER_2_0_48_PRE2.  I've
put some tarballs containing that tag up at:
There are some other fixes merged back since then, and it looks like 
another set of fixes that are close to being approved.

Here is one issue I'd strongly suggest resolving for 2.0.48:

Greg indicated in the last couple of days that www.apache.org had almost 
12000 error messages (at that point) related to mutex errors with 
mod_rewrite.  That affects flock users (e.g., FreeBSD) starting the 
server as root.  I would suggest picking up this change to resolve that:

-* Unix: Handle permissions settings for flock-based mutexes in
  -  unixd_set_global|proc_mutex_perms().  Allow the functions to
  -  be called for any type of mutex.  PR 20312
  -modules/mappers/mod_rewrite.c 1.153
  -modules/ssl/mod_ssl.h 1.136
  -modules/ssl/ssl_engine_config.c 1.81
  -modules/ssl/ssl_engine_mutex.c 1.26
  -os/unix/unixd.c 1.58
  -os/unix/unixd.h 1.38
  -+1: trawick, jerenkrantz, gregames
  - 0: jim (it seems to me that the locking mech itself
  - should have the required flags to determine whether
  - uid/gid and chown is required, rather than placing
  - that knowledge in unixd.c (kind of what is done for
  - the SSL stuff already with ChownMutexFile). Thus
  - unixd would simply check those out and do what is
  - required rather than having internal APR knowledge
  - it shouldn't).
I think the critical issue with this one is that, while the lessor-used 
lock in mod_rewrite had this problem all along, another fix in 2.0.47 
started doing the child-init on the other mod_rewrite lock and it too 
picked up the root/flock issue.

Beyond this one, I'm afraid that I'm not very familiar with the 
real-world implications of not picking up the other available fixes.

I'd like to think that within a couple of days we could get 7 or 8 more 
fixes merged back, at which point we'd be ready for another release 
anyway.  But it wouldn't be prudent to count on that happening ;)