Re: cvs commit: httpd-test/perl-framework/Apache-Test/lib/Apache TestConfig.pm

2002-04-06 Thread Cliff Woolley
On 6 Apr 2002 [EMAIL PROTECTED] wrote:

 dougm   02/04/05 18:39:31

   Modified:perl-framework/Apache-Test/lib/Apache TestConfig.pm
   Log:
   try MP_AP_PREFIX in modperl build config for httpd location hint

Doug.  DOOD.  You're working too hard.  GO PARTY!  ;)

--
   Cliff Woolley
   [EMAIL PROTECTED]
   Charlottesville, VA




Re: cvs commit: httpd-test/perl-framework/Apache-Test/lib/Apache TestConfig.pm

2002-04-06 Thread Doug MacEachern
On Fri, 5 Apr 2002, Cliff Woolley wrote:
 
 Doug.  DOOD.  You're working too hard.  GO PARTY!  ;)

well, i am drinking a beer at least.  wasn't expecting this GA push today, 
so i'm scrambling to get a modperl release together.  then i will party 
like never before!



2.0.35 related: Website tweak, upgrade apache.org servers

2002-04-06 Thread Sander Striker

Hi,

http://httpd.apache.org still shows:

Apache 1.3.24 is the best version of Apache currently available;
 everyone running 1.2.X servers or earlier are strongly urged to 
 upgrade to 1.3, as there will not be any further 1.2.X releases.
 At present, the Win32 port of Apache is not as stable as the UNIX
 version.

We probably want to demote 1.3 a bit.


And, IMHO, we should upgrade the apache.org servers (at least
icarus deserves an upgrade) to 2.0.35.

Sander





RE: 2.0.35 related: Website tweak, upgrade apache.org servers

2002-04-06 Thread Mladen Turk



 -Original Message-
 From: Sander Striker [mailto:[EMAIL PROTECTED]]
 Sent: Saturday, April 06, 2002 1:23 PM

 http://httpd.apache.org still shows:

 Apache 1.3.24 is the best version of Apache currently available;
  everyone running 1.2.X servers or earlier are strongly urged to
  upgrade to 1.3, as there will not be any further 1.2.X releases.
  At present, the Win32 port of Apache is not as stable as the UNIX
  version.

 We probably want to demote 1.3 a bit.


What bothers me is the statement the Win32 port of Apache is not as stable
as the UNIX version.

Are there any chances to get rid of that (IMO stupid) Win32 port warning
stuffs.
If the Win32 port is not as stable as the UNIX one, how the stable is UNIX
Solaris compared to UNIX AIX, UNIX Linux, etc...

And on the other hand what is the Win32 port? Is it Windows 95, Windows NT
4, 2000, or XP?

MT.




RE: 2.0.35 related: Website tweak, upgrade apache.org servers

2002-04-06 Thread Sander Striker

 From: Mladen Turk [mailto:[EMAIL PROTECTED]]
 Sent: 06 April 2002 13:53

  http://httpd.apache.org still shows:
 
  Apache 1.3.24 is the best version of Apache currently available;
   everyone running 1.2.X servers or earlier are strongly urged to
   upgrade to 1.3, as there will not be any further 1.2.X releases.
   At present, the Win32 port of Apache is not as stable as the UNIX
   version.
 
  We probably want to demote 1.3 a bit.
 
 
 What bothers me is the statement the Win32 port of Apache is not as stable
 as the UNIX version.

This is not in the 2.0 part of the page.  This only goes for 1.3.  In the
2.0 section:

This version of Apache is known to work on many versions of Unix, BeOS, OS/2,
 Windows, and Netware. Because of many of the advancements in Apache 2.0, the
 initial release of Apache is expected to perform equally well on all supported
 platforms
 
 Are there any chances to get rid of that (IMO stupid) Win32 port warning
 stuffs.

No need, there is no warning ;)

 If the Win32 port is not as stable as the UNIX one, how the stable is UNIX
 Solaris compared to UNIX AIX, UNIX Linux, etc...

See above.

 And on the other hand what is the Win32 port? Is it Windows 95, Windows NT
 4, 2000, or XP?

I think that we can safely assume that Apache 2.0 was targetted at Windows NT 4 and
up.  I personally wouldn't want to have to worry about Windows 9x (for obvious
reasons I think).

 MT.

Sander




[Patch] Namespace protect and export getline and get_chunk_size

2002-04-06 Thread Graham Leggett

Hi all,

In preparation for a bugfix to proxy and its broken chunking in v1.3, I
need to make getline() and get_chunk_size() available to proxy.

This patch namespace protects and exports these two functions. Will
commit later today if there are no objections...

Regards,
Graham
-- 
-
[EMAIL PROTECTED]There's a moon
over Bourbon Street
tonight...

--- /home/minfrin/src/apache/pristine/apache-1.3/src/main/http_protocol.c   Tue 
Mar 26 00:39:36 2002
+++ src/main/http_protocol.cSat Apr  6 14:57:49 2002
@@ -857,13 +857,13 @@
  *   then the actual input line exceeded the buffer length,
  *   and it would be a good idea for the caller to puke 400 or 414.
  */
-static int getline(char *s, int n, BUFF *in, int fold)
+API_EXPORT(int) ap_getline(char *s, int n, BUFF *in, int fold)
 {
 char *pos, next;
 int retval;
 int total = 0;
 #ifdef CHARSET_EBCDIC
-/* When getline() is called, the HTTP protocol is in a state
+/* When ap_getline() is called, the HTTP protocol is in a state
  * where we MUST be reading plain text protocol stuff,
  * (Request line, MIME headers, Chunk sizes) regardless of
  * the MIME type and conversion setting of the document itself.
@@ -978,7 +978,7 @@
 
 static int read_request_line(request_rec *r)
 {
-char l[DEFAULT_LIMIT_REQUEST_LINE + 2]; /* getline's two extra for \n\0 */
+char l[DEFAULT_LIMIT_REQUEST_LINE + 2]; /* ap_getline's two extra for \n\0 */
 const char *ll = l;
 const char *uri;
 conn_rec *conn = r-connection;
@@ -1000,7 +1000,7 @@
  * have to block during a read.
  */
 ap_bsetflag(conn-client, B_SAFEREAD, 1);
-while ((len = getline(l, sizeof(l), conn-client, 0)) = 0) {
+while ((len = ap_getline(l, sizeof(l), conn-client, 0)) = 0) {
 if ((len  0) || ap_bgetflag(conn-client, B_EOF)) {
 ap_bsetflag(conn-client, B_SAFEREAD, 0);
/* this is a hack to make sure that request time is set,
@@ -1031,7 +1031,7 @@
 
 ap_parse_uri(r, uri);
 
-/* getline returns (size of max buffer - 1) if it fills up the
+/* ap_getline returns (size of max buffer - 1) if it fills up the
  * buffer before finding the end-of-line.  This is only going to
  * happen if it exceeds the configured limit for a request-line.
  */
@@ -1056,7 +1056,7 @@
 
 static void get_mime_headers(request_rec *r)
 {
-char field[DEFAULT_LIMIT_REQUEST_FIELDSIZE + 2]; /* getline's two extra */
+char field[DEFAULT_LIMIT_REQUEST_FIELDSIZE + 2]; /* ap_getline's two extra */
 conn_rec *c = r-connection;
 char *value;
 char *copy;
@@ -1071,7 +1071,7 @@
  * Read header lines until we get the empty separator line, a read error,
  * the connection closes (EOF), reach the server limit, or we timeout.
  */
-while ((len = getline(field, sizeof(field), c-client, 1))  0) {
+while ((len = ap_getline(field, sizeof(field), c-client, 1))  0) {
 
 if (r-server-limit_req_fields 
 (++fields_read  r-server-limit_req_fields)) {
@@ -1081,7 +1081,7 @@
   this server's limit.P\n);
 return;
 }
-/* getline returns (size of max buffer - 1) if it fills up the
+/* ap_getline returns (size of max buffer - 1) if it fills up the
  * buffer before finding the end-of-line.  This is only going to
  * happen if it exceeds the configured limit for a field size.
  */
@@ -2018,7 +2018,7 @@
 return 1;
 }
 
-static long get_chunk_size(char *b)
+API_EXPORT(long) ap_get_chunk_size(char *b)
 {
 long chunksize = 0;
 
@@ -2100,14 +2100,14 @@
 
 if (r-remaining == 0) {/* Start of new chunk */
 
-chunk_start = getline(buffer, bufsiz, r-connection-client, 0);
+chunk_start = ap_getline(buffer, bufsiz, r-connection-client, 0);
 if ((chunk_start = 0) || (chunk_start = (bufsiz - 1))
 || !ap_isxdigit(*buffer)) {
 r-connection-keepalive = -1;
 return -1;
 }
 
-len_to_read = get_chunk_size(buffer);
+len_to_read = ap_get_chunk_size(buffer);
 
 if (len_to_read == 0) { /* Last chunk indicated, get footers */
 if (r-read_body == REQUEST_CHUNKED_DECHUNK) {
@@ -2141,7 +2141,7 @@
 len_read = chunk_start;
 
 while ((bufsiz  1)  ((len_read =
-  getline(buffer, bufsiz, r-connection-client, 1))  0)) {
+  ap_getline(buffer, bufsiz, r-connection-client, 1))  0)) {
 
 if (len_read != (bufsiz - 1)) {
 buffer[len_read++] = CR;/* Restore footer line end  */



smime.p7s
Description: S/MIME Cryptographic Signature


Re: [Patch] Namespace protect and export getline and get_chunk_size

2002-04-06 Thread Bill Stoddard

+1 in concept.

Please add the exports to httpd.exp and bump the MMN Minor.

Bill

- Original Message -
From: Graham Leggett [EMAIL PROTECTED]
To: Apache Developers List [EMAIL PROTECTED]
Sent: Saturday, April 06, 2002 8:01 AM
Subject: [Patch] Namespace protect and export getline and get_chunk_size


 Hi all,

 In preparation for a bugfix to proxy and its broken chunking in v1.3, I
 need to make getline() and get_chunk_size() available to proxy.

 This patch namespace protects and exports these two functions. Will
 commit later today if there are no objections...

 Regards,
 Graham
 --
 -
 [EMAIL PROTECTED] There's a moon
 over Bourbon Street
 tonight...





 --- /home/minfrin/src/apache/pristine/apache-1.3/src/main/http_protocol.c Tue Mar 26
00:39:36 2002
 +++ src/main/http_protocol.c Sat Apr  6 14:57:49 2002
 @@ -857,13 +857,13 @@
   *   then the actual input line exceeded the buffer length,
   *   and it would be a good idea for the caller to puke 400 or 414.
   */
 -static int getline(char *s, int n, BUFF *in, int fold)
 +API_EXPORT(int) ap_getline(char *s, int n, BUFF *in, int fold)
  {
  char *pos, next;
  int retval;
  int total = 0;
  #ifdef CHARSET_EBCDIC
 -/* When getline() is called, the HTTP protocol is in a state
 +/* When ap_getline() is called, the HTTP protocol is in a state
   * where we MUST be reading plain text protocol stuff,
   * (Request line, MIME headers, Chunk sizes) regardless of
   * the MIME type and conversion setting of the document itself.
 @@ -978,7 +978,7 @@

  static int read_request_line(request_rec *r)
  {
 -char l[DEFAULT_LIMIT_REQUEST_LINE + 2]; /* getline's two extra for \n\0 */
 +char l[DEFAULT_LIMIT_REQUEST_LINE + 2]; /* ap_getline's two extra for \n\0 */
  const char *ll = l;
  const char *uri;
  conn_rec *conn = r-connection;
 @@ -1000,7 +1000,7 @@
   * have to block during a read.
   */
  ap_bsetflag(conn-client, B_SAFEREAD, 1);
 -while ((len = getline(l, sizeof(l), conn-client, 0)) = 0) {
 +while ((len = ap_getline(l, sizeof(l), conn-client, 0)) = 0) {
  if ((len  0) || ap_bgetflag(conn-client, B_EOF)) {
  ap_bsetflag(conn-client, B_SAFEREAD, 0);
   /* this is a hack to make sure that request time is set,
 @@ -1031,7 +1031,7 @@

  ap_parse_uri(r, uri);

 -/* getline returns (size of max buffer - 1) if it fills up the
 +/* ap_getline returns (size of max buffer - 1) if it fills up the
   * buffer before finding the end-of-line.  This is only going to
   * happen if it exceeds the configured limit for a request-line.
   */
 @@ -1056,7 +1056,7 @@

  static void get_mime_headers(request_rec *r)
  {
 -char field[DEFAULT_LIMIT_REQUEST_FIELDSIZE + 2]; /* getline's two extra */
 +char field[DEFAULT_LIMIT_REQUEST_FIELDSIZE + 2]; /* ap_getline's two extra */
  conn_rec *c = r-connection;
  char *value;
  char *copy;
 @@ -1071,7 +1071,7 @@
   * Read header lines until we get the empty separator line, a read error,
   * the connection closes (EOF), reach the server limit, or we timeout.
   */
 -while ((len = getline(field, sizeof(field), c-client, 1))  0) {
 +while ((len = ap_getline(field, sizeof(field), c-client, 1))  0) {

  if (r-server-limit_req_fields 
  (++fields_read  r-server-limit_req_fields)) {
 @@ -1081,7 +1081,7 @@
this server's limit.P\n);
  return;
  }
 -/* getline returns (size of max buffer - 1) if it fills up the
 +/* ap_getline returns (size of max buffer - 1) if it fills up the
   * buffer before finding the end-of-line.  This is only going to
   * happen if it exceeds the configured limit for a field size.
   */
 @@ -2018,7 +2018,7 @@
  return 1;
  }

 -static long get_chunk_size(char *b)
 +API_EXPORT(long) ap_get_chunk_size(char *b)
  {
  long chunksize = 0;

 @@ -2100,14 +2100,14 @@

  if (r-remaining == 0) {/* Start of new chunk */

 -chunk_start = getline(buffer, bufsiz, r-connection-client, 0);
 +chunk_start = ap_getline(buffer, bufsiz, r-connection-client, 0);
  if ((chunk_start = 0) || (chunk_start = (bufsiz - 1))
  || !ap_isxdigit(*buffer)) {
  r-connection-keepalive = -1;
  return -1;
  }

 -len_to_read = get_chunk_size(buffer);
 +len_to_read = ap_get_chunk_size(buffer);

  if (len_to_read == 0) { /* Last chunk indicated, get footers */
  if (r-read_body == REQUEST_CHUNKED_DECHUNK) {
 @@ -2141,7 +2141,7 @@
  len_read = chunk_start;

  while ((bufsiz  1)  ((len_read =
 -  getline(buffer, bufsiz, r-connection-client, 1))  0)) {
 +  ap_getline(buffer, bufsiz, r-connection-client, 

Re: Questions about directories

2002-04-06 Thread Thom May

* Austin Gonyou ([EMAIL PROTECTED]) wrote :
 I'm in the process of trying to build a RPM specfile for Apache2. I'm
 also trying to take my old configure line and put it into the apache 2
 stuff..but there are some differences that bother me.
 
 
 I don't see a line for the htdocs path, icons path, etc...
 Is there any documentation on this stuff, rather, explanation? 
 
 I've been using 2.0 for a while now..but I always put it into
 /some/dir/apache2, and everything goes under that.
 
 Trying to follow the LSB though, files go into many different
 places..combine that with RH, and it's pretty convoluted..
 
Have a look at config.layout and --enable-layout=blah.
The Debian layout ought to be pretty close to what you need.

Cheers,
-Thom



Re: [Patch] Namespace protect and export getline and get_chunk_size

2002-04-06 Thread dirkx


+1 Nice -I can use that in some modules I have here as well.

Dw.

-- 
Dirk-Willem van Gulik

On Sat, 6 Apr 2002, Graham Leggett wrote:

 Hi all,

 In preparation for a bugfix to proxy and its broken chunking in v1.3, I
 need to make getline() and get_chunk_size() available to proxy.

 This patch namespace protects and exports these two functions. Will
 commit later today if there are no objections...

 Regards,
 Graham





Re: [Patch] Namespace protect and export getline and get_chunk_size

2002-04-06 Thread Graham Leggett

Bill Stoddard wrote:

 +1 in concept.
 
 Please add the exports to httpd.exp and bump the MMN Minor.

Like this?

Regards,
Graham
-- 
-
[EMAIL PROTECTED]There's a moon
over Bourbon Street
tonight...

--- /home/minfrin/src/apache/pristine/apache-1.3/src/support/httpd.exp  Sun Mar 24 
12:03:02 2002
+++ src/support/httpd.exp   Sat Apr  6 15:22:44 2002
@@ -129,6 +129,7 @@
 ap_fnmatch
 ap_force_library_loading
 ap_get_basic_auth_pw
+ap_get_chunk_size
 ap_get_client_block
 ap_get_gmtoff
 ap_get_list_item
@@ -142,6 +143,7 @@
 ap_get_time
 ap_get_token
 ap_get_virthost_addr
+ap_getline
 ap_getparents
 ap_getword
 ap_getword_conf
--- /home/minfrin/src/apache/pristine/apache-1.3/src/include/ap_mmn.h   Sun Mar 24 
11:58:39 2002
+++ src/include/ap_mmn.hSat Apr  6 15:27:46 2002
@@ -235,6 +235,7 @@
  *filter_callback to the end of buff.h
  * 19990320.11  - Add some fields to the end of the core_dir_config
  *structure
+ * 19990320.12 - add ap_getline(), ap_get_chunk_size()
  */
 
 #define MODULE_MAGIC_COOKIE 0x41503133UL /* AP13 */
@@ -242,7 +243,7 @@
 #ifndef MODULE_MAGIC_NUMBER_MAJOR
 #define MODULE_MAGIC_NUMBER_MAJOR 19990320
 #endif
-#define MODULE_MAGIC_NUMBER_MINOR 11/* 0...n */
+#define MODULE_MAGIC_NUMBER_MINOR 12/* 0...n */
 
 /* Useful for testing for features. */
 #define AP_MODULE_MAGIC_AT_LEAST(major,minor)  \
--- /home/minfrin/src/apache/pristine/apache-1.3/src/main/http_protocol.c   Tue 
Mar 26 00:39:36 2002
+++ src/main/http_protocol.cSat Apr  6 14:57:49 2002
@@ -857,13 +857,13 @@
  *   then the actual input line exceeded the buffer length,
  *   and it would be a good idea for the caller to puke 400 or 414.
  */
-static int getline(char *s, int n, BUFF *in, int fold)
+API_EXPORT(int) ap_getline(char *s, int n, BUFF *in, int fold)
 {
 char *pos, next;
 int retval;
 int total = 0;
 #ifdef CHARSET_EBCDIC
-/* When getline() is called, the HTTP protocol is in a state
+/* When ap_getline() is called, the HTTP protocol is in a state
  * where we MUST be reading plain text protocol stuff,
  * (Request line, MIME headers, Chunk sizes) regardless of
  * the MIME type and conversion setting of the document itself.
@@ -978,7 +978,7 @@
 
 static int read_request_line(request_rec *r)
 {
-char l[DEFAULT_LIMIT_REQUEST_LINE + 2]; /* getline's two extra for \n\0 */
+char l[DEFAULT_LIMIT_REQUEST_LINE + 2]; /* ap_getline's two extra for \n\0 */
 const char *ll = l;
 const char *uri;
 conn_rec *conn = r-connection;
@@ -1000,7 +1000,7 @@
  * have to block during a read.
  */
 ap_bsetflag(conn-client, B_SAFEREAD, 1);
-while ((len = getline(l, sizeof(l), conn-client, 0)) = 0) {
+while ((len = ap_getline(l, sizeof(l), conn-client, 0)) = 0) {
 if ((len  0) || ap_bgetflag(conn-client, B_EOF)) {
 ap_bsetflag(conn-client, B_SAFEREAD, 0);
/* this is a hack to make sure that request time is set,
@@ -1031,7 +1031,7 @@
 
 ap_parse_uri(r, uri);
 
-/* getline returns (size of max buffer - 1) if it fills up the
+/* ap_getline returns (size of max buffer - 1) if it fills up the
  * buffer before finding the end-of-line.  This is only going to
  * happen if it exceeds the configured limit for a request-line.
  */
@@ -1056,7 +1056,7 @@
 
 static void get_mime_headers(request_rec *r)
 {
-char field[DEFAULT_LIMIT_REQUEST_FIELDSIZE + 2]; /* getline's two extra */
+char field[DEFAULT_LIMIT_REQUEST_FIELDSIZE + 2]; /* ap_getline's two extra */
 conn_rec *c = r-connection;
 char *value;
 char *copy;
@@ -1071,7 +1071,7 @@
  * Read header lines until we get the empty separator line, a read error,
  * the connection closes (EOF), reach the server limit, or we timeout.
  */
-while ((len = getline(field, sizeof(field), c-client, 1))  0) {
+while ((len = ap_getline(field, sizeof(field), c-client, 1))  0) {
 
 if (r-server-limit_req_fields 
 (++fields_read  r-server-limit_req_fields)) {
@@ -1081,7 +1081,7 @@
   this server's limit.P\n);
 return;
 }
-/* getline returns (size of max buffer - 1) if it fills up the
+/* ap_getline returns (size of max buffer - 1) if it fills up the
  * buffer before finding the end-of-line.  This is only going to
  * happen if it exceeds the configured limit for a field size.
  */
@@ -2018,7 +2018,7 @@
 return 1;
 }
 
-static long get_chunk_size(char *b)
+API_EXPORT(long) ap_get_chunk_size(char *b)
 {
 long chunksize = 0;
 
@@ -2100,14 +2100,14 @@
 
 if (r-remaining == 0) {/* Start of new chunk */
 
-chunk_start = getline(buffer, bufsiz, 

Re: [Patch] Namespace protect and export getline and get_chunk_size

2002-04-06 Thread Bill Stoddard


 Bill Stoddard wrote:

  +1 in concept.
 
  Please add the exports to httpd.exp and bump the MMN Minor.

 Like this?

Yep!


 Regards,
 Graham
 --
 -
 [EMAIL PROTECTED] There's a moon
 over Bourbon Street
 tonight...





 --- /home/minfrin/src/apache/pristine/apache-1.3/src/support/httpd.exp Sun Mar 24
12:03:02 2002
 +++ src/support/httpd.exp Sat Apr  6 15:22:44 2002
 @@ -129,6 +129,7 @@
  ap_fnmatch
  ap_force_library_loading
  ap_get_basic_auth_pw
 +ap_get_chunk_size
  ap_get_client_block
  ap_get_gmtoff
  ap_get_list_item
 @@ -142,6 +143,7 @@
  ap_get_time
  ap_get_token
  ap_get_virthost_addr
 +ap_getline
  ap_getparents
  ap_getword
  ap_getword_conf
 --- /home/minfrin/src/apache/pristine/apache-1.3/src/include/ap_mmn.h Sun Mar 24
11:58:39 2002
 +++ src/include/ap_mmn.h Sat Apr  6 15:27:46 2002
 @@ -235,6 +235,7 @@
   *filter_callback to the end of buff.h
   * 19990320.11  - Add some fields to the end of the core_dir_config
   *structure
 + * 19990320.12 - add ap_getline(), ap_get_chunk_size()
   */

  #define MODULE_MAGIC_COOKIE 0x41503133UL /* AP13 */
 @@ -242,7 +243,7 @@
  #ifndef MODULE_MAGIC_NUMBER_MAJOR
  #define MODULE_MAGIC_NUMBER_MAJOR 19990320
  #endif
 -#define MODULE_MAGIC_NUMBER_MINOR 11/* 0...n */
 +#define MODULE_MAGIC_NUMBER_MINOR 12/* 0...n */

  /* Useful for testing for features. */
  #define AP_MODULE_MAGIC_AT_LEAST(major,minor) \
 --- /home/minfrin/src/apache/pristine/apache-1.3/src/main/http_protocol.c Tue Mar 26
00:39:36 2002
 +++ src/main/http_protocol.c Sat Apr  6 14:57:49 2002
 @@ -857,13 +857,13 @@
   *   then the actual input line exceeded the buffer length,
   *   and it would be a good idea for the caller to puke 400 or 414.
   */
 -static int getline(char *s, int n, BUFF *in, int fold)
 +API_EXPORT(int) ap_getline(char *s, int n, BUFF *in, int fold)
  {
  char *pos, next;
  int retval;
  int total = 0;
  #ifdef CHARSET_EBCDIC
 -/* When getline() is called, the HTTP protocol is in a state
 +/* When ap_getline() is called, the HTTP protocol is in a state
   * where we MUST be reading plain text protocol stuff,
   * (Request line, MIME headers, Chunk sizes) regardless of
   * the MIME type and conversion setting of the document itself.
 @@ -978,7 +978,7 @@

  static int read_request_line(request_rec *r)
  {
 -char l[DEFAULT_LIMIT_REQUEST_LINE + 2]; /* getline's two extra for \n\0 */
 +char l[DEFAULT_LIMIT_REQUEST_LINE + 2]; /* ap_getline's two extra for \n\0 */
  const char *ll = l;
  const char *uri;
  conn_rec *conn = r-connection;
 @@ -1000,7 +1000,7 @@
   * have to block during a read.
   */
  ap_bsetflag(conn-client, B_SAFEREAD, 1);
 -while ((len = getline(l, sizeof(l), conn-client, 0)) = 0) {
 +while ((len = ap_getline(l, sizeof(l), conn-client, 0)) = 0) {
  if ((len  0) || ap_bgetflag(conn-client, B_EOF)) {
  ap_bsetflag(conn-client, B_SAFEREAD, 0);
   /* this is a hack to make sure that request time is set,
 @@ -1031,7 +1031,7 @@

  ap_parse_uri(r, uri);

 -/* getline returns (size of max buffer - 1) if it fills up the
 +/* ap_getline returns (size of max buffer - 1) if it fills up the
   * buffer before finding the end-of-line.  This is only going to
   * happen if it exceeds the configured limit for a request-line.
   */
 @@ -1056,7 +1056,7 @@

  static void get_mime_headers(request_rec *r)
  {
 -char field[DEFAULT_LIMIT_REQUEST_FIELDSIZE + 2]; /* getline's two extra */
 +char field[DEFAULT_LIMIT_REQUEST_FIELDSIZE + 2]; /* ap_getline's two extra */
  conn_rec *c = r-connection;
  char *value;
  char *copy;
 @@ -1071,7 +1071,7 @@
   * Read header lines until we get the empty separator line, a read error,
   * the connection closes (EOF), reach the server limit, or we timeout.
   */
 -while ((len = getline(field, sizeof(field), c-client, 1))  0) {
 +while ((len = ap_getline(field, sizeof(field), c-client, 1))  0) {

  if (r-server-limit_req_fields 
  (++fields_read  r-server-limit_req_fields)) {
 @@ -1081,7 +1081,7 @@
this server's limit.P\n);
  return;
  }
 -/* getline returns (size of max buffer - 1) if it fills up the
 +/* ap_getline returns (size of max buffer - 1) if it fills up the
   * buffer before finding the end-of-line.  This is only going to
   * happen if it exceeds the configured limit for a field size.
   */
 @@ -2018,7 +2018,7 @@
  return 1;
  }

 -static long get_chunk_size(char *b)
 +API_EXPORT(long) ap_get_chunk_size(char *b)
  {
  long chunksize = 0;

 @@ -2100,14 +2100,14 @@

  if (r-remaining == 0) {/* Start of new chunk */

 -

[Patch] PR7513: Chunking fixed in proxy

2002-04-06 Thread Graham Leggett

Hi all,

This patch fixes the broken chunking problem in the v1.3 proxy by adding
dechunk support to ap_proxy_send_fb(), support for which was missing
from the code.

It also removes hop-by-hop headers from the server response before
passing them up to the client. Previously hop-by-hop headers were only
removed for the request.

There is a question within the patch whether EBCDIC is supported
correctly while dechunking - Can an IBM person take a look at this and
tell me if I did the right thing?

Regards,
Graham
-- 
-
[EMAIL PROTECTED]There's a moon
over Bourbon Street
tonight...

diff -u -r /home/minfrin/src/apache/pristine/apache-1.3/src/modules/proxy/mod_proxy.h 
src/modules/proxy/mod_proxy.h
--- /home/minfrin/src/apache/pristine/apache-1.3/src/modules/proxy/mod_proxy.h  Sun 
Mar 24 12:00:53 2002
+++ src/modules/proxy/mod_proxy.h   Sat Apr  6 11:12:59 2002
@@ -297,7 +297,7 @@
  char **passwordp, char **hostp, int *port);
 const char *ap_proxy_date_canon(pool *p, const char *x);
 table *ap_proxy_read_headers(request_rec *r, char *buffer, int size, BUFF *f);
-long int ap_proxy_send_fb(BUFF *f, request_rec *r, cache_req *c, off_t len, int 
nowrite, size_t recv_buffer_size);
+long int ap_proxy_send_fb(BUFF *f, request_rec *r, cache_req *c, off_t len, int 
+nowrite, int chunked, size_t recv_buffer_size);
 void ap_proxy_write_headers(cache_req *c, const char *respline, table *t);
 int ap_proxy_liststr(const char *list, const char *key, char **val);
 void ap_proxy_hash(const char *it, char *val, int ndepth, int nlength);
diff -u -r 
/home/minfrin/src/apache/pristine/apache-1.3/src/modules/proxy/proxy_cache.c 
src/modules/proxy/proxy_cache.c
--- /home/minfrin/src/apache/pristine/apache-1.3/src/modules/proxy/proxy_cache.c   
 Sat Apr  6 15:15:06 2002
+++ src/modules/proxy/proxy_cache.c Sat Apr  6 16:37:51 2002
@@ -719,7 +719,7 @@
  *
  * We don't yet understand If-Range, but we will...
  */
-int ap_proxy_cache_conditional(request_rec *r, cache_req *c, BUFF *cachefp){
+int ap_proxy_cache_conditional(request_rec *r, cache_req *c, BUFF *cachefp) {
 const char *etag, *wetag = NULL;
 
 /* get etag */
@@ -784,7 +784,7 @@
 /* if cache file is being updated */
 if (c-origfp) {
 ap_proxy_write_headers(c, c-resp_line, c-hdrs);
-ap_proxy_send_fb(c-origfp, r, c, c-len, 1, IOBUFSIZE);
+ap_proxy_send_fb(c-origfp, r, c, c-len, 1, 0, IOBUFSIZE);
 ap_proxy_cache_tidy(c);
 }
 else
@@ -855,7 +855,7 @@
 /* are we updating the cache file? */
 if (c-origfp) {
 ap_proxy_write_headers(c, c-resp_line, c-hdrs);
-ap_proxy_send_fb(c-origfp, r, c, c-len, 1, IOBUFSIZE);
+ap_proxy_send_fb(c-origfp, r, c, c-len, 1, 0, IOBUFSIZE);
 ap_proxy_cache_tidy(c);
 }
 else
@@ -884,14 +884,14 @@
 /* are we rewriting the cache file? */
 if (c-origfp) {
 ap_proxy_write_headers(c, c-resp_line, c-hdrs);
-ap_proxy_send_fb(c-origfp, r, c, c-len, r-header_only, IOBUFSIZE);
+ap_proxy_send_fb(c-origfp, r, c, c-len, r-header_only, 0, IOBUFSIZE);
 ap_proxy_cache_tidy(c);
 return OK;
 }
 
 /* no, we not */
 if (!r-header_only) {
-ap_proxy_send_fb(cachefp, r, NULL, c-len, 0, IOBUFSIZE);
+ap_proxy_send_fb(cachefp, r, NULL, c-len, 0, 0, IOBUFSIZE);
 }
 else {
 ap_pclosef(r-pool, ap_bfileno(cachefp, B_WR));
diff -u -r /home/minfrin/src/apache/pristine/apache-1.3/src/modules/proxy/proxy_ftp.c 
src/modules/proxy/proxy_ftp.c
--- /home/minfrin/src/apache/pristine/apache-1.3/src/modules/proxy/proxy_ftp.c  Tue 
Mar 26 00:29:03 2002
+++ src/modules/proxy/proxy_ftp.c   Sat Apr  6 11:10:54 2002
@@ -1355,7 +1355,7 @@
 /* we need to set this for ap_proxy_send_fb()... */
 if (c != NULL)
 c-cache_completion = 0;
-ap_proxy_send_fb(data, r, c, -1, 0, conf-io_buffer_size);
+ap_proxy_send_fb(data, r, c, -1, 0, 0, conf-io_buffer_size);
 }
 else {
 send_dir(data, r, c, cwd);
diff -u -r /home/minfrin/src/apache/pristine/apache-1.3/src/modules/proxy/proxy_http.c 
src/modules/proxy/proxy_http.c
--- /home/minfrin/src/apache/pristine/apache-1.3/src/modules/proxy/proxy_http.c Tue 
Mar 26 00:29:06 2002
+++ src/modules/proxy/proxy_http.c  Sat Apr  6 16:41:17 2002
@@ -164,6 +164,7 @@
 char portstr[32];
 pool *p = r-pool;
 int destport = 0;
+int chunked = 0;
 char *destportstr = NULL;
 const char *urlptr = NULL;
 const char *datestr, *urlstr;
@@ -476,7 +477,12 @@
 );
 }
 
-/* strip 

Re: cvs commit httpd-2.0/modules/filters/mod_include.c

2002-04-06 Thread Paul Reder

Sorry for the lack of timeliness on responding to this. Our mailserver has been
about to be back up any minute now for a couple of days.

The test case that I ran was even more brutal than what your test module does.
Basically I have a small piece of code that puts each byte in its own bucket and
each bucket in its own brigade.

Brian's patch will not handle this case because there is no next bucket to point
tag_start_index at. I was a little vague in my description of the problem. Basically,
if the !--# tag occurs at the end of one brigade and the directive starts at the
beginning of the next brigade we have trouble. In my tests this was causing a
core dump which my patch fixed.

I'm also surprised that the include virtual was failing since it passed my tests. :(
I'll double check those results to see if I missed something.

Also, Brian, I do not see where the comment you removed was invalid. Slen is only
ever set to ctx-start_seq_len (which by default is 5 I believe). Slen is never changed
to be any number other than ctx-start_seq_len.

I do not claim to have studied bndm enough to be certain, but it seems to me that
if the brigade has a single bucket with a single byte which hapens to match within
the pattern then you will end up incrementing ctx-bytes_parsed by pos+slen (where
slen == 5) when only one byte was processed.

That is to say, len == 1, so it will enter the if (len) conditional block around line 472.
Bndm can match the pattern and return pos = 0, so it enters the (pos != len) conditional
block. At the end of this block it increments ctx-bytes_parsed by pos+slen even
though it only processed one byte. The previous bytes will have already been
accounted for during runs through find_start_sequence for previous brigades.

Where am I confused?

Sorry again for the delay in responding.

Paul J. Reder

Re: [Patch] Namespace protect and export getline and get_chunk_size

2002-04-06 Thread Jim Jagielski

Graham Leggett wrote:
 
 Hi all,
 
 In preparation for a bugfix to proxy and its broken chunking in v1.3, I
 need to make getline() and get_chunk_size() available to proxy.
 
 This patch namespace protects and exports these two functions. Will
 commit later today if there are no objections...
 

+1

Somewhat OT: I'd like to shoot for a 1.3 release to address all known
bugs later this month. At that point, we can formally make 1.3 maint.
mode only.
-- 
===
   Jim Jagielski   [|]   [EMAIL PROTECTED]   [|]   http://www.jaguNET.com/
  A society that will trade a little liberty for a little order
 will lose both and deserve neither - T.Jefferson



Re: [Patch] Namespace protect and export getline and get_chunk_size

2002-04-06 Thread Graham Leggett

Jim Jagielski wrote:

 Somewhat OT: I'd like to shoot for a 1.3 release to address all known
 bugs later this month. At that point, we can formally make 1.3 maint.
 mode only.

Apart from the chunking problem, the proxy doesn't support 100-continue
yet (which I am working on now), and it doesn't support Cache-Control:
no-cache=header. Once these two things are in, HTTP/1.1 support will
be complete and everything from then on is a bigfix.

This should be done within the next week or so...

Regards,
Graham
-- 
-
[EMAIL PROTECTED]There's a moon
over Bourbon Street
tonight...


smime.p7s
Description: S/MIME Cryptographic Signature


Re: cvs commit httpd-2.0/modules/filters/mod_include.c

2002-04-06 Thread Brian Pane

Paul Reder wrote:


 Sorry for the lack of timeliness on responding to this. Our mailserver 
 has been
  about to be back up any minute now for a couple of days.

 The test case that I ran was even more brutal than what your test 
 module does.
 Basically I have a small piece of code that puts each byte in its own 
 bucket and
 each bucket in its own brigade.

 Brian's patch will not handle this case because there is no next 
 bucket to point
 tag_start_index at


The next bucket in this case is the brigade sentinel, which
is the same thing that send_parsed_content() would choose as
the next bucket to scan if we escaped from find_start_sequence()
with tag_start_index==NULL.

 I was a little vague in my description of the problem. Basically,
 if the !--# tag occurs at the end of one brigade and the directive 
 starts at the
 beginning of the next brigade we have trouble. In my tests this was 
 causing a
 core dump which my patch fixed.

 I'm also surprised that the include virtual was failing since it 
 passed my tests. :(
 I'll double check those results to see if I missed something.

 Also, Brian, I do not see where the comment you removed was invalid. 
 Slen is only
 ever set to ctx-start_seq_len (which by default is 5 I believe). Slen 
 is never changed
 to be any number other than ctx-start_seq_len.

 I do not claim to have studied bndm enough to be certain, but it seems 
 to me that
 if the brigade has a single bucket with a single byte which hapens to 
 match within
 the pattern then you will end up incrementing ctx-bytes_parsed by 
 pos+slen (where
 slen == 5) when only one byte was processed.


bndm will only match on an instance of the complete pattern within
the current bucket.  If slen==5 and len==1, bndm won't find a match.
All the one-byte-at-a-time scanning code in find_start_sequence()
exists solely to catch the boundary cases where the pattern spans
two or more buckets--the cases that bndm won't detect.  So when bndm
finds a match, it's guaranteed that len = slen.

If len==1 and bndm indicates that it's found a pattern, it can
only mean that the pattern has been changed from !--# to some
single-byte token.  This case *is* possible, now that we support
the SSIStartTag directive.  But the logic for incrementing
ctx-bytes_parsed by pos+slen is still correct; pos+slen==1.

--Brian





[PATCH] Correct APXS behavior in non-standard layout installations

2002-04-06 Thread Pier Fumagalli

This patch will fix a couple of problems I found when building modules using
APXS when Apache 2.0 is installed not following a custom layout (but a
weird one like my DarwinBundle).

Pie




patch.apxs.txt
Description: Binary data


[PATCH] Add libdir entries in config.layout...

2002-04-06 Thread Pier Fumagalli

We forgot to put libdir in config.layout, it's nice to have it around there
as well (looks better when non-standard layouts are used).

Pier




[PATCH] Add --includedir to configure.in

2002-04-06 Thread Pier Fumagalli

This needs to be specified, otherwise headers will go into weird locations
when doing a make install...

Pier




patch.configure.txt
Description: Binary data


Re: [PATCH] Add libdir entries in config.layout...

2002-04-06 Thread Pier Fumagalli

Pier Fumagalli [EMAIL PROTECTED] wrote:

 We forgot to put libdir in config.layout, it's nice to have it around there
 as well (looks better when non-standard layouts are used).

Shit, sometimes I should click that Add Attachment on my mail client :)

Pier




patch.layout.txt
Description: Binary data


Question about this patch to core_input_filter...

2002-04-06 Thread Bill Stoddard

Justin,
This is your patch... core_input_filter adds a socket bucket, does a 
APR_BRIGADE_NORMALIZE
and then calls APR_BRIGADE_EMPTY(). How can this check ever return an empty brigade?
Bill

===
RCS file: /home/cvspublic/httpd-2.0/server/core.c,v
retrieving revision 1.144
retrieving revision 1.145
diff -u -r1.144 -r1.145
--- httpd-2.0/server/core.c 2002/02/05 22:56:44 1.144
+++ httpd-2.0/server/core.c 2002/02/06 02:24:18 1.145
 -3062,9 +3062,13 
 /* ### This is bad. */
 APR_BRIGADE_NORMALIZE(ctx-b);

-/* check for empty brigade *AFTER* APR_BRIGADE_NORMALIZE() */
+/* check for empty brigade *AFTER* APR_BRIGADE_NORMALIZE()
+ * If we have lost our socket bucket (see above), we are EOF.
+ *
+ * Ideally, this should be returning SUCCESS with EOS bucket, but
+ * some higher-up APIs (spec. read_request_line via ap_rgetline)
+ * want an error code. */
 if (APR_BRIGADE_EMPTY(ctx-b)) {
-/* hit EOF on socket already */
 return APR_EOF;
 }

 -3150,6 +3154,22 
 }
 else if (rv != APR_SUCCESS) {
 return rv;
+} else if (block == APR_BLOCK_READ  len == 0) {
+/* We wanted to read some bytes in blocking mode.  We read
+ * 0 bytes.  Hence, we now assume we are EOS.
+ *
+ * When we are in normal mode, return an EOS bucket to the
+ * caller.
+ * When we are in speculative mode, leave ctx-b empty, so
+ * that the next call returns an EOS bucket.
+ */
+apr_bucket_delete(e);
+
+if (mode == AP_MODE_READBYTES) {
+e = apr_bucket_eos_create();
+APR_BRIGADE_INSERT_TAIL(b, e);
+}
+return APR_SUCCESS;
 }

 /* We can only return at most what we read. */






Re: Question about this patch to core_input_filter...

2002-04-06 Thread Bill Stoddard


 Justin,
 This is your patch... core_input_filter adds a socket bucket, does a
APR_BRIGADE_NORMALIZE
 and then calls APR_BRIGADE_EMPTY(). How can this check ever return an empty brigade?
 Bill

 ===
 RCS file: /home/cvspublic/httpd-2.0/server/core.c,v
 retrieving revision 1.144
 retrieving revision 1.145
 diff -u -r1.144 -r1.145
 --- httpd-2.0/server/core.c 2002/02/05 22:56:44 1.144
 +++ httpd-2.0/server/core.c 2002/02/06 02:24:18 1.145
  -3062,9 +3062,13 
  /* ### This is bad. */
  APR_BRIGADE_NORMALIZE(ctx-b);

 -/* check for empty brigade *AFTER* APR_BRIGADE_NORMALIZE() */
 +/* check for empty brigade *AFTER* APR_BRIGADE_NORMALIZE()
 + * If we have lost our socket bucket (see above), we are EOF.

Let me ask a different way... Referring to the comment above, how can we loose a socket
bucket that was just created?

Thanks,
Bill




FW: Official Release: Apache 2.0.35 is now GA

2002-04-06 Thread Ryan Bloom


I like receving messages like this.   :'-)

Ryan


--
Ryan Bloom  [EMAIL PROTECTED]
645 Howard St.  [EMAIL PROTECTED]
San Francisco, CA 

-Original Message-
From: Mario Guerra [mailto:[EMAIL PROTECTED]] 
Sent: Saturday, April 06, 2002 10:31 AM
To: Ryan Bloom
Subject: Re: Official Release: Apache 2.0.35 is now GA

On Fri, 5 Apr 2002, Ryan Bloom wrote:


 It's my pleasure to announce that the Apache Software Foundation's
 Apache
 HTTP Server, version 2.0.35, has now been released for General
 Availability.



Congratulations to the Apache Group for this milestone (and all that
excellent work they are doing).

Mario Guerra






Re: Does Solaris qsort suck

2002-04-06 Thread Igor Sysoev

On Sat, 6 Apr 2002, Yusuf Goolamabbas wrote:

 Well, That seems to be the view if one reads the following threads at
 the postgres mailing list and Sun's developer connection
 
 http://archives.postgresql.org/pgsql-hackers/2002-04/msg00103.php
 http://forum.sun.com/thread.jsp?forum=4thread=7231
 
 Don't know if those cases would be seen by Solaris users of Apache
 2.0.x, but it might be useful to snarf FreeBSD's qsort.c and link Apache
 to it if a Solaris platform is detected

I think Apache does not sort more then ten items so this bug
does not affect Apache.

Igor Sysoev




RE: Question about this patch to core_input_filter...

2002-04-06 Thread Ryan Bloom

 Justin,
 This is your patch... core_input_filter adds a socket bucket, does a
 APR_BRIGADE_NORMALIZE
 and then calls APR_BRIGADE_EMPTY(). How can this check ever return an
 empty brigade?


If the socket is closed on the other side, then the bucket code will
remove the socket from the brigade.

Ryan





Re: [PATCH] Correct APXS behavior in non-standard layoutinstallations

2002-04-06 Thread Pier Fumagalli

Pier Fumagalli [EMAIL PROTECTED] wrote:

 This patch will fix a couple of problems I found when building modules using
 APXS when Apache 2.0 is installed not following a custom layout (but a
 weird one like my DarwinBundle).

Thom actually showed me his patch posted as

Subject: [PATCH] Fix apxs so it is relocatable...
Message-ID: 20020401184143.GA9215@eustasy

It works great for me on my wicked installation layout, and today we fixed
another couple of things left from his patch (a couple of hardcoded build
directories were still in, and it wasn't properly resolving the ServerRoot
when apxs was called from a symlink)...

This is the revised and updated patch...

Pier / Thom :)





patch.apxs.txt
Description: Binary data


RE: Question about this patch to core_input_filter...

2002-04-06 Thread Cliff Woolley

On Sat, 6 Apr 2002, Ryan Bloom wrote:

  Justin,
  This is your patch... core_input_filter adds a socket bucket, does a
  APR_BRIGADE_NORMALIZE
  and then calls APR_BRIGADE_EMPTY(). How can this check ever return an
  empty brigade?

 If the socket is closed on the other side, then the bucket code will
 remove the socket from the brigade.

Right.  Well, more precisely, it morphs itself to a zero-length immortal
bucket, which is then removed from the brigade by APR_BRIGADE_NORMALIZE.

--Cliff


--
   Cliff Woolley
   [EMAIL PROTECTED]
   Charlottesville, VA





RE: 2.0.35 related: Website tweak, upgrade apache.org servers

2002-04-06 Thread Cliff Woolley

On Sat, 6 Apr 2002, Mladen Turk wrote:

  http://httpd.apache.org still shows:
 
  Apache 1.3.24 is the best version of Apache currently available;
   everyone running 1.2.X servers or earlier are strongly urged to
   upgrade to 1.3, as there will not be any further 1.2.X releases.
   At present, the Win32 port of Apache is not as stable as the UNIX
   version.


Whoops, sorry, forgot to look at that part.  I just removed that whole
paragraph.

--Cliff


--
   Cliff Woolley
   [EMAIL PROTECTED]
   Charlottesville, VA





Re: [Patch] Namespace protect and export getline and get_chunk_size

2002-04-06 Thread William A. Rowe, Jr.

+1 here too, but please also decorate with API_EXPORT() fooness and
add to the appropriate entries to ApacheCore.def/ApacheCoreNW.def files.

At 07:21 AM 4/6/2002, you wrote:
+1 in concept.

Please add the exports to httpd.exp and bump the MMN Minor.

Bill

- Original Message -
From: Graham Leggett [EMAIL PROTECTED]
To: Apache Developers List [EMAIL PROTECTED]
Sent: Saturday, April 06, 2002 8:01 AM
Subject: [Patch] Namespace protect and export getline and get_chunk_size


  Hi all,
 
  In preparation for a bugfix to proxy and its broken chunking in v1.3, I
  need to make getline() and get_chunk_size() available to proxy.
 
  This patch namespace protects and exports these two functions. Will
  commit later today if there are no objections...
 
  Regards,
  Graham
  --
  -
  [EMAIL PROTECTED] There's a moon
  over Bourbon Street
  tonight...





  --- 
 /home/minfrin/src/apache/pristine/apache-1.3/src/main/http_protocol.c Tue 
 Mar 26
00:39:36 2002
  +++ src/main/http_protocol.c Sat Apr  6 14:57:49 2002
  @@ -857,13 +857,13 @@
*   then the actual input line exceeded the buffer length,
*   and it would be a good idea for the caller to puke 400 or 414.
*/
  -static int getline(char *s, int n, BUFF *in, int fold)
  +API_EXPORT(int) ap_getline(char *s, int n, BUFF *in, int fold)
   {
   char *pos, next;
   int retval;
   int total = 0;
   #ifdef CHARSET_EBCDIC
  -/* When getline() is called, the HTTP protocol is in a state
  +/* When ap_getline() is called, the HTTP protocol is in a state
* where we MUST be reading plain text protocol stuff,
* (Request line, MIME headers, Chunk sizes) regardless of
* the MIME type and conversion setting of the document itself.
  @@ -978,7 +978,7 @@
 
   static int read_request_line(request_rec *r)
   {
  -char l[DEFAULT_LIMIT_REQUEST_LINE + 2]; /* getline's two extra for 
 \n\0 */
  +char l[DEFAULT_LIMIT_REQUEST_LINE + 2]; /* ap_getline's two extra 
 for \n\0 */
   const char *ll = l;
   const char *uri;
   conn_rec *conn = r-connection;
  @@ -1000,7 +1000,7 @@
* have to block during a read.
*/
   ap_bsetflag(conn-client, B_SAFEREAD, 1);
  -while ((len = getline(l, sizeof(l), conn-client, 0)) = 0) {
  +while ((len = ap_getline(l, sizeof(l), conn-client, 0)) = 0) {
   if ((len  0) || ap_bgetflag(conn-client, B_EOF)) {
   ap_bsetflag(conn-client, B_SAFEREAD, 0);
/* this is a hack to make sure that request time is set,
  @@ -1031,7 +1031,7 @@
 
   ap_parse_uri(r, uri);
 
  -/* getline returns (size of max buffer - 1) if it fills up the
  +/* ap_getline returns (size of max buffer - 1) if it fills up the
* buffer before finding the end-of-line.  This is only going to
* happen if it exceeds the configured limit for a request-line.
*/
  @@ -1056,7 +1056,7 @@
 
   static void get_mime_headers(request_rec *r)
   {
  -char field[DEFAULT_LIMIT_REQUEST_FIELDSIZE + 2]; /* getline's two 
 extra */
  +char field[DEFAULT_LIMIT_REQUEST_FIELDSIZE + 2]; /* ap_getline's 
 two extra */
   conn_rec *c = r-connection;
   char *value;
   char *copy;
  @@ -1071,7 +1071,7 @@
* Read header lines until we get the empty separator line, a read 
 error,
* the connection closes (EOF), reach the server limit, or we timeout.
*/
  -while ((len = getline(field, sizeof(field), c-client, 1))  0) {
  +while ((len = ap_getline(field, sizeof(field), c-client, 1))  0) {
 
   if (r-server-limit_req_fields 
   (++fields_read  r-server-limit_req_fields)) {
  @@ -1081,7 +1081,7 @@
 this server's limit.P\n);
   return;
   }
  -/* getline returns (size of max buffer - 1) if it fills up the
  +/* ap_getline returns (size of max buffer - 1) if it fills up the
* buffer before finding the end-of-line.  This is only going to
* happen if it exceeds the configured limit for a field size.
*/
  @@ -2018,7 +2018,7 @@
   return 1;
   }
 
  -static long get_chunk_size(char *b)
  +API_EXPORT(long) ap_get_chunk_size(char *b)
   {
   long chunksize = 0;
 
  @@ -2100,14 +2100,14 @@
 
   if (r-remaining == 0) {/* Start of new chunk */
 
  -chunk_start = getline(buffer, bufsiz, r-connection-client, 0);
  +chunk_start = ap_getline(buffer, bufsiz, 
 r-connection-client, 0);
   if ((chunk_start = 0) || (chunk_start = (bufsiz - 1))
   || !ap_isxdigit(*buffer)) {
   r-connection-keepalive = -1;
   return -1;
   }
 
  -len_to_read = get_chunk_size(buffer);
  +len_to_read = ap_get_chunk_size(buffer);
 
   if (len_to_read == 0) { /* Last chunk indicated, get footers */
 

RE: 2.0.35 related: Website tweak, upgrade apache.org servers

2002-04-06 Thread William A. Rowe, Jr.

At 06:18 AM 4/6/2002, you wrote:
  From: Mladen Turk [mailto:[EMAIL PROTECTED]]
  Sent: 06 April 2002 13:53

  What bothers me is the statement the Win32 port of Apache is not as stable
  as the UNIX version.

This is not in the 2.0 part of the page.  This only goes for 1.3.  In the
2.0 section:

This version of Apache is known to work on many versions of Unix, BeOS, OS/2,
  Windows, and Netware. Because of many of the advancements in Apache 2.0, the
  initial release of Apache is expected to perform equally well on all 
 supported
  platforms

Exactly the point.  The 1.3 Win32 port is certainly not as stable or
robust as Unix... that warning [whenever 1.3 is mentioned] is still needed.

  And on the other hand what is the Win32 port? Is it Windows 95, Windows NT
  4, 2000, or XP?

I think that we can safely assume that Apache 2.0 was targetted at Windows 
NT 4 and
up.  I personally wouldn't want to have to worry about Windows 9x (for obvious
reasons I think).

Correct.  Win9x has never been 'supported' [surprize] but we have always taken
the position, if it works for you, great.  Pre-9x won't work at all, 
WinNT 4.0 SP5
or later is required for WinSock2 and some other bugs.  WinXP has a broken
afd.sys that must be patched.  Some 3rd party VPN clients are borked.  So we
can't really say This Just Works on every OS... but hopefully the easier 
query
and filing options in Bugzilla will help folks identify specific problems 
with specific
Win9x or even Netware, OS2 and Unix family kernels.

Bill

Bill





Re: [PATCH] Add libdir entries in config.layout...

2002-04-06 Thread Aaron Bannert

On Sat, Apr 06, 2002 at 06:33:38PM +0100, Pier Fumagalli wrote:
 Pier Fumagalli [EMAIL PROTECTED] wrote:
 
  We forgot to put libdir in config.layout, it's nice to have it around there
  as well (looks better when non-standard layouts are used).

committed, thanks. :)

-aaron



Difficulties with SSL and mod_proxy

2002-04-06 Thread Adam Sussman


I am having trouble with certain combinations of SSL and mod_proxy.
If I have apache 2.0 acting as an SSL enabled server, I can get it
to proxy to a remote SSL server but NOT to a remote clear text server.

So, while this configuration works:

  ProxyPass /foo/ https://otherhost/bar
  SSLProxyEngin On
  .. etc ...

This does not:

  ProxyPass /foo/ http://otherhost/bar

I seem to recall this working several releases ago.

I'm not sure where to look on this, but here are some more details:

1) Apache clearly makes the TCP connection to the downstream server
   but doesn't actualy send any data.

2) After the connection to the downstream server is made, it seems to just
   freeze waiting for input.  Here is a stacktrace taken when it has reached
   this state (this is not a segfault or anything):

0x402b00ee in __select () from /lib/i686/libc.so.6
(gdb) bt
#0  0x402b00ee in __select () from /lib/i686/libc.so.6
#1  0x40043e14 in __DTOR_END__ () at eval.c:41
#2  0x40038325 in apr_recv () at eval.c:41
#3  0x4001d256 in socket_read () at eval.c:41
#4  0x080c6f76 in core_input_filter (f=0x827ba00, b=0x827b9c0, mode=AP_MODE_READBYTES, 
block=APR_BLOCK_READ, readbytes=11) at core.c:3430
#5  0x080be000 in ap_get_brigade (next=0x827ba00, bb=0x827b9c0, 
mode=AP_MODE_READBYTES, block=APR_BLOCK_READ, readbytes=11) at util_filter.c:508
#6  0x0808adca in bio_bucket_in_read (bio=0x8227388, in=0x8281ec8 , inl=11) at 
ssl_engine_io.c:395
#7  0x080fa95d in BIO_read () at eval.c:41
Cannot access memory at address 0xb
(gdb) up 4
#4  0x080c6f76 in core_input_filter (f=0x827ba00, b=0x827b9c0, mode=AP_MODE_READBYTES, 
block=APR_BLOCK_READ, readbytes=11) at core.c:3430
3430rv = apr_bucket_read(e, str, len, block);
(gdb) print *f
$1 = {frec = 0x8195b90, ctx = 0x827b9f0, next = 0x0, r = 0x0, c = 0x823e280}


There's a little bit of wierdness here.  This is a single process httpd, not threaded.

The connection the filter is attached to is that of mod_proxy to the downstream server
which is not SUPPOSED to be SSL.  The filter stack on this connection is ssl/tls 
filter,
then core_in.  Since the downstream is not an SSL server, this seems incorrect.
Also, at this stage, no data has been sent to the downstream server, so waiting on 
input
from the connection doesn't make sense.

Any pointers here would be helpfull as I am not sure where to look.

-adam



Re: cvs commit: httpd-2.0 config.layout

2002-04-06 Thread Aaron Bannert

On Sun, Apr 07, 2002 at 01:13:17AM +0100, Pier Fumagalli wrote:
 Thanks Aaron... :) Much appreciated... Check out the --includedir as well.

I applied that one but forgot to commit. All taken care of now. I've
review the APXS patch from you and Thom, and it seems to work for me
w/ PHP4, so I'll commit that too shortly.

-aaron



Re: SSL with NameVirtualHosts?

2002-04-06 Thread Daniel Lopez


It is possible with HTTP/1.1, just not implemented
http://www.ietf.org/rfc/rfc2817.txt

  I know that the docs say it's not possible, but is it theoretically
  possible?
 
 No.  Not with SSL, at least.
 
 http://www.modssl.org/docs/2.8/ssl_faq.html#ToC47
 
 --
Cliff Woolley
[EMAIL PROTECTED]
Charlottesville, VA