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/include util_md5.h
Date Fri, 09 Apr 1999 12:57:11 GMT
martin      99/04/09 05:57:11

  Modified:    src      CHANGES
               src/support htdigest.c
               src/main util_md5.c http_core.c
               src/include util_md5.h
  Log:
  EBCDIC platforms: David submitted patches for two bugs in the
  MD5 digest port for EBCDIC machines:
  a) the htdigest utility overwrote the old contents of the digest file
  b) the Content-MD5 header value (ContentDigest directive) was wrong
  when the returned file was not converted from EBCDIC, but was a
  binary (e.g., image file) in the first place.
  
  Submitted by: David McCreedy <mccreedy@us.ibm.com>
  Reviewed by: Martin Kraemer
  
  Revision  Changes    Path
  1.1303    +8 -0      apache-1.3/src/CHANGES
  
  Index: CHANGES
  ===================================================================
  RCS file: /export/home/cvs/apache-1.3/src/CHANGES,v
  retrieving revision 1.1302
  retrieving revision 1.1303
  diff -u -r1.1302 -r1.1303
  --- CHANGES	1999/04/08 22:17:45	1.1302
  +++ CHANGES	1999/04/09 12:57:04	1.1303
  @@ -1,4 +1,12 @@
   Changes with Apache 1.3.7
  +  *) EBCDIC platforms: David submitted patches for two bugs in the
  +     MD5 digest port for EBCDIC machines:
  +     a) the htdigest utility overwrote the old contents of the digest file
  +     b) the Content-MD5 header value (ContentDigest directive) was wrong
  +     when the returned file was not converted from EBCDIC, but was a
  +     binary (e.g., image file) in the first place.
  +     [David McCreedy <mccreedy@us.ibm.com>]
  +
     *) support/htpasswd now permits the password to be specified on the
        command line with the '-b' switch.  This is useful when passwords
        need to be maintained by scripts -- particularly in the Win32
  
  
  
  1.22      +5 -0      apache-1.3/src/support/htdigest.c
  
  Index: htdigest.c
  ===================================================================
  RCS file: /export/home/cvs/apache-1.3/src/support/htdigest.c,v
  retrieving revision 1.21
  retrieving revision 1.22
  diff -u -r1.21 -r1.22
  --- htdigest.c	1999/01/17 22:30:31	1.21
  +++ htdigest.c	1999/04/09 12:57:06	1.22
  @@ -19,8 +19,13 @@
   #endif
   #include "ap_md5.h"
   
  +#ifdef CHARSET_EBCDIC
  +#define LF '\n'
  +#define CR '\r'
  +#else
   #define LF 10
   #define CR 13
  +#endif /* CHARSET_EBCDIC */
   
   #define MAX_STRING_LEN 256
   
  
  
  
  1.19      +25 -0     apache-1.3/src/main/util_md5.c
  
  Index: util_md5.c
  ===================================================================
  RCS file: /export/home/cvs/apache-1.3/src/main/util_md5.c,v
  retrieving revision 1.18
  retrieving revision 1.19
  diff -u -r1.18 -r1.19
  --- util_md5.c	1999/04/08 20:56:43	1.18
  +++ util_md5.c	1999/04/09 12:57:07	1.19
  @@ -187,6 +187,29 @@
       return encodedDigest;
   }
   
  +#ifdef CHARSET_EBCDIC
  +
  +API_EXPORT(char *) ap_md5digest(pool *p, FILE *infile, int convert)
  +{
  +    AP_MD5_CTX context;
  +    unsigned char buf[1000];
  +    long length = 0;
  +    int nbytes;
  +
  +    ap_MD5Init(&context);
  +    while ((nbytes = fread(buf, 1, sizeof(buf), infile))) {
  +      length += nbytes;
  +        if (!convert) {
  +            ascii2ebcdic(buf, buf, nbytes);
  +        }
  +      ap_MD5Update(&context, buf, nbytes);
  +    }
  +    rewind(infile);
  +    return ap_md5contextTo64(p, &context);
  +}
  +
  +#else
  +
   API_EXPORT(char *) ap_md5digest(pool *p, FILE *infile)
   {
       AP_MD5_CTX context;
  @@ -202,3 +225,5 @@
       rewind(infile);
       return ap_md5contextTo64(p, &context);
   }
  +
  +#endif /* CHARSET_EBCDIC */
  
  
  
  1.258     +17 -9     apache-1.3/src/main/http_core.c
  
  Index: http_core.c
  ===================================================================
  RCS file: /export/home/cvs/apache-1.3/src/main/http_core.c,v
  retrieving revision 1.257
  retrieving revision 1.258
  diff -u -r1.257 -r1.258
  --- http_core.c	1999/04/08 20:56:43	1.257
  +++ http_core.c	1999/04/09 12:57:07	1.258
  @@ -2962,6 +2962,9 @@
   #ifdef USE_MMAP_FILES
       caddr_t mm;
   #endif
  +#ifdef CHARSET_EBCDIC
  +    int convert_flag;
  +#endif
   
       /* This handler has no use for a request body (yet), but we still
        * need to read and discard it if the client sent one.
  @@ -3044,22 +3047,27 @@
   	ap_unblock_alarms();
   #endif
   
  -	if (d->content_md5 & 1) {
  -	    ap_table_setn(r->headers_out, "Content-MD5",
  -			  ap_md5digest(r->pool, f));
  -	}
  -
  -	rangestatus = ap_set_byterange(r);
   #ifdef CHARSET_EBCDIC
  -	/* To make serving of "raw ASCII text" files easy (they serve faster 
  +	/* To make serving of "raw ASCII text" files easy (they serve faster
   	 * since they don't have to be converted from EBCDIC), a new
   	 * "magic" type prefix was invented: text/x-ascii-{plain,html,...}
   	 * If we detect one of these content types here, we simply correct
   	 * the type to the real text/{plain,html,...} type. Otherwise, we
   	 * set a flag that translation is required later on.
   	 */
  -        ap_checkconv(r);
  -#endif /*CHARSET_EBCDIC*/
  +	convert_flag = ap_checkconv(r);
  +	if (d->content_md5 & 1) {
  +	    ap_table_setn(r->headers_out, "Content-MD5",
  +			  ap_md5digest(r->pool, f, convert_flag));
  +	}
  +#else
  +	if (d->content_md5 & 1) {
  +	    ap_table_setn(r->headers_out, "Content-MD5",
  +			  ap_md5digest(r->pool, f));
  +	}
  +#endif /* CHARSET_EBCDIC */
  +
  +	rangestatus = ap_set_byterange(r);
   
   	ap_send_http_header(r);
   	
  
  
  
  1.18      +4 -0      apache-1.3/src/include/util_md5.h
  
  Index: util_md5.h
  ===================================================================
  RCS file: /export/home/cvs/apache-1.3/src/include/util_md5.h,v
  retrieving revision 1.17
  retrieving revision 1.18
  diff -u -r1.17 -r1.18
  --- util_md5.h	1999/01/01 19:04:42	1.17
  +++ util_md5.h	1999/04/09 12:57:09	1.18
  @@ -67,7 +67,11 @@
   API_EXPORT(char *) ap_md5(pool *a, const unsigned char *string);
   API_EXPORT(char *) ap_md5_binary(pool *a, const unsigned char *buf, int len);
   API_EXPORT(char *) ap_md5contextTo64(pool *p, AP_MD5_CTX * context);
  +#ifdef CHARSET_EBCDIC
  +API_EXPORT(char *) ap_md5digest(pool *p, FILE *infile, int convert);
  +#else
   API_EXPORT(char *) ap_md5digest(pool *p, FILE *infile);
  +#endif /* CHARSET_EBCDIC */
   
   #ifdef __cplusplus
   }
  
  
  

Mime
View raw message