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/