RE: [PATCH] Remove the Port directive.

2001-10-03 Thread MATHIHALLI,MADHUSUDAN (HP-Cupertino,ex1)

That's really cool.. I was just thinking about it today, and there's already
a solution for it.. Especially with httpd-ssl.conf, it'd have been rally
confusing for the user to configure the port number for http in 2 places..

-Madhu

-Original Message-
From: William A. Rowe, Jr. [mailto:[EMAIL PROTECTED]]
Sent: Wednesday, October 03, 2001 8:38 PM
To: [EMAIL PROTECTED]; [EMAIL PROTECTED]
Subject: Re: [PATCH] Remove the Port directive.


From: "Ryan Bloom" <[EMAIL PROTECTED]>
Sent: Wednesday, October 03, 2001 10:24 PM


> 
> This patch completely deprectates the Port directive.  The ServerName
> directive is now overloaded, so that admins specify the port and name on
> the same directive.  It also makes Listen a required directive.  Pay
attention
> to that.  There are no default ports with this patch.  If your config
doesn't have
> a Listen directive, the server doesn't start, and it emits an error.
> 
> I am a bit hesitant to commit this without some feedback, because it is a
pretty
> major change.  Before I commit this, I will update all of the docs.

++1, that's the way :)

> Thoughts?

We've already killed BindAddress, no?  If not, we need to :) 



Re: [Patch 1.3] mod_usertrack backport

2001-10-03 Thread William A. Rowe, Jr.

Last chance, going once... going twice - need two +1's before I'm willing
to commit this before 1.3.21 rolls.  Sure looks BDSS to me.

- Original Message - 
From: "William A. Rowe, Jr." <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Tuesday, October 02, 2001 12:19 PM
Subject: [Patch 1.3] mod_usertrack backport


> When I was fixing mod_usertrack in 2.0, I was referring back to the
> 1.3 behavior and discovered two bits;
> 
> 1. we waste a ton of time expanding dates that don't need expanding
> 
> 2. there is still the 'millenial hack' that should be unneccessary now
> 
> Any opinions on committing this patch for 1.3.21's release?  I'm +1.
> If concensus says 'yea', I'm happy to apply, or FirstBill is welcome to 
> beat me to it.
> 
> Bill
> 
> 
> 

 mod_usertrack.patch


[STATUS] (httpd-2.0) Wed Oct 3 23:45:14 EDT 2001

2001-10-03 Thread Rodent of Unusual Size

APACHE 2.0 STATUS:  -*-text-*-
Last modified at [$Date: 2001/10/03 17:47:50 $]

Release:

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

RELEASE SHOWSTOPPERS:

* Revert to a 1.3 behavior and allow a non-file request to travel
  through the request cycle.  If any request gets to the core handler,
  without a flag that this r->filename was tested by dir/file_walk,
  then we 500 at the very end of the request cycle.  This provides
  authors of older modules better compatibility, while still improving
  the security and robustness of 2.0.  This does not remove the new
  map_to_storage hook itself, but makes it optional for some cases.
Status: still need to decide where this goes, OtherBill comments...
Message-ID: <065701c14526$495203b0$[EMAIL PROTECTED]>
we need to look at halting this in the 'default handler' case,
and that implies pushing the 'handler election' into the request
internal processing phase from the run request phase.

* There is a bug in how we sort some hooks, at least the pre-config
  hook.  The first time we call the hooks, they are in the correct 
  order, but the second time, we don't sort them correctly.  Currently,
  the modules/http/config.m4 file has been renamed to 
  modules/http/config2.m4 to work around this problem, it should moved
  back when this is fixed.rbb

* The Add...Filter and Set...Filter directives do not allow the
  administrator to order filters, beyond the order of filename (mime)
  extensions.  It isn't clear if Set...Filter(s) should be inserted 
  before or after the Add...Filter(s) which are ordered by sequence of
  filename extensions.  Add...FilterByType will add to this quandry.
  Some sort of resolution needs to be proposed, 

* mod_dir should normally redirect ALL directory requests which do
  not include a trailing slash on the URI. However, if a "notes"
  flag is set (say, via BrowserMatch), this behavior will be
  disabled for non-GET requests.
Status: Greg volunteers
MsgId: <[EMAIL PROTECTED]>
MsgId: <[EMAIL PROTECTED]>

* mod_negotiation will not serve a request when an early extention
  is understood, but a later extention is not.  e.g. if the request
  index.html.bak is recieved, and negotition could find the file
  index.html.bak.en, it still won't be served because the 
  ap-mime-exception-list will contain "index" and "bak", and the
  string "index.bak" doesn't match "index.html.bak".  Need to
  review the ap-mime-exception-list component by component to be
  allow these cases.  [This could be part of a patch to allow the
  name index.bak in the case above to match index.html.bak.en]

* mod_negotiation needs a new option or directive, something like
  ForceLanguagePriority, to fall back to the LanguagePriority
  directive instead of returning a "no acceptable variant" error.
Status: Bill has some code in his tree that accomplishes
this, and will commit it Friday after it's tested.

* Usability: Sanitize the MPM config directives.  MaxClients in 
  the threaded MPM is totally misleading now as it has little to
  do with limiting the number of clients (it limits the number
  of child processes). Bill proposed nomenclature change to
  something like "StartWorkers, MaxWorkers, etc." that could 
  apply to most all the MPMs (with some notable exceptions).
  Bill would be happy with changing MaxClients to MaxServers
  to make it agree with the operation of the StartServers
  directive.

* Fix the configure script to add a LoadModule directive to
  the default httpd.conf for any module that was compiled
  as a DSO.

* revamp the input filter semantics, per discussions since
  February (and especially at the hackathon last
  April). Specifically, ap_get_brigade will return a brigade with
  *up to* a specific number of bytes, or a "line" of data. The
  read 

[STATUS] (apache-1.3) Wed Oct 3 23:45:07 EDT 2001

2001-10-03 Thread Rodent of Unusual Size

APACHE 1.3 STATUS:  -*-text-*-
  Last modified at [$Date: 2001/10/03 18:39:38 $]

Release:

   1.3.21: In development - Bill Stoddard has proposed a T&R "soon",
 (tag scheduled 10/3 2330Z or thereabouts)
   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: 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. Released and announced on 19th.
1.3.8: Not released.
1.3.7: Not released.
1.3.6: Tagged and rolled on Mar. 22. Released and announced on 24th.
1.3.5: Not released.
1.3.4: Tagged and rolled on Jan. 9.  Released on 11th, announced on 12th.
1.3.3: Tagged and rolled on Oct. 7.  Released on 9th, announced on 10th.
1.3.2: Tagged and rolled on Sep. 21. Announced and released on 23rd.
1.3.1: Tagged and rolled on July 19. Announced and released.
1.3.0: Tagged and rolled on June 1.  Announced and released on the 6th.
   
2.0  : In alpha development, see httpd-2.0 repository

RELEASE SHOWSTOPPERS:

Security issues posted to the appropriate list.
  Status: backport of httpd-2.0/modules/mappers/mod_negotation.c 1.83
  fixes the only remaining negotiation bugaboo.

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

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

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


Documentation that needs writing:


Available Patches (Most likely, these will not be added to the official
1.3 tree, but instead should be ported to 2.0):

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

* Patch from "C. Bottelier" <[EMAIL PROTECTED]> to run
Apache without daemonizing the parent process. PR#7040
Status: fanf +1 (except it needs docs)

* 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 changes to mod_autoindex
 
Problem 1:

AddIcon (,) ^^DIRECTORY^^ 
and 
AddIcon (,) ^^BLANKICON^^ 
should be able to set the alternate text and icon file for any
directory/blankicon in a directory listing. This was not happening
because the alternate text for ^^DIRECTORY^^ and ^^BLANKICON^^ were
hardcoded to  "DIR" and "   " respectively.
  Status: resolved in Apache 2.0

Problem 2:
-
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

Re: [PATCH] Remove the Port directive.

2001-10-03 Thread William A. Rowe, Jr.

From: "Ryan Bloom" <[EMAIL PROTECTED]>
Sent: Wednesday, October 03, 2001 10:24 PM


> 
> This patch completely deprectates the Port directive.  The ServerName
> directive is now overloaded, so that admins specify the port and name on
> the same directive.  It also makes Listen a required directive.  Pay attention
> to that.  There are no default ports with this patch.  If your config doesn't have
> a Listen directive, the server doesn't start, and it emits an error.
> 
> I am a bit hesitant to commit this without some feedback, because it is a pretty
> major change.  Before I commit this, I will update all of the docs.

++1, that's the way :)

> Thoughts?

We've already killed BindAddress, no?  If not, we need to :) 




Re: [PATCH] Remove the Port directive.

2001-10-03 Thread Aaron Bannert

On Wed, Oct 03, 2001 at 08:35:04PM -0700, Ryan Bloom wrote:
> The thing that concerns me the most, is that there is no default Port.  If people
> can accept that change, then I think this is the right way to go.

I think you meant there is no default listener.

So what happens with this patch if you don't specify a listener?

-aaron



Re: [PATCH] Remove the Port directive.

2001-10-03 Thread Ryan Bloom

On Wednesday 03 October 2001 08:27 pm, Cliff Woolley wrote:
> On Wed, 3 Oct 2001, Ryan Bloom wrote:
> > This patch completely deprectates the Port directive.  The ServerName
> > directive is now overloaded, so that admins specify the port and name
> > on the same directive.  It also makes Listen a required directive.
> > Pay attention to that.  There are no default ports with this patch.
> > If your config doesn't have a Listen directive, the server doesn't
> > start, and it emits an error.
>
> +1.  Port vs. Listen has always been one of the things people just can't
> seem to figure out no matter how carefully we try to explain it.  Doing it
> through ServerName makes it much more clear what's going on.

The thing that concerns me the most, is that there is no default Port.  If people
can accept that change, then I think this is the right way to go.

Ryan

__
Ryan Bloom  [EMAIL PROTECTED]
Covalent Technologies   [EMAIL PROTECTED]
--



Re: [PATCH] Remove the Port directive.

2001-10-03 Thread Cliff Woolley

On Wed, 3 Oct 2001, Ryan Bloom wrote:

> This patch completely deprectates the Port directive.  The ServerName
> directive is now overloaded, so that admins specify the port and name
> on the same directive.  It also makes Listen a required directive.
> Pay attention to that.  There are no default ports with this patch.
> If your config doesn't have a Listen directive, the server doesn't
> start, and it emits an error.

+1.  Port vs. Listen has always been one of the things people just can't
seem to figure out no matter how carefully we try to explain it.  Doing it
through ServerName makes it much more clear what's going on.

--Cliff

--
   Cliff Woolley
   [EMAIL PROTECTED]
   Charlottesville, VA





[PATCH] Remove the Port directive.

2001-10-03 Thread Ryan Bloom


This patch completely deprectates the Port directive.  The ServerName
directive is now overloaded, so that admins specify the port and name on
the same directive.  It also makes Listen a required directive.  Pay attention
to that.  There are no default ports with this patch.  If your config doesn't have
a Listen directive, the server doesn't start, and it emits an error.

I am a bit hesitant to commit this without some feedback, because it is a pretty
major change.  Before I commit this, I will update all of the docs.

Thoughts?

Ryan

? build.log
? build.err
? modules/httpd-pop3
? srclib/apr/build.log
? srclib/apr/build.err
? srclib/apr/test/build.log
? srclib/apr/test/build.err
Index: docs/conf/httpd-std.conf
===
RCS file: /home/cvs/httpd-2.0/docs/conf/httpd-std.conf,v
retrieving revision 1.52
diff -u -d -b -w -u -r1.52 httpd-std.conf
--- docs/conf/httpd-std.conf2001/10/03 18:56:38 1.52
+++ docs/conf/httpd-std.conf2001/10/04 02:49:00
@@ -231,12 +231,6 @@
 #
 
 #
-# Port: The port to which the standalone server listens. For
-# ports < 1023, you will need httpd to be run as root initially.
-#
-Port @@Port@@
-
-#
 # If you wish httpd to run as a different user or group, you must run
 # httpd as root initially and it will switch.  
 #
@@ -270,7 +264,7 @@
 # You will have to access it by its address (e.g., http://123.45.67.89/)
 # anyway, and this will make redirections work in a sensible way.
 #
-#ServerName new.host.name
+#ServerName new.host.name:80
 
 #
 # DocumentRoot: The directory out of which you will serve your
Index: server/core.c
===
RCS file: /home/cvs/httpd-2.0/server/core.c,v
retrieving revision 1.64
diff -u -d -b -w -u -r1.64 core.c
--- server/core.c   2001/09/29 08:33:02 1.64
+++ server/core.c   2001/10/04 02:49:02
@@ -1603,15 +1603,27 @@
 return NULL;
 }
 
-static const char *server_port(cmd_parms *cmd, void *dummy, const char *arg)
+static const char *server_hostname_port(cmd_parms *cmd, void *dummy, const char *arg)
 {
 const char *err = ap_check_cmd_context(cmd, NOT_IN_DIR_LOC_FILE|NOT_IN_LIMIT);
+const char *portstr;
+const char *server;
 int port;
 
 if (err != NULL) {
return err;
 }
-port = atoi(arg);
+portstr = ap_strchr_c(arg, ':');
+if (portstr) {
+cmd->server->server_hostname = apr_pstrndup(cmd->pool, arg, 
+portstr - arg);
+portstr++;
+port = atoi(portstr);
+}
+else {
+cmd->server->server_hostname = apr_pstrdup(cmd->pool, arg);
+port = 80;
+}
 if (port <= 0 || port >= 65536) { /* 65536 == 1<<16 */
return apr_pstrcat(cmd->temp_pool, "The port number \"", arg, 
  "\" is outside the appropriate range "
@@ -2411,7 +2423,8 @@
 
 /* Old server config file commands */
 
-AP_INIT_TAKE1("Port", server_port, NULL, RSRC_CONF, "A TCP port number"),
+AP_INIT_TAKE1("Port", ap_set_deprecated, NULL, RSRC_CONF, 
+  "Port was replaced with Listen in Apache 2.0"),
 AP_INIT_TAKE1("HostnameLookups", set_hostname_lookups, NULL,
   ACCESS_CONF|RSRC_CONF,
   "\"on\" to enable, \"off\" to disable reverse DNS lookups, or \"double\" to "
@@ -2419,9 +2432,8 @@
 AP_INIT_TAKE1("ServerAdmin", set_server_string_slot,
   (void *)APR_XtOffsetOf (server_rec, server_admin), RSRC_CONF,
   "The email address of the server administrator"),
-AP_INIT_TAKE1("ServerName", set_server_string_slot,
-  (void *)APR_XtOffsetOf (server_rec, server_hostname), RSRC_CONF,
-  "The hostname of the server"),
+AP_INIT_TAKE1("ServerName", server_hostname_port, NULL, RSRC_CONF,
+  "The hostname and port of the server"),
 AP_INIT_TAKE1("ServerSignature", set_signature_flag, NULL, OR_ALL,
   "En-/disable server signature (on|off|email)"),
 AP_INIT_TAKE1("ServerRoot", set_server_root, NULL, RSRC_CONF,
Index: server/listen.c
===
RCS file: /home/cvs/httpd-2.0/server/listen.c,v
retrieving revision 1.61
diff -u -d -b -w -u -r1.61 listen.c
--- server/listen.c 2001/08/13 04:57:34 1.61
+++ server/listen.c 2001/10/04 02:49:03
@@ -273,11 +273,10 @@
 ap_listen_rec *next;
 int num_open;
 
-/* allocate a default listener if necessary */
-if (ap_listeners == NULL) {
-   alloc_listener(process, NULL, (apr_port_t)(port ? port : DEFAULT_HTTP_PORT));
-}
-
+/* Don't allocate a default listener.  If we need to listen to a
+ * port, then the user needs to have a Listen directive in their
+ * config file.
+ */
 num_open = 0;
 for (lr = ap_listeners; lr; lr = lr->next) {
if (lr->active) {


__
Ryan Bloom  [EMAIL PROTECTED]
Covalent Technologies   [EMAIL PROTECTED]
-

Re: BaseAddress.ref needed?

2001-10-03 Thread William A. Rowe, Jr.

Nope.

Maintaining a list of base addresses implies some intimate knowledge of the size
of the code segment, which we aren't privy to, and will change over a modules'
lifetime based on the type of compilation and whether it draws in static or
dynamic libraries.

It also presumes perl is installed - something others have criticized me before.
That's why we've settled on awk.

Bill

- Original Message -
From: "Günter Knauf" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Wednesday, October 03, 2001 4:52 PM
Subject: Re: BaseAddress.ref needed?


Hi Bill,
> My only problem is that I don't want to even try maintaining such a beast.
> IMHO, it's better if they express their /BASE:"0x" directly.
I'm also too lazy, so I made a quick hack in perl which could do the beast for us.
My idea is using a file modules.def which defines the Apache shipping modules, and a 
second mymodules.def which is appended when
present. modules.def ships with Apache and everyone who is using own modules has only 
to maintain a small mymodules.def with the
modules he uses. So you can reorder, comment out, insert modules and make a gap just 
as you like, the script does the rest. The
module definition is simply the name and the bytes separated by comma.

What do you think?

Guenter.






Re: 1.3 src/Configure

2001-10-03 Thread Sander Temme

on 10/3/01 4:53 PM, Rodent of Unusual Size at [EMAIL PROTECTED] wrote:

> I know I was one of the last holdouts that used the old
> src/Configure method, before being converted to APACI.
> Which suddenly makes me wonder.. is there *anyone* that
> still uses src/Configure?  Does anyone know if it still
> works? :-)

Isn't apache-1.3/src/Configure called by apache-1.3/configure ? At least,
when I fixed my build in src/Configure, things started working. See my patch
of earlier today. 

S.

-- 
Covalent Technologies [EMAIL PROTECTED]
Engineering groupVoice: (415) 536 5214
645 Howard St. Fax: (415) 536 5210
San Francisco CA 94105

   PGP Fingerprint: 1E74 4E58 DFAC 2CF5 6A03  5531 AFB1 96AF B584 0AB1

===
This email message is for the sole use of the intended recipient(s) and may
contain confidential and privileged information. Any unauthorized review,
use, disclosure or distribution is prohibited.  If you are not the intended
recipient, please contact the sender by reply email and destroy all copies
of the original message
===




[PATCH (again)] TPF http_main.c change for 1.3.21

2001-10-03 Thread David McCreedy

Here is the http_main.c change to fix the compilation error on TPF.
(I omitted the actual patch on my first note.)
It's change is within an "#if defined(HAVE_TPF_CORE_SERIALIZED_ACCEPT)"
block of code so it should not affect any other platforms.

Thank you,

David McCreedy



diff -ru3 before/src/main/http_main.c after/src/main/http_main.c
--- before/src/main/http_main.c Wed Oct  3 19:30:29 2001
+++ after/src/main/http_main.c  Wed Oct  3 19:28:44 2001
@@ -1074,7 +1074,9 @@
 coruc(RESOURCE_KEY);
 }
 
-#define accept_mutex_init_tpfcore(x)
+static void accept_mutex_init_tpfcore(pool *foo)
+{
+}
 
 static void accept_mutex_child_init_tpfcore(pool *p)
 {



[PATCH] TPF http_main.c change for 1.3.21

2001-10-03 Thread David McCreedy

Here is the http_main.c change to fix the compilation error on TPF.
It's change is within an "#if defined(HAVE_TPF_CORE_SERIALIZED_ACCEPT)"
block of code so it should not affect any other platforms.

Thank you,

David McCreedy



Re: 1.3 src/Configure

2001-10-03 Thread David McCreedy


Yes... src/Configure is used on TPF.
And it still works.

-David



   

Rodent of  

Unusual Size To: Apache Developers 
<[EMAIL PROTECTED]>  
   Subject: 1.3 src/Configure

   

10/03/2001 

05:53 PM   

Please respond 

to dev 

   

   




I know I was one of the last holdouts that used the old
src/Configure method, before being converted to APACI.
Which suddenly makes me wonder.. is there *anyone* that
still uses src/Configure?  Does anyone know if it still
works? :-)
--
#ken   P-)}

Ken Coar, Sanagendamgagwedweinini  http://Golux.Com/coar/
Author, developer, opinionist  http://Apache-Server.Com/

"All right everyone!  Step away from the glowing hamburger!"







1.3 src/Configure

2001-10-03 Thread Rodent of Unusual Size

I know I was one of the last holdouts that used the old
src/Configure method, before being converted to APACI.
Which suddenly makes me wonder.. is there *anyone* that
still uses src/Configure?  Does anyone know if it still
works? :-)
-- 
#kenP-)}

Ken Coar, Sanagendamgagwedweinini  http://Golux.Com/coar/
Author, developer, opinionist  http://Apache-Server.Com/

"All right everyone!  Step away from the glowing hamburger!"



Re: Apache 1.3.21 tag this evening....

2001-10-03 Thread Bill Stoddard

I'll hold off on the tag for a few hours more.

Bill

- Original Message - 
From: "David McCreedy" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Wednesday, October 03, 2001 3:17 PM
Subject: RE: Apache 1.3.21 tag this evening


> 
> I'm hitting a fatal compilation error on TPF with some "accept mutex" code
> what was added.
> I was unaware of these changes but believe it was part of the
> "make-accept-mutex-method-runtime patch".
> (I didn't realize the changes affected TPF-specific code until today.)
> 
> I think I have a fix but won't be able to test it for several hours (7pm
> Eastern Time).
> Can the tag wait until I've tested and submitted this fix?
> 
> -David
> 
> 




Re: BaseAddress.ref needed?

2001-10-03 Thread Günter Knauf

Hi Bill,
> My only problem is that I don't want to even try maintaining such a beast.
> IMHO, it's better if they express their /BASE:"0x" directly.  
I'm also too lazy, so I made a quick hack in perl which could do the beast for us. 
My idea is using a file modules.def which defines the Apache shipping modules, and a 
second mymodules.def which is appended when present. modules.def ships with Apache and 
everyone who is using own modules has only to maintain a small mymodules.def with the 
modules he uses. So you can reorder, comment out, insert modules and make a gap just 
as you like, the script does the rest. The module definition is simply the name and 
the bytes separated by comma.

What do you think? 

Guenter.

 mkbaseref.zip


Recent Input Filter changes breaking reverse proxy --repost

2001-10-03 Thread Ian Holsman

hey guys.
I'm trying to debug a problem with the reverse proxy in the
latest CVS HEAD.
It seems to be handing in ap_proxy_read_string, while doing a blocking
read with 'ap_get_brigade'

Is anyone else having this problem? I'm not doing anything 'smart'
just a plain ProxyPass /test/ http://foo/test/

..Ian




Re: ssl is broken

2001-10-03 Thread Roy T. Fielding

> Maybe filtering needs some pushback so each higher level filter can avoid
> hanging on to bytes it doesn't want or need, and push them back at a lower
> level filter that can keep them in their queue for the next transaction
> within the request or the next request within the connection.

Yes, as we discussed several times before, the only thing that the filter
closest to the socket (CORE_IN or whatever else you might call it) can
do is read large blocks of data from the network and place them in a
buffer with a connection lifetime.  In other words, what BUFF did.
The only way filters can improve on that is by passing brigades and
allowing the downstream filter to "unread" (pass back to the CORE_IN)
any data that is beyond its application frame (message boundary).

OTOH, the notion of replacing CORE_IN based on the notion of the connection
is really no different than the IOL code that Dean introduced.  There are
reasons why we don't want to do that, but nobody bothered to document them.

I think we have to get off the notion that recent modifications have
broken mod_ssl -- it has yet to work correctly with filters.  Any module
that makes implementation assumptions about the implementation of the
upstream filter, or the nature of the data being passed through the filter,
is broken, and I personally think that includes every implementation of
filters in httpd.  That is why we have a showstopper item about rethinking
the input filters.

In any case, this part of httpd-2.0 is not ready for prime time.  It
desperately needs our unfettered attention, which means not approaching
every change as if it were a life-or-death situation.  Just fix it.

Roy




Re: [PATCH] mod_negotiation, suffix order

2001-10-03 Thread Francis Daly

On Tue, Oct 02, 2001 at 08:33:21PM -0500, William A.  Rowe, Jr.  wrote:

>   I am very impressed by this idea for Apache 2.0.  But I don't like the
> many to many mapping.  If we change your underlying rule here to require
> that each filename extension is passed in sequence, I would be _very_ 
> happy to commit this patch :)  E.g. index.en _could_ match index.html.en.
> But index.en.html would _not_ match index.html.en.

By that, I take it you mean something like a requirement (5), or
perhaps (3b), to be added to the description below, along the lines of
(3b)"each .suffix in r->filename must exist in the real filename, in
the same sequence as they were in r->filename"?  (r->filename here
means "the bit of it after the final /")

>> The requirements are (1)r->filename up to the first dot must match the
>> real filename up to the first dot; (2)r->filename may not be longer
>> than the real filename; (3)each .suffix in r->filename must exist
>> (string match) in the real filename; (4)the real filename must
>> correspond to a known mime-type, encoding, etc -- which I think means
>> that the final suffix must be known, and only suffixes followed by
>> known suffixes are considered.

[ I note that others feel that (1) above should be replaced with
something more like "all of r->filename must match the start of the
real filename", which would make the remainder of this mail
irrelevant.  I'll continue anyway, but feel free to bin it if this is
the Wrong Thing ]

In case my interpretation of (3b) is unclear: as a (hopefully)
complete example, given the file "name.a.b.x.cd.e.f", and presuming
that "x" is the only suffix which is _not_ a recognised mime extension
(type, language, encoding, whatever) then which of the following
requests should be accepted, and which not?

name
name.a
name.a.b
name.a.c
name.a.cd
name.b.c.e
name.b.x.e.f
name.e
name.x.c
name.x.f
name.a.b...f

name.b.a
name.a.b.f.c
name.x.b
name.c.x
name.f.e

name.e.
name.e.e
name.f.

(my understanding is that the first group should all be passed down as
possibilities, the second group shouldn't, and the third group could
be anything.  I'd plump for "yes" for all three, probably.)

And for extra fun, which would be different if the file were called
"name.a.b.x.cd.e.f.e".

(my understanding is that the third group definitely becomes "yes",
name.f.e from the second group becomes "yes", and the rest stay as
they were.)

As mentioned in the earlier mail, this patch just decides whether or
not to allow the file as a possibility -- later code gets a shot at
deciding how to handle the suffixes, so if any of the trailing
not-explicitly-listed-in-r->filename suffixes aren't actually
recognised, the only way to get the file would be to request it
by the full name, and therefore bypass mod_negotiation.

For the specific example above, this means that the only requests that
would actually return the file would be name.b.x.e.f, name.x.c, and
name.x.f

The change to the patch to limit the matches as described above is
mostly straightforward -- instead of starting each strstr() at the
start of "name", start it at the point of the previous match (either
the start or the end -- it'd presumably make a difference if someone
requests "file.html.html").

A new const char * which points into dirent.name is the only addition
over the previous patch.  However, unless someone has a
case-insensitive strstr() lying around, the CASE_BLIND_FILESYSTEM
cases won't work sensibly -- the "name" part would match
insensitively, but each suffix won't.

I'm including the reworked patch below, in case it's considered
useful.  Written and somewhat tested against mod_negotiation.c from
httpd-2.0.25; it applies cleanly to CVS version 1.84.

f
-- 
Francis Daly[EMAIL PROTECTED]

=

--- mod_negotiation.c.orig  Tue Aug 28 04:08:31 2001
+++ mod_negotiation.c   Wed Oct  3 21:44:12 2001
@@ -1019,6 +1019,11 @@
 struct var_rec mime_info;
 struct accept_rec accept_info;
 void *new_var;
+char *pos;
+int pos_len;
+int not_this_dirent;/* actually, boolean. */
+int dots_in_request = 0;/* 1 == one dot, 2 == some dots */
+const char *dpos;   /* points into the dirent.name */
 int anymatch = 0;
 
 clean_var_rec(&mime_info);
@@ -1041,20 +1046,92 @@
 return HTTP_FORBIDDEN;
 }
 
+if ((pos = strchr(filp, '.'))) {
+dots_in_request = 1;
+if (strchr(++pos, '.')) {
+dots_in_request = 2;
+}
+}
+
 while (apr_dir_read(&dirent, APR_FINFO_DIRENT, dirp) == APR_SUCCESS) {
 apr_array_header_t *exception_list;
 request_rec *sub_req;
 
-/* Do we have a match? */
+if (!dots_in_request) {
+
+/* Given "name", check for "name." */
 #ifdef CASE_BLIND_FILESYSTEM
-if (strncasecmp(dirent.name, filp, prefix_len)) {
+if (strncasecmp(dirent.name, filp, prefix_len)) {
 #else
-if (strncmp(dirent.na

input filter changes/breaking in proxy

2001-10-03 Thread Ian Holsman

hey guys.
I'm trying to debug a problem with the reverse proxy in the
latest CVS HEAD.
It seems to be handing in ap_proxy_read_string, while doing a blocking
read with 'ap_get_brigade'

Is anyone else having this problem? I'm not doing anything 'smart'
just a plain ProxyPass /test/ http://foo/test/ 

..Ian



RE: Apache 1.3.21 tag this evening....

2001-10-03 Thread David McCreedy


I'm hitting a fatal compilation error on TPF with some "accept mutex" code
what was added.
I was unaware of these changes but believe it was part of the
"make-accept-mutex-method-runtime patch".
(I didn't realize the changes affected TPF-specific code until today.)

I think I have a fix but won't be able to test it for several hours (7pm
Eastern Time).
Can the tag wait until I've tested and submitted this fix?

-David





[PATCH] Build Apache 1.3 on Darwin 1.4.1, MacOS X 10.1

2001-10-03 Thread Sander Temme

All,

The following patch lets Apache build on the MacOSX 10.1 platform:

===
RCS file: /home/cvspublic/apache-1.3/src/Configure,v
retrieving revision 1.433
diff -u -r1.433 Configure
--- Configure   2001/10/03 12:59:03 1.433
+++ Configure   2001/10/03 18:27:19
@@ -1149,7 +1149,14 @@
*-apple-rhapsody* | *-apple-darwin* )
LD_SHLIB="cc"
CFLAGS_SHLIB=""
-   LDFLAGS_SHLIB='$(EXTRA_LDFLAGS) -bundle -undefined suppress'
+   case "$PLAT" in
+   *-apple-darwin1.4 )
+   LDFLAGS_SHLIB='$(EXTRA_LDFLAGS) -bundle -undefined
suppress -flat_namespace'
+   ;;
+   * )
+   LDFLAGS_SHLIB='$(EXTRA_LDFLAGS) -bundle -undefined
suppress'
+   ;;
+   esac
LDFLAGS_MOD_SHLIB=$LDFLAGS_SHLIB
LDFLAGS_SHLIB_EXPORT=""
SHLIB_SUFFIX_DEPTH=0
===

Discussion: 
On 10.1 (Darwin 1.4.1), Apple introduced a feature called Two-Level
Namespace Executables where symbols are recorded along with the library they
are to be loaded from. Cool feature, but it breaks the Apache build because
it doesn't allow leaving symbols undefined. My patch moves us back to the
flat namespace. 

Apple themselves attempt to fix this the correct way (from the src/Configure
in the package that the MacOSX/Darwin apache is built with):

LDFLAGS_SHLIB='$(EXTRA_LDFLAGS) -bundle -bundle_loader /usr/sbin/httpd'

...where they provide the file that contains the missing symbols. However,
this has two disadvantages: 1) hard-coding a path to the executable 2)
expects to find an executable already compiled, so this will only build on
systems that already have a httpd in that place. Chicken and egg. If my
impression from the make output is correct, httpd gets linked *last* so will
not be available for its modules to link against. So, I suggest to go back
to the old ways for now.

Test status: Works On My Laptop. (:

S.

-- 
Covalent Technologies [EMAIL PROTECTED]
Engineering groupVoice: (415) 536 5214
645 Howard St. Fax: (415) 536 5210
San Francisco CA 94105

   PGP Fingerprint: 1E74 4E58 DFAC 2CF5 6A03  5531 AFB1 96AF B584 0AB1

===
This email message is for the sole use of the intended recipient(s) and may
contain confidential and privileged information. Any unauthorized review,
use, disclosure or distribution is prohibited.  If you are not the intended
recipient, please contact the sender by reply email and destroy all copies
of the original message
===




RE: Apache 1.3.21 tag this evening....

2001-10-03 Thread BIXBY,MARK (HP-Cupertino,ex1)

MPE is still 1.3.x pre-fork only.

As part of my day job, I will start a project in December to update the
bundled Apache server within the MPE OS to the latest & greatest 1.3.x
version.  If I have time, I may also investigate 2.x and threading.  So far
nobody has yet played with Apache 2.x on MPE to the best of my knowledge.

- Mark B. (aka [EMAIL PROTECTED])

> -Original Message-
> From: William A. Rowe, Jr. [mailto:[EMAIL PROTECTED]]
> Sent: Wednesday, October 03, 2001 9:45 AM
> To: [EMAIL PROTECTED]; [EMAIL PROTECTED]
> Subject: Re: Apache 1.3.21 tag this evening
> 
> 
> Is MPE actually a threaded server, or am I simply confused?



Re: [PATCH] fix --enable-mods-shared=most for compiled-in modules

2001-10-03 Thread Ryan Bloom

On Tuesday 02 October 2001 11:29 am, Aaron Bannert wrote:

Committed.

Thanks,

Ryan

> On Mon, Oct 01, 2001 at 09:20:41PM -0700, Ryan Bloom wrote:
> > We should fix the configure script so that it automatically adds the
> > LoadModule line, just like it did in 1.3.
>
> This patch fixes the problem described in the STATUS file whereby modules
> that are compiled-in by default would not be enabled as DSOs when the
> --enable-mods-shared=most parameter was passed to configure.
>
> A new enable state was invented: "static". This is specified as a param
> to the APACHE_MODULE() macro to specify that a particular module shall
> not be compiled as a DSO (unless specifically overridden by name). mod_so
> and mod_http have been set to "static" in this patch.
>
> This patch should not affect anyone who normally omits
> --enable-mods-shared from their configure parameters.
>
> I will follow up this patch in a few days with a patch to have configure
> properly build the LoadModule directives for httpd.conf at install time
> (as noted by Ryan above and in the STATUS diff below)...
>
> -aaron
>
>
> Index: STATUS
> ===
> RCS file: /home/cvspublic/httpd-2.0/STATUS,v
> retrieving revision 1.297
> diff -u -r1.297 STATUS
> --- STATUS2001/09/28 17:53:02 1.297
> +++ STATUS2001/10/02 18:17:28
> @@ -95,12 +95,9 @@
>to make it agree with the operation of the StartServers
>directive.
>
> -* configure --enable-mods-shared=most option has issues.  Example:
> -
> -  ./configure --enable-mods-shared=most
> -
> -This builds mod_headers as a DSO (good) but builds mod_mime
> -as a compiled-in module (bad).
> +* Fix the configure script to add a LoadModule directive to
> +  the default httpd.conf for any module that was compiled
> +  as a DSO.
>
>  * revamp the input filter semantics, per discussions since
>February (and especially at the hackathon last
> Index: acinclude.m4
> ===
> RCS file: /home/cvspublic/httpd-2.0/acinclude.m4,v
> retrieving revision 1.101
> diff -u -r1.101 acinclude.m4
> --- acinclude.m4  2001/09/30 07:57:14 1.101
> +++ acinclude.m4  2001/10/02 18:17:29
> @@ -199,6 +199,7 @@
>  dnl   yes  -- enabled by default. user must explicitly disable.
>  dnl   no   -- disabled under default, most, all. user must explicitly
> enable. dnl   most -- disabled by default. enabled explicitly or with most
> or all. +dnl   static -- enabled as static by default, must be explicitly
> changed. dnl   ""   -- disabled under default, most. enabled explicitly or
> with all. dnl
>  dnl basically: yes/no is a hard setting. "most" means follow the "most"
> @@ -218,11 +219,16 @@
>else
>  _apmod_error_fatal="yes"
>fi
> -  if test "$enable_$1" = "most"; then
> +  if test "$enable_$1" = "static"; then
> +enable_$1=yes
> +  elif test "$enable_$1" = "yes"; then
> +enable_$1=$module_default
> +_apmod_extra_msg=" ($module_selection)"
> +  elif test "$enable_$1" = "most"; then
>  if test "$module_selection" = "most" -o "$module_selection" = "all";
> then enable_$1=$module_default
>_apmod_extra_msg=" ($module_selection)"
> -else
> +elif test "$enable_$1" != "yes"; then
>enable_$1=no
>  fi
>elif test "$enable_$1" = "maybe-all"; then
> Index: modules/http/config2.m4
> ===
> RCS file: /home/cvspublic/httpd-2.0/modules/http/config2.m4,v
> retrieving revision 1.1
> diff -u -r1.1 config2.m4
> --- modules/http/config2.m4   2001/04/18 20:56:04 1.1
> +++ modules/http/config2.m4   2001/10/02 18:17:29
> @@ -4,7 +4,8 @@
>
>  http_objects="http_core.lo http_protocol.lo http_request.lo"
>
> -APACHE_MODULE(http, HTTP protocol handling, $http_objects, , yes)
> +dnl mod_http freaks out when built as a DSO
> +APACHE_MODULE(http, HTTP protocol handling, $http_objects, , static)
>  APACHE_MODULE(mime, mapping of file-extension to MIME, , , yes)
>
>  APACHE_MODPATH_FINISH
> Index: modules/mappers/config9.m4
> ===
> RCS file: /home/cvspublic/httpd-2.0/modules/mappers/config9.m4,v
> retrieving revision 1.3
> diff -u -r1.3 config9.m4
> --- modules/mappers/config9.m42001/04/29 05:24:10 1.3
> +++ modules/mappers/config9.m42001/10/02 18:17:29
> @@ -23,7 +23,7 @@
>  dnl ### it here. we need to shift *this* config.m4 to be "last" or we
>  dnl ### need to find a different way to set up this default and module
> spec. if test "$sharedobjs" = "yes"; then
> -APACHE_MODULE(so, DSO capability, , , yes)
> +APACHE_MODULE(so, DSO capability, , , static)
>  else
>  APACHE_MODULE(so, DSO capability, , , no)
>  fi

-- 

__
Ryan Bloom  [EMAIL PROTECTED]
Covalent Technologies 

Re: [PATCH] mod_negotiation, suffix order

2001-10-03 Thread William A. Rowe, Jr.

From: "Lars Eilebrecht" <[EMAIL PROTECTED]>
Sent: Wednesday, October 03, 2001 11:57 AM


> According to Rodent of Unusual Size:
> 
> >  Negociation is done using the header field values, NOT the
> >  URI.  
> [...]
> >  If the URI is "index.en", an explicitly English variant must
> >  match "index.en*.en*".
> >  
> >  Ordering is an issue for sure, but playing games, by decomposing
> >  the URI and trying to guess what it means, only complicates
> >  matters and is not on.
> 
> I tend to agree.
> Fiddling around with the extensions just makes negotiation
> more complicated and a source for problems and bugs.

I share your general fear.  That's why I'm against Francis' proposal to
allow index.html.en to match index.en.html.  I believe this can be much
simpler and more trustworthy by requiring the matched extensions to occur
in their given order.  That code is more easily proven than a many-to-many
matching logic.

Bill




CGI -C++ Library

2001-10-03 Thread Madhu Dasu

Dear All,
I am a new joinee in this group. I am now working on
CGI-C++ development. I would like to know the C++
libraries, if any, that are supported by Apache 1.3
for this development. I loaded Apache on HP-Unix
version 11 box.

Regards,
Madhu. 

 
--- "William A. Rowe, Jr." <[EMAIL PROTECTED]> wrote:
> Is MPE actually a threaded server, or am I simply
> confused?
> 
> Are there any MULTITHREAD unix ports, or is this
> only Win32 and Netware?
> 
> Bill
> 
> - Original Message - 
> From: "Brad Nicholes" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]>
> Sent: Wednesday, October 03, 2001 10:51 AM
> Subject: Re: Apache 1.3.21 tag this evening
> 
> 
> #define for gettid() and tid_t have been added to
> os.h for NetWare
> 
> Brad
> 
> >>> [EMAIL PROTECTED] Wednesday, October 03, 2001
> 9:27:56 AM >>>
> ..after porting Bill Rowe's last mod_negotiation
> patch to 1.3.
> 
> These showstoppers are in the STATUS file...
> 
> Netware, OS2, and MPE may require gettid() and
> tid_t definitions in
> those platforms' os.h headers for mod_unique_id.
>   Status: Win32 OK.  Netware ??.  OS2 ??.  MPE
> ??.
> 
> Security issues posted to the appropriate list.
>   Status: some applied
> 
> 
> I believe both have been taken care of and will
> remove these from the STATUS file before
> tag if someone doesn;t beat me to it first.
> 
> Will roll the tarball 24 hours from the tag to give
> time for some testing.
> 
> Bill
> 
> 
> 
> 


__
Do You Yahoo!?
Listen to your Yahoo! Mail messages from any phone.
http://phone.yahoo.com



Re: [PATCH] mod_negotiation, suffix order

2001-10-03 Thread Lars Eilebrecht

According to Rodent of Unusual Size:

>  Negociation is done using the header field values, NOT the
>  URI.  
[...]
>  If the URI is "index.en", an explicitly English variant must
>  match "index.en*.en*".
>  
>  Ordering is an issue for sure, but playing games, by decomposing
>  the URI and trying to guess what it means, only complicates
>  matters and is not on.

I tend to agree.
Fiddling around with the extensions just makes negotiation
more complicated and a source for problems and bugs.


ciao...
-- 
Lars Eilebrecht   - Life is both difficult and time consuming.
[EMAIL PROTECTED]




Re: Apache 1.3.21 tag this evening....

2001-10-03 Thread William A. Rowe, Jr.

Is MPE actually a threaded server, or am I simply confused?

Are there any MULTITHREAD unix ports, or is this only Win32 and Netware?

Bill

- Original Message - 
From: "Brad Nicholes" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]>
Sent: Wednesday, October 03, 2001 10:51 AM
Subject: Re: Apache 1.3.21 tag this evening


#define for gettid() and tid_t have been added to os.h for NetWare

Brad

>>> [EMAIL PROTECTED] Wednesday, October 03, 2001 9:27:56 AM >>>
..after porting Bill Rowe's last mod_negotiation patch to 1.3.

These showstoppers are in the STATUS file...

Netware, OS2, and MPE may require gettid() and tid_t definitions in
those platforms' os.h headers for mod_unique_id.
  Status: Win32 OK.  Netware ??.  OS2 ??.  MPE ??.

Security issues posted to the appropriate list.
  Status: some applied


I believe both have been taken care of and will remove these from the STATUS file 
before
tag if someone doesn;t beat me to it first.

Will roll the tarball 24 hours from the tag to give time for some testing.

Bill







Re: ssl is broken

2001-10-03 Thread William A. Rowe, Jr.

From: "Justin Erenkrantz" <[EMAIL PROTECTED]>
Sent: Wednesday, October 03, 2001 11:15 AM


> On Wed, Oct 03, 2001 at 08:10:11AM -0500, William A. Rowe, Jr. wrote:
> > Now ... the core input filter can't decide where to break input, it has to allow
> > connection filters to insert themselves and decode whatever is read.
> > 
> > That means that the core filter needs to be split, and another line input
> > dequeue filter needs to be inserted as the last 'connection' filter.  That
> > leaves us ready for the request filter to read 'lines' or 'bytes' and make
> > decisions based on the lines and bytes read, and fall back on the line input
> > dequeue to keep the 'next' request's input set-aside for the next request.
> 
> Yes and no.  You are kind of right here - I see why you might want to
> do that, but that was the previous architecture with HTTP_IN and
> CORE_IN.  (HTTP_IN was an admittedly bad name for it, but that is 
> what it tried to do - do readlines.)

Then that was the change, to eliminate the HTTP_IN filter?  Removing HTTP_IN
and trying to have a CORE_IN of the everything and the bathwater is a broken 
model.

You've succeeded in reverting Apache to an http-only server, if that was your
intention.  As this eliminates our flexibile interoperability for other 
protocols, I need to veto this patch.

> A lot of the complexity was removed by assuming that only one filter
> has the -1 brigade.  And, Greg and Ryan have commented that they 
> would rather see CORE_IN not deal with socket buckets at all but 
> read directly from the socket.  

The CORE_IN filter reads directly from the socket.  If you want to provide a
readline and readbytes here, both blocking and nonblocking, that's fine.  It
doesn't mitigate the fact that the ssl filter will transform any readline into
read bytes, and that an HTTP filter must handle readline after recieving some
readbytes, and handle ALL the chunking behavior.  

> Ryan and Greg, how do you guys see this working?  I yield to
> your wisdom here...  If the CORE_IN read from the socket 
> directly as you both have suggested, how would (or should) 
> mod_ssl interact?  
> 
> I see it being a much simpler task to write a module that
> replaces CORE_IN than trying to work around it.  It's not
> that much code - and I think mod_ssl could even ditch
> some of the lesser-supported modes (readbytes==-1 and PEEK 
> which it already doesn't support).  We'll probably end up
> removing them in core at some point.  -- justin

If you have to replace CORE_IN, then your implementation of CORE_IN is
broken.  For that too I would veto the patch you've committed, if this
can't be fixed to allow the old functionality.

Maybe filtering needs some pushback so each higher level filter can avoid
hanging on to bytes it doesn't want or need, and push them back at a lower
level filter that can keep them in their queue for the next transaction
within the request or the next request within the connection.

Bill





RE: --enable-ssl=shared

2001-10-03 Thread MATHIHALLI,MADHUSUDAN (HP-Cupertino,ex1)

You're right.. libcrypto/ssl.a should get linked with mod_ssl.so rather than
httpd. I did try it out initially - with a small hack into the ssl makefile,
but then gave up - as it involved modifying the autoconf script(something
which i don't know).

Thx
-Madhu

-Original Message-
From: Doug MacEachern [mailto:[EMAIL PROTECTED]]
Sent: Wednesday, October 03, 2001 8:47 AM
To: [EMAIL PROTECTED]
Subject: Re: --enable-ssl=shared


On Wed, 3 Oct 2001, Aaron Bannert wrote:
 
> So you're saying that libssl.so and libcrypto.so aren't showing up
> when you run ldd on either httpd or mod_ssl.so? Just for reference,
> what is ldd giving you for httpd and mod_ssl.so? (You may not want to
> copy it here, but ldd -v is interesting too).

no, mine is linked against lib{crypto,ssl}.a
there are no .so's in /usr/local/ssl/lib
i'm just noticing now for the first time lib{crypto,ssl}.so in /usr/lib

but if mod_ssl is built shared, -lssl -lcrypto should get linked against
mod_ssl.so rather than httpd, right?

% ldd bin/httpd
libaprutil.so.0 => /home/dougm/ap/prefork/lib/libaprutil.so.0
(0x40017000)
libapr.so.0 => /home/dougm/ap/prefork/lib/libapr.so.0 (0x40028000)
libm.so.6 => /lib/libm.so.6 (0x40052000)
libcrypt.so.1 => /lib/libcrypt.so.1 (0x40071000)
libnsl.so.1 => /lib/libnsl.so.1 (0x400a)
libdl.so.2 => /lib/libdl.so.2 (0x400b7000)
libexpat.so.0 => /home/dougm/ap/prefork/lib/libexpat.so.0
(0x400ba000)
libpthread.so.0 => /lib/libpthread.so.0 (0x400e1000)
libc.so.6 => /lib/libc.so.6 (0x400f7000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x4000)

% ldd modules/mod_ssl.so 
libc.so.6 => /lib/libc.so.6 (0x40032000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x8000)




Re: [PATCH] mod_negotiation, suffix order

2001-10-03 Thread Rodent of Unusual Size

"William A. Rowe, Jr." wrote:
> 
> > That is, if the URI is index.bak, we can only negociate
> > amongst variants matching index.bak* -- NOT index.*.bak*.
> 
> What's your rational?  I agree that index[.*].bak[.*] is broader
> than index.bak[.*] --- but I'm wondering why you feel this way?
> 
> Say that we want to point the user to the english index page.
> Why shouldn't a request for index.en discover index.html.en or
> index.cgi.en?

Negociation is done using the header field values, NOT the
URI.  "index.en" is NOT a request for an English variant
of "index", it is a request for [possibly some variant of]
an object named "index.en" -- period.  That a portion of the
specified URI happens to match a value that has meaning in
negociation is completely coincidental -- and irrelevant.  We
cannot co-opt nor interpret nor decompose the value of the
URI in negociation; all we can use are the parameters in the
header and the resource (read: file) names.

If it were meant to be used as a negociation axis, it would
be in the header fields and absent from the URI.  That it is
explicit in the URI removes it from participation in any
negociation axes.

If the URI is "index.en", an explicitly English variant must
match "index.en*.en*".

Ordering is an issue for sure, but playing games, by decomposing
the URI and trying to guess what it means, only complicates
matters and is not on.

All IM[NS?]HO..  although Roy may have something to say on
this.
-- 
#kenP-)}

Ken Coar, Sanagendamgagwedweinini  http://Golux.Com/coar/
Author, developer, opinionist  http://Apache-Server.Com/

"All right everyone!  Step away from the glowing hamburger!"



Re: Apache 1.3.21 tag this evening....

2001-10-03 Thread William A. Rowe, Jr.

Doh --- sorry :)  I'll pull that note.

Could all platforms crosscheck the mod_vhost_alias/mod_unique_id changes that
went in?  The changes vhost_alias changes _should_ have no discernable effect 
on any straight unix ('/' rooted) platform, and the unique_id changes should
only affect MULTITHREAD platforms.

Don't want to discover that I've broken this -after- the tag, I'd like to
fix any snafus beforehand.

Bill

- Original Message - 
From: "Brian Havard" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Wednesday, October 03, 2001 10:41 AM
Subject: Re: Apache 1.3.21 tag this evening


> On Wed, 3 Oct 2001 11:27:56 -0400, Bill Stoddard wrote:
> 
> >...after porting Bill Rowe's last mod_negotiation patch to 1.3.
> >
> >These showstoppers are in the STATUS file...
> >
> >Netware, OS2, and MPE may require gettid() and tid_t definitions in
> >those platforms' os.h headers for mod_unique_id.
> >  Status: Win32 OK.  Netware ??.  OS2 ??.  MPE ??.
> 
> gettid()? 1.3 on OS/2 is NOT multi-threaded.
> 
> -- 
>  __
>  |  Brian Havard |  "He is not the messiah!   |
>  |  [EMAIL PROTECTED]  |  He's a very naughty boy!" - Life of Brian |
>  --
> 
> 




Re: ssl is broken

2001-10-03 Thread Justin Erenkrantz

On Wed, Oct 03, 2001 at 08:10:11AM -0500, William A. Rowe, Jr. wrote:
> Now ... the core input filter can't decide where to break input, it has to allow
> connection filters to insert themselves and decode whatever is read.
> 
> That means that the core filter needs to be split, and another line input
> dequeue filter needs to be inserted as the last 'connection' filter.  That
> leaves us ready for the request filter to read 'lines' or 'bytes' and make
> decisions based on the lines and bytes read, and fall back on the line input
> dequeue to keep the 'next' request's input set-aside for the next request.

Yes and no.  You are kind of right here - I see why you might want to
do that, but that was the previous architecture with HTTP_IN and
CORE_IN.  (HTTP_IN was an admittedly bad name for it, but that is 
what it tried to do - do readlines.)

A lot of the complexity was removed by assuming that only one filter
has the -1 brigade.  And, Greg and Ryan have commented that they 
would rather see CORE_IN not deal with socket buckets at all but 
read directly from the socket.  

Ryan and Greg, how do you guys see this working?  I yield to
your wisdom here...  If the CORE_IN read from the socket 
directly as you both have suggested, how would (or should) 
mod_ssl interact?  

I see it being a much simpler task to write a module that
replaces CORE_IN than trying to work around it.  It's not
that much code - and I think mod_ssl could even ditch
some of the lesser-supported modes (readbytes==-1 and PEEK 
which it already doesn't support).  We'll probably end up
removing them in core at some point.  -- justin




Re: Apache 1.3.21 tag this evening....

2001-10-03 Thread Mark J Cox

I've written an "Announcement" file for 1.3.21 and will commit within the
hour (just got back from dentist)

Mark




Re: Apache 1.3.21 tag this evening....

2001-10-03 Thread Brad Nicholes

#define for gettid() and tid_t have been added to os.h for NetWare

Brad

>>> [EMAIL PROTECTED] Wednesday, October 03, 2001 9:27:56 AM >>>
..after porting Bill Rowe's last mod_negotiation patch to 1.3.

These showstoppers are in the STATUS file...

Netware, OS2, and MPE may require gettid() and tid_t definitions in
those platforms' os.h headers for mod_unique_id.
  Status: Win32 OK.  Netware ??.  OS2 ??.  MPE ??.

Security issues posted to the appropriate list.
  Status: some applied


I believe both have been taken care of and will remove these from the STATUS file 
before
tag if someone doesn;t beat me to it first.

Will roll the tarball 24 hours from the tag to give time for some testing.

Bill





Re: --enable-ssl=shared

2001-10-03 Thread Doug MacEachern

On Wed, 3 Oct 2001, Aaron Bannert wrote:
 
> So you're saying that libssl.so and libcrypto.so aren't showing up
> when you run ldd on either httpd or mod_ssl.so? Just for reference,
> what is ldd giving you for httpd and mod_ssl.so? (You may not want to
> copy it here, but ldd -v is interesting too).

no, mine is linked against lib{crypto,ssl}.a
there are no .so's in /usr/local/ssl/lib
i'm just noticing now for the first time lib{crypto,ssl}.so in /usr/lib

but if mod_ssl is built shared, -lssl -lcrypto should get linked against
mod_ssl.so rather than httpd, right?

% ldd bin/httpd
libaprutil.so.0 => /home/dougm/ap/prefork/lib/libaprutil.so.0 (0x40017000)
libapr.so.0 => /home/dougm/ap/prefork/lib/libapr.so.0 (0x40028000)
libm.so.6 => /lib/libm.so.6 (0x40052000)
libcrypt.so.1 => /lib/libcrypt.so.1 (0x40071000)
libnsl.so.1 => /lib/libnsl.so.1 (0x400a)
libdl.so.2 => /lib/libdl.so.2 (0x400b7000)
libexpat.so.0 => /home/dougm/ap/prefork/lib/libexpat.so.0 (0x400ba000)
libpthread.so.0 => /lib/libpthread.so.0 (0x400e1000)
libc.so.6 => /lib/libc.so.6 (0x400f7000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x4000)

% ldd modules/mod_ssl.so 
libc.so.6 => /lib/libc.so.6 (0x40032000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x8000)





Re: Apache 1.3.21 tag this evening....

2001-10-03 Thread Brian Havard

On Wed, 3 Oct 2001 11:27:56 -0400, Bill Stoddard wrote:

>...after porting Bill Rowe's last mod_negotiation patch to 1.3.
>
>These showstoppers are in the STATUS file...
>
>Netware, OS2, and MPE may require gettid() and tid_t definitions in
>those platforms' os.h headers for mod_unique_id.
>  Status: Win32 OK.  Netware ??.  OS2 ??.  MPE ??.

gettid()? 1.3 on OS/2 is NOT multi-threaded.

-- 
 __
 |  Brian Havard |  "He is not the messiah!   |
 |  [EMAIL PROTECTED]  |  He's a very naughty boy!" - Life of Brian |
 --




Re: --enable-ssl=shared

2001-10-03 Thread Aaron Bannert

On Wed, Oct 03, 2001 at 08:18:30AM -0700, Doug MacEachern wrote:
> autoconf guru help needed:
> 
> -lssl and -lcrypto are linked with httpd rather than mod_ssl.so
> since httpd does not reference any ssl symbols they are all tossed out and
> mod_ssl.so falls flat on its face:
> 
> Cannot load /home/dougm/ap/prefork/modules/mod_ssl.so into
> server: /home/dougm/ap/prefork/modules/mod_ssl.so: undefined
> symbol: X509_free

So you're saying that libssl.so and libcrypto.so aren't showing up
when you run ldd on either httpd or mod_ssl.so? Just for reference,
what is ldd giving you for httpd and mod_ssl.so? (You may not want to
copy it here, but ldd -v is interesting too).

-aaron



Re: mod_ssl update...

2001-10-03 Thread Justin Erenkrantz

On Wed, Oct 03, 2001 at 01:30:02AM -0700, MATHIHALLI,MADHUSUDAN (HP-Cupertino,ex1) 
wrote:
> You're right.. the bulk of the SSL communication logic is done in churn()..
> The logic basically reads the user data from the filter, gives it to OpenSSL
> thru' the BIO routines, and whatever is output by openssl is picked up thru'
> the BIO interfaces and put on to the output queue.. I'm not clear what you
> mean by "separate input and output"..

Most of the other filters have their logic separated by input and
output.  mod_ssl combines them into one function.  I think that
it makes sense to split it out so that input is only handled by
one function and output is handled by another function.  I'm not
sure why we have one function attempting to handle input/output.
Is there a reason why churn() must exist?  Input and output are
not related to each other.

I'm not familiar with the BIO_* routines (when I was writing the
SSL code for flood, the BIO_* routines did not work for me).  So,
I had it handle reading from the socket itself - and that seemed
to work out well.

> I don't think so..As long as we can gather the *full client data* and pass
> it across, OpenSSL is happy.. The catch here is to capture all the data
> that's sent by the client, and not to break it into small chunks/pieces.

What the real deal is that OpenSSL was assumming that it'd get the
socket bucket back from the core filter and it'd be able to do whatever
it wanted with it.  That's not possible anymore.

If it is possible to have the core do the heavy lifting (i.e. reading
from the socket), that is preferred.  I'm just not sure how mod_ssl
is reading from the socket at all.  It calls ap_get_brigade *and*
SSL_read - that is a violation of the input filter semantics.  Either
it reads from the socket on its own or it relies on the core for all
of the input.

> It's definitely possible to use the SSL_* functions - but, then we'll have
> to expose the socketfd's et al.. Also, it'd be deviating from the other
> modules of apache, where the filters are *almost* forced to be used. I'd
> prefer to have the ap_get_brigade_* functionality to read/write the data
> from the socket.

Yes, I'd prefer it to rely on core, but there are things like *readbytes
0 that are completely bogus in the core with SSL.  That's why I'm not 
sure we can use the core filter anymore.  

Since all of the data in the socket is encrypted, if readbytes == 0 is 
sent, it means to read a line of input data which is now bogus because 
the core (since it can't read the actual socket information) can't
determine when a line of input data is read.  Only mod_ssl has the
logic to decrypt the packet information.  

(And look at flood to see how you get the socketfd back from the
apr_socket_t...)  -- justin




Apache 1.3.21 tag this evening....

2001-10-03 Thread Bill Stoddard

...after porting Bill Rowe's last mod_negotiation patch to 1.3.

These showstoppers are in the STATUS file...

Netware, OS2, and MPE may require gettid() and tid_t definitions in
those platforms' os.h headers for mod_unique_id.
  Status: Win32 OK.  Netware ??.  OS2 ??.  MPE ??.

Security issues posted to the appropriate list.
  Status: some applied


I believe both have been taken care of and will remove these from the STATUS file 
before
tag if someone doesn;t beat me to it first.

Will roll the tarball 24 hours from the tag to give time for some testing.

Bill




--enable-ssl=shared

2001-10-03 Thread Doug MacEachern

autoconf guru help needed:

-lssl and -lcrypto are linked with httpd rather than mod_ssl.so
since httpd does not reference any ssl symbols they are all tossed out and
mod_ssl.so falls flat on its face:

Cannot load /home/dougm/ap/prefork/modules/mod_ssl.so into
server: /home/dougm/ap/prefork/modules/mod_ssl.so: undefined
symbol: X509_free





Re: BaseAddress.ref needed?

2001-10-03 Thread William A. Rowe, Jr.

From: "Günter Knauf" <[EMAIL PROTECTED]>
Sent: Wednesday, October 03, 2001 9:32 AM


> Hi Greg, Bill,
> thanks for the detailed information.
> Now I'm asking me why I did not ask you earlier because I have ~20 modules
> which then better be recompiled...
> I assume that this also applies to Cygwin and perhaps OS2, or? If so then
> there's a common interest to have a BaseAddress2.ref for 3rd party modules;
> can we perhaps place it on a Apache server so that everyone has access to?
> I've already started with this and will now put in all modules I got compiled
> for Win32 and post it here if you agree...

My only problem is that I don't want to even try maintaining such a beast.
IMHO, it's better if they express their /BASE:"0x" directly.  Of course
I don't mind if an 'installer' were to tack their base entry into BaseAddr.ref
directly when merging their sources into the build tree (not such a common act
on Win32, since we have so few 'compilers'.)

One problem is the size argument.  If you build in full debugging mode, your
binaries are much larger.  I've taken that into account for the current list.
Sometimes modules grow, and the entire table must be rearranged.  I don't much
like trying that for umpteen modules.

Look at the rebase.exe utility (provided in the PlatformSDK and with the MSVC
products, amoungst other places) which will let you reorder .dll's wrt each
other's load addresses.  You would specify any 'predictable' modules (those
with well established load addresses, such as libraries or the Apache modules
we hand-ordered) by the -N opt, then list out the other 'undefined' modules
with the -O opt.  Use -d to order these modules top-down, and -b 0x6FFF
or some such as the starting point.

cygwin might benefit from rebasing the entire list at once.

Bill






Re: [PATCH] mod_negotiation, suffix order

2001-10-03 Thread William A. Rowe, Jr.


Bringing us back from random stream of conciousness... here's the thread
to date (goes back to April, so I suppose a full repost is in order.)

My fresh commentary is inline with Ken's comments below.

- Original Message - 
From: "Francis Daly" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Monday, April 30, 2001 1:09 PM
Subject: [PATCH] mod_negotiation, suffix order


> Hi there,
> 
> this is essentially a repost of some mails earlier this month with the
> same patch and a similar Subject:.
> 
> Appended to this mail is a patch to remove the requirements on the
> order of suffixes when using MultiViews / mod_negotiation.  It does
> have the down side of increasing the number of valid URLs for the same
> content, but to a limited extent that is implicit in mod_negotiation
> anyway.
> 
> The patch is relative to the version of mod_negotiation.c distributed
> with apache-2.0.16.  There is a newer version in CVS, but the patch
> should still apply cleanly.
> 
> But first, some notes:
> 
> The current method takes the "file" part of r->filename (either the
> bit after the final / in the URI, or the value of DirectoryIndex).
> First, if the exact filename matches, mod_negotiation declines to
> handle it.  Second, for each file in the directory, it tries to match
> /^file\./.
> 
> This patched method does an extra strchr(), and uses a few extra
> int's and char *'s; and then for the requested file "file" does the
> same thing.
> 
> However, if the r->filename is actually "file.s1.s2.sZ" (with dots),
> the current way looks for /^file\.s1\.s2\.sZ\./; the patched way looks
> for each of /^file\./, /\.s1/, /\.s2/, /\.sZ/.  It bails out at the
> first failure.
> 
> Extra pointer and string manipulation is needed to do this, per dot in
> the requested file name, per file in the directory.
> 
> Some consequences of this implementation are:
> 
> Current method: file "name.html.en" is only accessible through
> (partial) URIs "name", "name.html", or "name.html.en"
> 
> Patched method: The same three work, as do "name.en" and
> "name.en.html".  That is good.  However: so do "name.htm",
> "name.htm.en", and "name.en.htm".  That may be considered good.  More
> however: so do "name.h", "name.h.h", "name...h.e.e..e.h.h.", and an
> infinite number of similar variations.  That may not be considered
> good.
> 
> In fact, the infinite number of possibilities is limited by the
> requirement that the length of the file name must be at least the
> length of the request in order to be considered, so a request with a
> dozen trailing dots will only have the hit of many strstr()s for files
> that match the prefix and have long enough names.
> 
> In each case, the content is returned with a Content-Location: header
> indicating the canonical filename.
> 
> The requirements are (1)r->filename up to the first dot must match the
> real filename up to the first dot; (2)r->filename may not be longer
> than the real filename; (3)each .suffix in r->filename must exist
> (string match) in the real filename; (4)the real filename must
> correspond to a known mime-type, encoding, etc -- which I think means
> that the final suffix must be known, and only suffixes followed by
> known suffixes are considered.
> 
> As a real example, testing with the apache "It worked!" page (named
> index.html.LANG), if I request index.html.fr, I get the page back.  If
> I request index.fr.html, or just index.fr, I get back the 406 Not
> Acceptable page, with a link to index.html.fr, _unless_ I include fr
> as an acceptable language.  If I include fr as a language, I can
> request /index.fr, /index.fr.html, or /index.html.fr successfully.  If
> I include fr as my preferred language, I can additionally request /,
> /index, and /index.html.  (As well as the .h, .ht, .htm, .f variants
> referred to earlier).  If I request /index.d, I get a 406 with links
> to index.html.de and index.html.dk
> 
> As a faked example, consider five files in the DocumentRoot, with no
> special customisations to the (MIME) configuration:
> 
> files a.b.c, d.e.html, g.h.i.j.k.en, m.n.o.p.q.html, s.t.html.u.v
> 
> The following requests have the indicated results:
> 
> GET /a-> not found
> GET /a.b  -> not found
> GET /a.c  -> not found
> GET /a.b.c-> success
> GET /d-> success
> GET /d.e  -> success
> GET /d.h  -> success
> GET /d.html   -> success
> GET /dhtml-> not found
> GET /g-> not found
> GET /g.h  -> not found
> GET /g.h.i.j.k-> not found
> GET /g.h.i.j.k.en -> success
> GET /g.h.i.k.j.en -> not found
> GET /m-> success
> GET /m.html   -> success
> GET /m.o.q.p.n-> success
> GET /m.o.r.p.n-> not found
> GET /s.t.html.u.v -> success
> GET /s-> not found
> GET /s.t.html.u   -> not found
> 
> note that in the "not found" cases there (except for /m.o.r.p.n and
> /dhtml), the patched code does pass the file down as being
> potentially vali

Re: .asis handler isn't driven

2001-10-03 Thread William A. Rowe, Jr.

From: "Rodent of Unusual Size" <[EMAIL PROTECTED]>
Sent: Wednesday, October 03, 2001 8:54 AM


> "William A. Rowe, Jr." wrote:
> > 
> > [There is a weakness.  We need to evaluate the exception
> > list by component, right now we simply strcmp.  There is
> > a note in status to that effect.  E.g. requesting index.bak
> > -should- match index.html.bak
> 
> Um, no, I definitely think not.  I think the portion of
> the filename that's specified in the URL should be
> considered opaque, and that we can only negociate using
> the bits that are tailed on the file names but not the
> URL.

There are two issues, the list of exceptions (base name and the
elements that are _unrecognized_ by mime negotation) and the actual
file name accepted.  I meant the first issue when I posted this.

The first issue I patched last night for 2.0, I'm sure FirstBill will
pick up that patch and backport to 1.3.  It goes like this... the user
requests index.html.old and we have an index.html.old.en file to match.
But the exception list contains index and old, since html is a mime
type and en is a language.  We compared index.old to index.html.old
(the exceptions to the request) and would fail!  That was badness.  The
patch ignores the request's .html segment, and simply assures that both
index and .old are part of the _requested_ name before it's willing to
allow that file to be served.  No more serving .bak files without being
asked, but it behaves more similarly to the old 1.3 behavior now.

The second issue is allowing the request index.old to serve index.html.old,
which would work with Francis's patch (abiet with a small change)...

I'll answer that in a second post, with the right subject.





Re: BaseAddress.ref needed?

2001-10-03 Thread Günter Knauf

Hi Greg, Bill,
thanks for the detailed information.
Now I'm asking me why I did not ask you earlier because I have ~20 modules which then 
better be recompiled...
I assume that this also applies to Cygwin and perhaps OS2, or? If so then there's a 
common interest to have a BaseAddress2.ref for 3rd party modules; can we perhaps place 
it on a Apache server so that everyone has access to? I've already started with this 
and will now put in all modules I got compiled for Win32 and post it here if you 
agree...

thanks, Guenter.

> From: "Greg Stein" <[EMAIL PROTECTED]>
> Sent: Wednesday, October 03, 2001 4:09 AM


>> On Wed, Oct 03, 2001 at 09:56:40AM +0200, Guenter Knauf wrote:
>> > Hi Bill,
>> > can you please explain if every module really needs an entry in
>> > BaseAddress.ref? I tested with many modules without an entry and
> it seems to work with the linker defaults...
>> > If it is needed how should it be done then with 3rd party modules?
>>
>> Yes, it is needed. Without it, the linker will assign the same, fixed
>> address to every module. At runtime, those modules will then need to be
>> relocated to some address.
>>
>> Using BaseAddress.ref, we can effectively do the relocation at link time.
>> Sure, it is possible some other code is present and a relocation is
>> forced,
>> but that will be atypical.
>>
>> Relocation is expensive. Doing it at link time rather than load time is a
>> huge win.

> It's expensive in CPU at load time, but it's also expensive in memory.
> Each
> process that loads the .dll suddenly needs to keep a 'private' relocated
> copy
> of the code segment, even when all .dll's ended up at the same alt address
> :(

>> 3rd party modules can do whatever they want. Invariably, they will
>> probably
>> get relocated and/or clash with other 3rd party modules. But we *do* have
>> control over Apache itself and can help those.

> Easiest is to simply assign a random address somewhere between 0x2000
> and
> 0x5F000.  You are very unlikely to ever clash with another module
> loaded
> between those addresses.  [Note these are segment aligned at 0x1
> boundries.]

>> There are further optimizations with assigning addresses that we probably
>> don't do. Specifically, if there are "gaps" in the address space, then
>> you
>> end up wasting space in the processor's mapping tables. As a result, you
>> want to pack the modules as tightly as possible.
>>
>> Of course, that tight-packing is at odds with the optional loading of
>> modules. If we do the packing, then decide not to load something, then we
>> end up with a hole.
>>
>> [ and you can extend that to third party modules if we attempt to act as
>> a
>>   registry for them. it goes without saying that people won't have every
>>   third party module, so each apache process would have *huge* holes,
>>   thus
>>   wasting significant processor tables ]

> That's very common on Win32, and reasonably optimized because of it.  Com
> .dlls suffer the same problem, so it's been a priority for some time.





RE: ssl is broken

2001-10-03 Thread Paul Hooper

Yeah, yeah

-Original Message-
From: Ryan Bloom [mailto:[EMAIL PROTECTED]]
Sent: 03 October 2001 15:24
To: [EMAIL PROTECTED]; Justin Erenkrantz
Subject: Re: ssl is broken


On Tuesday 02 October 2001 10:11 pm, Justin Erenkrantz wrote:
> On Wed, Oct 03, 2001 at 12:51:09AM -0400, MATHIHALLI,MADHUSUDAN
(HP-Cupertino,ex1) wrote:
> > I'm running into all sorts of filter problems. The initial client
request
> > is itself not received completely.. For ex., the apr_bucket_read
> > (ssl_engine_io.c:218) returns 20 bytes when the client has sent 103
> > bytes.
> >
> > The ssl_hook_process_connection (mod_ssl.c:360) returns with a error to
> > read more (which is not being handled right now). This is a problem as
> > the SSL filter expects that *all* the data sent by the client is
received
> > in one complete chunk..
> >
> > If I try forcing the bucket_read again (incase of a SSL_WANT_READ
error),
> > it's still not able to read the full data.
>
> Whenever mod_ssl is handling the request, it needs to remove CORE_IN
> and be able to match CORE_IN's functionality (i.e. handle the same
> modes as CORE_IN).  This is how I would expect it to work given the
> new implementation.

This is bogus.  The whole point of the SSL module being written to use
BIO's,
was that it doesn't need to replace CORE_IN.

Ryan
__
Ryan Bloom  [EMAIL PROTECTED]
Covalent Technologies   [EMAIL PROTECTED]
--



NOTICE AND DISCLAIMER:
This email (including attachments) is confidential.  If you have received
this email in error please notify the sender immediately and delete this
email from your system without copying or disseminating it or placing any
reliance upon its contents.  We cannot accept liability for any breaches of
confidence arising through use of email.  Any opinions expressed in this
email (including attachments) are those of the author and do not necessarily
reflect our opinions.  We will not accept responsibility for any commitments
made by our employees outside the scope of our business.  We do not warrant
the accuracy or completeness of such information.





Re: ssl is broken

2001-10-03 Thread Ryan Bloom

On Tuesday 02 October 2001 10:11 pm, Justin Erenkrantz wrote:
> On Wed, Oct 03, 2001 at 12:51:09AM -0400, MATHIHALLI,MADHUSUDAN (HP-Cupertino,ex1) 
>wrote:
> > I'm running into all sorts of filter problems. The initial client request
> > is itself not received completely.. For ex., the apr_bucket_read
> > (ssl_engine_io.c:218) returns 20 bytes when the client has sent 103
> > bytes.
> >
> > The ssl_hook_process_connection (mod_ssl.c:360) returns with a error to
> > read more (which is not being handled right now). This is a problem as
> > the SSL filter expects that *all* the data sent by the client is received
> > in one complete chunk..
> >
> > If I try forcing the bucket_read again (incase of a SSL_WANT_READ error),
> > it's still not able to read the full data.
>
> Whenever mod_ssl is handling the request, it needs to remove CORE_IN
> and be able to match CORE_IN's functionality (i.e. handle the same
> modes as CORE_IN).  This is how I would expect it to work given the
> new implementation.

This is bogus.  The whole point of the SSL module being written to use BIO's,
was that it doesn't need to replace CORE_IN.

Ryan
__
Ryan Bloom  [EMAIL PROTECTED]
Covalent Technologies   [EMAIL PROTECTED]
--



Re: [PROPOSAL] Apache for NetWare status change...

2001-10-03 Thread Rodent of Unusual Size

Well, if Novell (who support it) feel that way, I'm inclined
to say 'provide replacement text to be checked in.'
-- 
#kenP-)}

Ken Coar, Sanagendamgagwedweinini  http://Golux.Com/coar/
Author, developer, opinionist  http://Apache-Server.Com/

"All right everyone!  Step away from the glowing hamburger!"



Re: .asis handler isn't driven

2001-10-03 Thread Rodent of Unusual Size

"William A. Rowe, Jr." wrote:
> 
> No.  multiviews were created to allow the -client- to
> select one of many variants based on their preferences
> (gzip/no gzip, english or croatian, html or image.)  

Not quite.  As has been pointed out, 'negociation' is a bad
term for what goes on -- which is the server trying to
make an intelligent selection of a variant according to
the parameters supplied by the client.  The client does
*no* selection, it just provides the parameters.

And to all the people saying 'size should never have been
a factor' I say 'BS'.  If all of the variants are equally
acceptable according to the client's parameters, it makes
*perfect* sense to send the one that takes the least bandwidth.
The problem, of course, is that the definition of 'equally
acceptable' is moot.  In this case, it is up to the Webmaster
to assign quality ratings.

> It shouldn't become a dumping ground for every flip-flop
> the administrator chooses to make.

Things change.  The Web was only 'supposed' to interlink
text documents.  Back when we were a bunch of Webmasters
only, we made changes that made our lives easier.  Now
that most of the people here are *not* Webmasters, what's
our motivation for making changes?  If it's anything to
do with usability, then it behooves us to pay attention
to ways to make things easier for users, and NOT to dictate
to them how or how not to run their sites.
-- 
#kenP-)}

Ken Coar, Sanagendamgagwedweinini  http://Golux.Com/coar/
Author, developer, opinionist  http://Apache-Server.Com/

"All right everyone!  Step away from the glowing hamburger!"



[PATCH] proxy_http.c fixed type of pragma var

2001-10-03 Thread Günter Knauf

Hi,
with recent changes to mod_proxy now compilition breaks with CW6, CW5 and gcc give 
warnings.
If defining pragma as const char is a problem on other platforms at least a cast it 
needed.

In adddition Pavel told me that gcc warns about this:
src/modules/proxy/proxy_http.c:477:4: warning: "/*" within comment

both issues fixed in attached patch2 and tested for NetWare with CW, gcc and for Win32 
with MSVC6.

Guenter.

 proxy_http.c.patch
 proxy_http.c.patch2


Re: .asis handler isn't driven

2001-10-03 Thread Rodent of Unusual Size

"William A. Rowe, Jr." wrote:
> 
> [There is a weakness.  We need to evaluate the exception
> list by component, right now we simply strcmp.  There is
> a note in status to that effect.  E.g. requesting index.bak
> -should- match index.html.bak

Um, no, I definitely think not.  I think the portion of
the filename that's specified in the URL should be
considered opaque, and that we can only negociate using
the bits that are tailed on the file names but not the
URL.

That is, if the URI is index.bak, we can only negociate
amongst variants matching index.bak* -- NOT index.*.bak*.
-- 
#kenP-)}

Ken Coar, Sanagendamgagwedweinini  http://Golux.Com/coar/
Author, developer, opinionist  http://Apache-Server.Com/

"All right everyone!  Step away from the glowing hamburger!"



Re: [PATCH] adding xml output to mod_status -- [REPOST]

2001-10-03 Thread Ian Holsman

Sander van Zoest wrote:

> On Tue, 2 Oct 2001, Mark J Cox wrote:
> 
> 
>>What we ought to do is to first decide what the XML output is going to
>>look like (it'll be a pain to change this later), then it doesn't really
>>matter if it's a patch to mod_status or a new module.
>>  http://www.awe.com/mark/dev/mod_status_xml/example.xml
>>
> 
> I like the XML schema, but I would make a few minor adjustments.
> 
> I would specify an httpd.apache.org xml namespace and a charset.
> Also spliting up the actual request into method, uri, protocol would it
> easier to manipulate those with xpath.
> 
> I would also consider potentially using a different way to handle time such
> as NTP Timestamps and adding a numeric time zone. The current method works
> perfectly, but to do some mathematical calculations it might be useful to
> have it expressed differently.
> 
> I will probably look into running this on my server soon.
> 

I'm happy with this layout Mark,

And I'll volunteer to write the 2.x version of this.
we (cnet) are going to use a XML-status

The only issue I have with it is that the XML output doesn't really follow
the standard HTML one, so it will probably have to duplicate the scorecard
logic..

What do the rest of the Apache Ppl think.. should I add this as another
module (in experimental) or modify the existing mod_status.

Sander, if you can provide me with a sample of the XML you want I'll do that as
well.
..Ian


> Cheers,
> 
> --
> Sander van Zoest  [EMAIL PROTECTED]
> High Geek http://Sander.vanZoest.com/
> 
> 





Re: ssl is broken

2001-10-03 Thread William A. Rowe, Jr.

From: "Greg Stein" <[EMAIL PROTECTED]>
Sent: Wednesday, October 03, 2001 12:33 AM


> On Tue, Oct 02, 2001 at 08:34:30PM -0500, William A. Rowe, Jr. wrote:
> > From: "Justin Erenkrantz" <[EMAIL PROTECTED]>
> > Sent: Tuesday, October 02, 2001 8:29 PM
> > 
> > > On Tue, Oct 02, 2001 at 01:24:25PM -0700, Doug MacEachern wrote:
> > > > with current cvs all httpd-test ssl tests hang, stacktrace is same for
> > > > all...
> > > 
> > > I bet it's related to the input filtering changes.  
> > > 
> > > I have no clue how the whole mod_ssl input filtering works, but I'll
> > > try to take a look.  My guess is that mod_ssl is just a big quagmire.
> > 
> > That, or your input filtering changes were the big quagmire.  Either way,
> > that sure sounds like the interaction that broke ssl.
> 
> I'll lay good odds that it is in mod_ssl rather than the input filtering
> changes. Even *if* it is the latter, at least we have a codebase that is
> much more maintainable now.

If that statement was harsh, I'm sorry, and yes - legibility and maintainability
is important.  That said...

We have only one extensive use of Input Filters in the httpd tree at this time,
and that's mod_ssl.  That this wasn't even tested sort of surprizes me.

Now ... the core input filter can't decide where to break input, it has to allow
connection filters to insert themselves and decode whatever is read.

That means that the core filter needs to be split, and another line input
dequeue filter needs to be inserted as the last 'connection' filter.  That
leaves us ready for the request filter to read 'lines' or 'bytes' and make
decisions based on the lines and bytes read, and fall back on the line input
dequeue to keep the 'next' request's input set-aside for the next request.

Bill




Re: BaseAddress.ref needed?

2001-10-03 Thread William A. Rowe, Jr.

From: "Greg Stein" <[EMAIL PROTECTED]>
Sent: Wednesday, October 03, 2001 4:09 AM


> On Wed, Oct 03, 2001 at 09:56:40AM +0200, Günter Knauf wrote:
> > Hi Bill,
> > can you please explain if every module really needs an entry in BaseAddress.ref? I 
>tested with many modules without an entry and
it seems to work with the linker defaults...
> > If it is needed how should it be done then with 3rd party modules?
>
> Yes, it is needed. Without it, the linker will assign the same, fixed
> address to every module. At runtime, those modules will then need to be
> relocated to some address.
>
> Using BaseAddress.ref, we can effectively do the relocation at link time.
> Sure, it is possible some other code is present and a relocation is forced,
> but that will be atypical.
>
> Relocation is expensive. Doing it at link time rather than load time is a
> huge win.

It's expensive in CPU at load time, but it's also expensive in memory.  Each
process that loads the .dll suddenly needs to keep a 'private' relocated copy
of the code segment, even when all .dll's ended up at the same alt address :(

> 3rd party modules can do whatever they want. Invariably, they will probably
> get relocated and/or clash with other 3rd party modules. But we *do* have
> control over Apache itself and can help those.

Easiest is to simply assign a random address somewhere between 0x2000 and
0x5F000.  You are very unlikely to ever clash with another module loaded
between those addresses.  [Note these are segment aligned at 0x1 boundries.]

> There are further optimizations with assigning addresses that we probably
> don't do. Specifically, if there are "gaps" in the address space, then you
> end up wasting space in the processor's mapping tables. As a result, you
> want to pack the modules as tightly as possible.
>
> Of course, that tight-packing is at odds with the optional loading of
> modules. If we do the packing, then decide not to load something, then we
> end up with a hole.
>
> [ and you can extend that to third party modules if we attempt to act as a
>   registry for them. it goes without saying that people won't have every
>   third party module, so each apache process would have *huge* holes, thus
>   wasting significant processor tables ]

That's very common on Win32, and reasonably optimized because of it.  Com
.dlls suffer the same problem, so it's been a priority for some time.




Re: BaseAddress.ref needed?

2001-10-03 Thread Greg Stein

On Wed, Oct 03, 2001 at 09:56:40AM +0200, Günter Knauf wrote:
> Hi Bill,
> can you please explain if every module really needs an entry in BaseAddress.ref? I 
>tested with many modules without an entry and it seems to work with the linker 
>defaults...
> If it is needed how should it be done then with 3rd party modules?

Yes, it is needed. Without it, the linker will assign the same, fixed
address to every module. At runtime, those modules will then need to be
relocated to some address.

Using BaseAddress.ref, we can effectively do the relocation at link time.
Sure, it is possible some other code is present and a relocation is forced,
but that will be atypical.

Relocation is expensive. Doing it at link time rather than load time is a
huge win.

3rd party modules can do whatever they want. Invariably, they will probably
get relocated and/or clash with other 3rd party modules. But we *do* have
control over Apache itself and can help those.

There are further optimizations with assigning addresses that we probably
don't do. Specifically, if there are "gaps" in the address space, then you
end up wasting space in the processor's mapping tables. As a result, you
want to pack the modules as tightly as possible.

Of course, that tight-packing is at odds with the optional loading of
modules. If we do the packing, then decide not to load something, then we
end up with a hole.

[ and you can extend that to third party modules if we attempt to act as a
  registry for them. it goes without saying that people won't have every
  third party module, so each apache process would have *huge* holes, thus
  wasting significant processor tables ]


Does that answer your questions? :-)

Cheers,
-g

-- 
Greg Stein, http://www.lyra.org/



[PATCH] httpd-2.0: main.c corrects -h on Win32 - update

2001-10-03 Thread Günter Knauf

sorry, I forgot the first usage output...
Guenter.

 main.c.patch


RE: mod_ssl update...

2001-10-03 Thread MATHIHALLI,MADHUSUDAN (HP-Cupertino,ex1)

Hi,
  Pl. find my comments below :

>-Original Message-
>From: Justin Erenkrantz

[..snip..]
>/* XXX THIS STUFF NEEDS A MAJOR CLEANUP -RSE XXX */
>So, I'm obviously not the first one to think this and that
>was before the input filters change forced this issue.  =)
[..snip..]

True.. it's known that the ssl filtering is to be stabilized. That's the
reason the comment still exists in the file - else it would have gone long
time ago :-).

[..snip..]
>Anyway, I see that the input and output filters are handled
>by one function - churn.  Is that dictated by the mechanics
>of OpenSSL?  Can we separate input and output entirely or
>do we need to have them coexist like they are now?
[..snip..]

You're right.. the bulk of the SSL communication logic is done in churn()..
The logic basically reads the user data from the filter, gives it to OpenSSL
thru' the BIO routines, and whatever is output by openssl is picked up thru'
the BIO interfaces and put on to the output queue.. I'm not clear what you
mean by "separate input and output"..

[..snip..]
>I also don't think OpenSSL will like the idea of renegotiating via buckets.
=)  
[..snip..]

I don't think so..As long as we can gather the *full client data* and pass
it across, OpenSSL is happy.. The catch here is to capture all the data
that's sent by the client, and not to break it into small chunks/pieces.

[..snip..]
>So, I think we have to teach mod_ssl's input filter to standalone 
>without the help of the core.  That means (I think) that we could 
>use the SSL_* (i.e. SSL_read) functions when reading from the 
>socket rather than ap_get_brigade/BIO_*.  Can we intermix calls to 
>BIO_* and SSL_*?  Are they separate?  When do we want to use BIO_* 
>and not SSL_*?
[..snip..]

It's definitely possible to use the SSL_* functions - but, then we'll have
to expose the socketfd's et al.. Also, it'd be deviating from the other
modules of apache, where the filters are *almost* forced to be used. I'd
prefer to have the ap_get_brigade_* functionality to read/write the data
from the socket.

[..snip..]
>There is just a lot of stuff here.  And, I think Ralf nailed it
>on the head.  =) 
[..snip..]

I picked up the SSL filtering logic from tls, and modified
it to work for mod-ssl .. OtherBill, Doug, Cliff added some
real valuable stuff to the filter code.

-Madhu



BaseAddress.ref needed?

2001-10-03 Thread Günter Knauf

Hi Bill,
can you please explain if every module really needs an entry in BaseAddress.ref? I 
tested with many modules without an entry and it seems to work with the linker 
defaults...
If it is needed how should it be done then with 3rd party modules?
Guenter.




[PATCH] httpd-2.0: main.c corrects -h on Win32

2001-10-03 Thread Günter Knauf

Hi,
as -i / -u are now replaced by -k install / -k uninstall, -h should also list the new 
commands.

additional a patch for Win32 httpd.conf which I forgot last time to insert the 
LoadModule directives for the added modules.

Guenter.

 main.c.patch
 httpd.conf.patch


mod_ssl update...

2001-10-03 Thread Justin Erenkrantz

Yeah, mod_ssl's filtering model just isn't meshing well with the
rewrite to the input filtering.  Since I think most of us on
the list have come to the consensus that what I committed is
closer to the "right thing" (whatever that pie-in-the-sky may 
be), I think we need to consider altering mod_ssl's filtering 
model to fit with our new expectations.

I think it's doable, but it isn't going to be a trivial one-line 
patch.  I'll quote RSE here from the top of the ssl_engine_io.c:

/* XXX THIS STUFF NEEDS A MAJOR CLEANUP -RSE XXX */

So, I'm obviously not the first one to think this and that
was before the input filters change forced this issue.  =)

Anyway, I see that the input and output filters are handled
by one function - churn.  Is that dictated by the mechanics
of OpenSSL?  Can we separate input and output entirely or
do we need to have them coexist like they are now?

Basically, the root problem is that mod_ssl's input filtering
routines are expecting to get the socket back with the -1 length
and do a FOREACH until it is exhausted.  That's not how it works 
anymore, so mod_ssl is going to be broken until we teach it how 
to properly handle reading from the socket in little chunks (via
ap_get_brigade via CORE_IN).  But, I think we may have to jettison
CORE_IN when mod_ssl is used because we need to get enough data
to renegotiate, etc, etc, etc.  I also don't think OpenSSL will
like the idea of renegotiating via buckets.  =)  

So, I think we have to teach mod_ssl's input filter to standalone 
without the help of the core.  That means (I think) that we could 
use the SSL_* (i.e. SSL_read) functions when reading from the 
socket rather than ap_get_brigade/BIO_*.  Can we intermix calls to 
BIO_* and SSL_*?  Are they separate?  When do we want to use BIO_* 
and not SSL_*?

There is just a lot of stuff here.  And, I think Ralf nailed it
on the head.  =)  I'm not sure that I see a simple way around
this, but I'm open to suggestions.  Thoughts?  -- justin




Re: [PATCH] adding xml output to mod_status -- [REPOST]

2001-10-03 Thread Mark J Cox

> - on Linux and NetWare I only get the data unformated back, looks as
> there are problems with the scoreboard.xsl or so. Any ideas what's

Yeah, Mozilla isn't very stable at doing the rendering.  Most of the
problems you mention are due to the XSLT being done inside the browser.
I'm not real worried about problems with the XSL because most of the time
you'll want the raw XML data instead, and these browsers will only get
better at XSLT over time.

> 6.29982236431605997495353221893310546875kB

If you look in the XSLT I wanted to use xsl:format-number to round to one
decimal place, but Mozilla doesn't support format-number yet.  You could
probably negotiate the xsl file returned based on user-agent and have
several.

> you should really change the TZ to numerous expression as Sander
> already suggested:

Good plan.  I wanted to avoid timestamps that are offsets though so the
XML data is consistant (and can be compared) across platforms.

Cheers,
Mark