httpd-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From mar...@hyperreal.org
Subject cvs commit: apache-1.3/src/main http_protocol.c
Date Wed, 01 Dec 1999 20:45:48 GMT
martin      99/12/01 12:45:47

  Modified:    src      CHANGES
               src/main http_protocol.c
  Log:
  EBCDIC: Fix Byte Ranges for EBCDIC platforms. The necessary switch
  between implied conversion for protocol parts and configured
  conversion for document data was missing. The effect of this was that
  PDF files could not be read by Acrobat Reader (which sends long
  lists of byte ranges in each request) when the server was apache
  on ebcdic machines.
  
  Submitted by:	Oliver Reh <Oliver.Reh@FAEDV-N.Bayern.de>
  Reviewed by:	Martin Kraemer
  
  Revision  Changes    Path
  1.1466    +9 -0      apache-1.3/src/CHANGES
  
  Index: CHANGES
  ===================================================================
  RCS file: /export/home/cvs/apache-1.3/src/CHANGES,v
  retrieving revision 1.1465
  retrieving revision 1.1466
  diff -u -r1.1465 -r1.1466
  --- CHANGES	1999/12/01 20:33:58	1.1465
  +++ CHANGES	1999/12/01 20:45:29	1.1466
  @@ -1,5 +1,14 @@
   Changes with Apache 1.3.10
   
  +  *) EBCDIC: Fix Byte Ranges for EBCDIC platforms. The necessary switch
  +     between implied conversion for protocol parts and configured
  +     conversion for document data was missing. The effect of this was that
  +     PDF files could not be read by Acrobat Reader (which sends long
  +     lists of byte ranges in each request) when the server was apache
  +     on ebcdic machines.
  +     [Noted by Oliver Reh <Oliver.Reh@FAEDV-N.Bayern.de>, solved by
  +     Martin Kraemer]
  +
     *) Add IndexOptions FoldersFirst to allow fancy-indexed directory
        listings to have the subdirectories always listed at the top.
        [Ken Coar]
  
  
  
  1.281     +22 -1     apache-1.3/src/main/http_protocol.c
  
  Index: http_protocol.c
  ===================================================================
  RCS file: /export/home/cvs/apache-1.3/src/main/http_protocol.c,v
  retrieving revision 1.280
  retrieving revision 1.281
  diff -u -r1.280 -r1.281
  --- http_protocol.c	1999/11/05 15:41:03	1.280
  +++ http_protocol.c	1999/12/01 20:45:41	1.281
  @@ -212,6 +212,14 @@
   {
       long range_start, range_end;
       char *range;
  +#ifdef CHARSET_EBCDIC
  +    /* determine current setting of conversion flag,
  +     * set to ON (protocol strings MUST be converted)
  +     * and reset to original setting before returning
  +     */
  +    int convert = ap_bgetflag(r->connection->client, B_EBCDIC2ASCII);
  +    ap_bsetflag(r->connection->client, B_EBCDIC2ASCII, 1);
  +#endif /*CHARSET_EBCDIC*/
   
       if (!**r_range) {
           if (r->byterange > 1) {
  @@ -220,14 +228,23 @@
               else
                   *tlength += 4 + strlen(r->boundary) + 4;
           }
  +#ifdef CHARSET_EBCDIC
  +	if (!convert)
  +	    ap_bsetflag(r->connection->client, B_EBCDIC2ASCII, convert);
  +#endif /*CHARSET_EBCDIC*/
           return 0;
       }
   
       range = ap_getword(r->pool, r_range, ',');
  -    if (!parse_byterange(range, r->clength, &range_start, &range_end))
  +    if (!parse_byterange(range, r->clength, &range_start, &range_end)) {
  +#ifdef CHARSET_EBCDIC
  +	if (!convert)
  +	    ap_bsetflag(r->connection->client, B_EBCDIC2ASCII, convert);
  +#endif /*CHARSET_EBCDIC*/
           /* Skip this one */
           return internal_byterange(realreq, tlength, r, r_range, offset,
                                     length);
  +    }
   
       if (r->byterange > 1) {
           const char *ct = r->content_type ? r->content_type : ap_default_type(r);
  @@ -251,6 +268,10 @@
       else {
           *tlength += range_end - range_start + 1;
       }
  +#ifdef CHARSET_EBCDIC
  +    if (!convert)
  +	ap_bsetflag(r->connection->client, B_EBCDIC2ASCII, convert);
  +#endif /*CHARSET_EBCDIC*/
       return 1;
   }
   
  
  
  

Mime
View raw message