httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Robert S. Thau" <...@ai.mit.edu>
Subject Possible bugs in current version
Date Mon, 30 Sep 1996 17:14:55 GMT
Some things that look to me like they may be bugs:

1) Section 8.2 of the HTTP/1.1 draft states that:

     Upon receiving a method [which can carry a message body] from an
     HTTP/1.1 (or later) client, an HTTP/1.1 (or later) server MUST
     either respond with 100 (Continue) status and continue to read from
     the input stream, or respond with an error status.

   Apache/1.2-dev does not send the 100 Continue message, as far as I
   can tell (in particular by typing a direct HTTP/1.1 POST request to
   a running instance).  This is unfortunate, particularly since the
   same section specifies cases in which an HTTP/1.1 client must wait
   for the 100 Continue header before sending any message body
   (retrying a request to an HTTP/1.1 server).

2) memmove() is required by HSregex, but it isn't in the libraries on
   SunOS.  See below for one way out...

3) Configure glitches:

   The CutRule helper script has the name of 'Configuration' hardwired 
   in, which breaks "Configure -file ...".

   RULE_WANTHSREGEX seems to default off on *every* platform.  On
   some, the default is specified explicitly as "no"; on others, it is
   left to be defaulted by code as "no".  The latter case looks like
   it wants to be "yes", at least to me.

   See below for patches...


The memmove code...

#ifdef NEED_MEMMOVE
void *memmove (void *dv, const void *sv, size_t len)
{
    char *d = (char *)dv, *s = (char *)sv;
    
    /* Assumes flat address space in which comparisons work as expected */
    
    if (s >= d + len || s + len <= d)
	memcpy (d, s, len);	/* No overlap; do whatever's fastest */
    else if (d < s)
	while (len--)
	    *d++ = *s++;
    else 
	for (d += len, s += len; len > 0; --len)
	    *--d = *--s;

    return dv;
}
#endif


The configure business...

*** src.dist/CutRule	Sun Sep  8 12:14:55 1996
--- ./CutRule	Sat Sep 28 16:37:35 1996
***************
*** 2,6 ****
  # note that there is a tab and a space in the character groups.
  # Map to lowercase to make tests easier
  
! egrep "Rule[	 ]+$1[	 ]*=" Configuration|cut -d= -f2|sed 's/[	 ]//g'\
   | tr "A-Z" "a-z"
--- 2,6 ----
  # note that there is a tab and a space in the character groups.
  # Map to lowercase to make tests easier
  
! egrep "Rule[	 ]+$1[	 ]*=" $2 |cut -d= -f2|sed 's/[	 ]//g' \
   | tr "A-Z" "a-z"
*** src.dist/Configure	Sat Sep 28 03:00:17 1996
--- ./Configure	Sat Sep 28 16:59:50 1996
***************
*** 109,119 ****
  #
  # Extract the rules.
  #
! RULE_WANTHSREGEX=`./CutRule WANTHSREGEX`
! RULE_STATUS=`./CutRule STATUS`
! RULE_SOCKS=`./CutRule SOCKS`
! RULE_BADMMAP=`./CutRule BADMMAP`
! RULE_IRIXNIS=`./CutRule IRIXNIS`
  
  #
  # Now we determine the OS/Platform automagically, thanks to
--- 109,119 ----
  #
  # Extract the rules.
  #
! RULE_WANTHSREGEX=`./CutRule WANTHSREGEX $file`
! RULE_STATUS=`./CutRule STATUS $file`
! RULE_SOCKS=`./CutRule SOCKS $file`
! RULE_BADMMAP=`./CutRule BADMMAP $file`
! RULE_IRIXNIS=`./CutRule IRIXNIS $file`
  
  #
  # Now we determine the OS/Platform automagically, thanks to
***************
*** 278,284 ****
  #
  if [ "$RULE_WANTHSREGEX" = "default" ]; then
  	if [ "x$DEF_WANTHSREGEX" = "x" ]; then
! 		RULE_WANTHSREGEX=no
  	else
  		RULE_WANTHSREGEX=$DEF_WANTHSREGEX
  	fi
--- 278,284 ----
  #
  if [ "$RULE_WANTHSREGEX" = "default" ]; then
  	if [ "x$DEF_WANTHSREGEX" = "x" ]; then
! 		RULE_WANTHSREGEX=yes
  	else
  		RULE_WANTHSREGEX=$DEF_WANTHSREGEX
  	fi

Mime
View raw message