You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by tr...@locus.apache.org on 2000/05/09 22:25:02 UTC

cvs commit: apache-2.0/src/include util_ebcdic.h

trawick     00/05/09 13:25:00

  Modified:    src/main http_main.c Makefile.in rfc1413.c
  Added:       src/main util_ebcdic.c
               src/include util_ebcdic.h
  Log:
  generic EBCDIC support code, changes to rfc1413.c to use APR
  translation in its EBCDIC support
  
  Revision  Changes    Path
  1.44      +8 -1      apache-2.0/src/main/http_main.c
  
  Index: http_main.c
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/main/http_main.c,v
  retrieving revision 1.43
  retrieving revision 1.44
  diff -u -r1.43 -r1.44
  --- http_main.c	2000/05/04 04:02:17	1.43
  +++ http_main.c	2000/05/09 20:24:56	1.44
  @@ -63,6 +63,7 @@
   #include "http_log.h" 
   #include "http_config.h"
   #include "util_uri.h" 
  +#include "util_ebcdic.h"
   #include "apr_getopt.h"
   #include "ap_mpm.h"
   
  @@ -304,7 +305,13 @@
       pglobal = process->pool;
       pconf = process->pconf;
       ap_server_argv0 = process->short_name;
  -    
  +
  +#ifdef CHARSET_EBCDIC
  +    if (ap_init_ebcdic(pglobal) != APR_SUCCESS) {
  +        destroy_and_exit_process(process, 1);
  +    }
  +#endif
  +
       ap_util_uri_init();
   
       g_pHookPool=pconf;
  
  
  
  1.8       +1 -1      apache-2.0/src/main/Makefile.in
  
  Index: Makefile.in
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/main/Makefile.in,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- Makefile.in	2000/04/30 18:27:18	1.7
  +++ Makefile.in	2000/05/09 20:24:56	1.8
  @@ -6,7 +6,7 @@
       uri_delims.h test_char.h \
   	buff.c http_config.c http_core.c http_log.c http_main.c \
   	http_protocol.c http_request.c http_vhost.c util.c util_date.c \
  -	util_script.c util_uri.c util_md5.c util_cfgtree.c \
  +	util_script.c util_uri.c util_md5.c util_cfgtree.c util_ebcdic.c \
   	rfc1413.c http_connection.c iol_file.c listen.c
   
   include $(top_srcdir)/build/ltlib.mk
  
  
  
  1.17      +12 -4     apache-2.0/src/main/rfc1413.c
  
  Index: rfc1413.c
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/main/rfc1413.c,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- rfc1413.c	2000/05/09 19:29:57	1.16
  +++ rfc1413.c	2000/05/09 20:24:57	1.17
  @@ -84,6 +84,7 @@
   #include "http_log.h"		/* for aplog_error */
   #include "rfc1413.h"
   #include "http_main.h"		/* set_callback_and_alarm */
  +#include "util_ebcdic.h"
   #include "apr_network_io.h"
   #include <string.h>
   
  @@ -116,6 +117,9 @@
       char *cp;
       char buffer[RFC1413_MAXDATA + 1];
       int buflen;
  +#ifdef CHARSET_EBCDIC
  +    ap_size_t inbytes_left, outbytes_left;
  +#endif
   
       /*
        * Bind the local and remote ends of the query socket to the same
  @@ -150,11 +154,13 @@
   /* send the data */
       buflen = ap_snprintf(buffer, sizeof(buffer), "%u,%u\r\n", sav_rmt_port,
   		sav_our_port);
  -
  -    /* send query to server. Handle short write. */
   #ifdef CHARSET_EBCDIC
  -    ebcdic2ascii(&buffer, &buffer, buflen);
  +    inbytes_left = outbytes_left = buflen;
  +    ap_xlate_conv_buffer(hdrs_to_ascii, buffer, &inbytes_left,
  +                         buffer, &outbytes_left);
   #endif
  +
  +    /* send query to server. Handle short write. */
       i = 0;
       while(i < strlen(buffer)) {
           ap_ssize_t j = strlen(buffer + i);
  @@ -202,7 +208,9 @@
   
   /* RFC1413_USERLEN = 512 */
   #ifdef CHARSET_EBCDIC
  -    ascii2ebcdic(&buffer, &buffer, (size_t)i);
  +    inbytes_left = outbytes_left = i;
  +    ap_xlate_conv_buffer(hdrs_from_ascii, buffer, &inbytes_left,
  +                         buffer, &outbytes_left);
   #endif
       if (sscanf(buffer, "%u , %u : USERID :%*[^:]:%512s", &rmt_port, &our_port,
   	       user) != 3 || sav_rmt_port != rmt_port
  
  
  
  1.1                  apache-2.0/src/main/util_ebcdic.c
  
  Index: util_ebcdic.c
  ===================================================================
  /* ====================================================================
   * The Apache Software License, Version 1.1
   *
   * Copyright (c) 2000 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Apache" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   *
   * Portions of this software are based upon public domain software
   * originally written at the National Center for Supercomputing Applications,
   * University of Illinois, Urbana-Champaign.
   */
  
  #define CORE_PRIVATE
  #include "ap_config.h"
  
  #ifdef CHARSET_EBCDIC
  
  #include "httpd.h"
  #include "http_log.h"
  #include "util_ebcdic.h"
  
  ap_xlate_t *hdrs_to_ascii, *hdrs_from_ascii;
  ap_xlate_t *locale_to_ascii, *locale_from_ascii;
  
  ap_status_t ap_init_ebcdic(ap_pool_t *pool)
  {
      ap_status_t rv;
      char buf[80];
  
      rv = ap_xlate_open(&hdrs_to_ascii, "ISO8859-1", APR_DEFAULT_CHARSET, pool);
      if (rv) {
          ap_log_error(APLOG_MARK, APLOG_ERR, rv, NULL,
                       "ap_xlate_open() failed");
          return rv;
      }
  
      rv = ap_xlate_open(&hdrs_from_ascii, APR_DEFAULT_CHARSET, "ISO8859-1", pool);
      if (rv) {
          ap_log_error(APLOG_MARK, APLOG_ERR, rv, NULL,
                       "ap_xlate_open() failed");
          return rv;
      }
  
      locale_to_ascii = hdrs_to_ascii; /* TODO: "ISO8859-1" to APR_LOCALE_CHARSET */
      locale_from_ascii = hdrs_from_ascii; /* TODO: APR_LOCALE_CHARSET to "ISO8859-1" */
  
      rv = ap_MD5InitEBCDIC(hdrs_to_ascii);
      if (rv) {
          ap_log_error(APLOG_MARK, APLOG_ERR, rv, NULL,
                       "ap_MD5InitEBCDIC() failed");
          return rv;
      }
      
      return APR_SUCCESS;
  }
  
  #endif /* CHARSET_EBCDIC */
  
  
  
  1.1                  apache-2.0/src/include/util_ebcdic.h
  
  Index: util_ebcdic.h
  ===================================================================
  /* ====================================================================
   * The Apache Software License, Version 1.1
   *
   * Copyright (c) 2000 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Apache" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   *
   * Portions of this software are based upon public domain software
   * originally written at the National Center for Supercomputing Applications,
   * University of Illinois, Urbana-Champaign.
   */
  
  #ifndef APACHE_UTIL_EBCDIC_H
  #define APACHE_UTIL_EBCDIC_H
  
  #ifdef CHARSET_EBCDIC
  
  #ifdef __cplusplus
  extern "C" {
  #endif
  
  #include "apr_xlate.h"
  
  extern ap_xlate_t *hdrs_to_ascii, *hdrs_from_ascii;
  extern ap_xlate_t *locale_to_ascii, *locale_from_ascii;
  
  ap_status_t ap_init_ebcdic(ap_pool_t *);
  
  #ifdef __cplusplus
  }
  #endif
  
  #endif  /* CHARSET_EBCDIC */
      
  #endif  /* !APACHE_UTIL_EBCDIC_H */
  
  
  

Re: cvs commit: apache-2.0/src/include util_ebcdic.h

Posted by Jeff Trawick <tr...@bellsouth.net>.
> >   ap_xlate_t *hdrs_to_ascii, *hdrs_from_ascii;
> >   ap_xlate_t *locale_to_ascii, *locale_from_ascii;
> >   
> >   ap_status_t ap_init_ebcdic(ap_pool_t *pool)
> >   {
> >...
> >   extern ap_xlate_t *hdrs_to_ascii, *hdrs_from_ascii;
> >   extern ap_xlate_t *locale_to_ascii, *locale_from_ascii;
> >...
> 
> If those are going to be "extern", then they should be
> namespace-protected.
> 
> Cheers,
> -g
> 
> -- 
> Greg Stein, http://www.lyra.org/

Thanks...  I'll fix that this evening...  (ap_hdrs_to_ascii,
ap_hdrs_from_ascii, etc.)


-- 
Jeff Trawick | trawick@ibm.net | PGP public key at web site:
     http://www.geocities.com/SiliconValley/Park/9289/
          Born in Roswell... married an alien...

Re: cvs commit: apache-2.0/src/include util_ebcdic.h

Posted by Greg Stein <gs...@lyra.org>.
On 9 May 2000 trawick@locus.apache.org wrote:
> trawick     00/05/09 13:25:00
> 
>   Modified:    src/main http_main.c Makefile.in rfc1413.c
>   Added:       src/main util_ebcdic.c
>                src/include util_ebcdic.h
>   Log:
>   generic EBCDIC support code, changes to rfc1413.c to use APR
>   translation in its EBCDIC support
>...
>   #include "httpd.h"
>   #include "http_log.h"
>   #include "util_ebcdic.h"
>   
>   ap_xlate_t *hdrs_to_ascii, *hdrs_from_ascii;
>   ap_xlate_t *locale_to_ascii, *locale_from_ascii;
>   
>   ap_status_t ap_init_ebcdic(ap_pool_t *pool)
>   {
>...
>   extern ap_xlate_t *hdrs_to_ascii, *hdrs_from_ascii;
>   extern ap_xlate_t *locale_to_ascii, *locale_from_ascii;
>...

If those are going to be "extern", then they should be
namespace-protected.

Cheers,
-g

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