1
0
mirror of https://github.com/apache/httpd.git synced 2025-08-08 15:02:10 +03:00

Switch to the APR-provided APR_CHARSET_EBCDIC feature test macro.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@87460 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Jeff Trawick
2000-12-20 16:44:01 +00:00
parent efe5ac62bd
commit 351725e726
19 changed files with 53 additions and 77 deletions

View File

@@ -203,24 +203,6 @@ AC_DEFUN(APACHE_CHECK_SIGWAIT_ONE_ARG,[
fi fi
]) ])
AC_DEFUN(APACHE_EBCDIC,[
AC_CACHE_CHECK([whether system uses EBCDIC],ac_cv_ebcdic,[
AC_TRY_RUN( [
int main(void) {
return (unsigned char)'A' != (unsigned char)0xC1;
}
],[
ac_cv_ebcdic="yes"
],[
ac_cv_ebcdic="no"
],[
ac_cv_ebcdic="no"
])])
if test "$ac_cv_ebcdic" = "yes"; then
AC_DEFINE(AP_CHARSET_EBCDIC,, [Define if system uses EBCDIC])
fi
])
dnl APACHE_MODPATH_INIT(modpath) dnl APACHE_MODPATH_INIT(modpath)
AC_DEFUN(APACHE_MODPATH_INIT,[ AC_DEFUN(APACHE_MODPATH_INIT,[
current_dir=$1 current_dir=$1

View File

@@ -110,8 +110,6 @@ AC_CHECK_LIB(nsl, gethostname)
AC_CHECK_LIB(socket, socket) AC_CHECK_LIB(socket, socket)
AC_CHECK_LIB(resolv, sethostent) AC_CHECK_LIB(resolv, sethostent)
APACHE_EBCDIC
AC_ARG_WITH(optim,[ --with-optim="FLAGS" compiler optimisation flags], AC_ARG_WITH(optim,[ --with-optim="FLAGS" compiler optimisation flags],
[OPTIM="$withval"]) [OPTIM="$withval"])

View File

@@ -243,7 +243,7 @@ AP_IMPLEMENT_EXTERNAL_HOOK_RUN_FIRST(AP,ret,name,args_decl,args_use,decline)
#define AP_HAVE_RELIABLE_PIPED_LOGS TRUE #define AP_HAVE_RELIABLE_PIPED_LOGS TRUE
#endif #endif
#if defined(AP_CHARSET_EBCDIC) && !defined(APACHE_XLATE) #if APR_CHARSET_EBCDIC && !defined(APACHE_XLATE)
#define APACHE_XLATE #define APACHE_XLATE
#endif #endif

View File

@@ -517,11 +517,11 @@ struct ap_method_list_t {
#define DIR_MAGIC_TYPE "httpd/unix-directory" #define DIR_MAGIC_TYPE "httpd/unix-directory"
/* Just in case your linefeed isn't the one the other end is expecting. */ /* Just in case your linefeed isn't the one the other end is expecting. */
#ifndef AP_CHARSET_EBCDIC #if !APR_CHARSET_EBCDIC
#define LF 10 #define LF 10
#define CR 13 #define CR 13
#define CRLF "\015\012" #define CRLF "\015\012"
#else /* AP_CHARSET_EBCDIC */ #else /* APR_CHARSET_EBCDIC */
/* For platforms using the EBCDIC charset, the transition ASCII->EBCDIC is done /* For platforms using the EBCDIC charset, the transition ASCII->EBCDIC is done
* in the buff package (bread/bputs/bwrite). Everywhere else, we use * in the buff package (bread/bputs/bwrite). Everywhere else, we use
* "native EBCDIC" CR and NL characters. These are therefore * "native EBCDIC" CR and NL characters. These are therefore
@@ -531,7 +531,7 @@ struct ap_method_list_t {
#define CR '\r' #define CR '\r'
#define LF '\n' #define LF '\n'
#define CRLF "\r\n" #define CRLF "\r\n"
#endif /* AP_CHARSET_EBCDIC */ #endif /* APR_CHARSET_EBCDIC */
/* Possible values for request_rec.read_body (set by handling module): /* Possible values for request_rec.read_body (set by handling module):
* REQUEST_NO_BODY Send 413 error if message has any body * REQUEST_NO_BODY Send 413 error if message has any body

View File

@@ -72,7 +72,7 @@ extern "C" {
* @package Utilities for EBCDIC conversion * @package Utilities for EBCDIC conversion
*/ */
#ifdef AP_CHARSET_EBCDIC #if APR_CHARSET_EBCDIC
/** /**
* Setup all of the global translation handlers * Setup all of the global translation handlers
@@ -100,11 +100,11 @@ void ap_xlate_proto_from_ascii(char *buffer, apr_size_t len);
} }
#endif #endif
#else /* AP_CHARSET_EBCDIC */ #else /* APR_CHARSET_EBCDIC */
#define ap_xlate_proto_to_ascii(x,y) /* NOOP */ #define ap_xlate_proto_to_ascii(x,y) /* NOOP */
#define ap_xlate_proto_from_ascii(x,y) /* NOOP */ #define ap_xlate_proto_from_ascii(x,y) /* NOOP */
#endif /* AP_CHARSET_EBCDIC */ #endif /* APR_CHARSET_EBCDIC */
#endif /* !APACHE_UTIL_EBCDIC_H */ #endif /* !APACHE_UTIL_EBCDIC_H */

View File

@@ -291,7 +291,7 @@ static int find_code_page(request_rec *r)
*/ */
if (strncasecmp(mime_type, "text/", 5) && if (strncasecmp(mime_type, "text/", 5) &&
#ifdef AP_CHARSET_EBCDIC #if APR_CHARSET_EBCDIC
/* On an EBCDIC machine, be willing to translate mod_autoindex- /* On an EBCDIC machine, be willing to translate mod_autoindex-
* generated output. Otherwise, it doesn't look too cool. * generated output. Otherwise, it doesn't look too cool.
* *

View File

@@ -69,11 +69,11 @@
#define SIZEFMT_BYTES 0 #define SIZEFMT_BYTES 0
#define SIZEFMT_KMG 1 #define SIZEFMT_KMG 1
#define TMP_BUF_SIZE 1024 #define TMP_BUF_SIZE 1024
#ifdef AP_CHARSET_EBCDIC #if APR_CHARSET_EBCDIC
#define RAW_ASCII_CHAR(ch) apr_xlate_conv_byte(ap_hdrs_from_ascii, (unsigned char)ch) #define RAW_ASCII_CHAR(ch) apr_xlate_conv_byte(ap_hdrs_from_ascii, (unsigned char)ch)
#else /*AP_CHARSET_EBCDIC*/ #else /*APR_CHARSET_EBCDIC*/
#define RAW_ASCII_CHAR(ch) (ch) #define RAW_ASCII_CHAR(ch) (ch)
#endif /*AP_CHARSET_EBCDIC*/ #endif /*APR_CHARSET_EBCDIC*/
module AP_MODULE_DECLARE_DATA includes_module; module AP_MODULE_DECLARE_DATA includes_module;

View File

@@ -142,11 +142,11 @@ enum enctype {
#define HDR_APP (0) /* append header, for proxy_add_header() */ #define HDR_APP (0) /* append header, for proxy_add_header() */
#define HDR_REP (1) /* replace header, for proxy_add_header() */ #define HDR_REP (1) /* replace header, for proxy_add_header() */
#ifdef AP_CHARSET_EBCDIC #if APR_CHARSET_EBCDIC
#define CRLF "\r\n" #define CRLF "\r\n"
#else /*AP_CHARSET_EBCDIC*/ #else /*APR_CHARSET_EBCDIC*/
#define CRLF "\015\012" #define CRLF "\015\012"
#endif /*AP_CHARSET_EBCDIC*/ #endif /*APR_CHARSET_EBCDIC*/
#define DEFAULT_FTP_DATA_PORT 20 #define DEFAULT_FTP_DATA_PORT 20
#define DEFAULT_FTP_PORT 21 #define DEFAULT_FTP_PORT 21

View File

@@ -110,11 +110,11 @@ static int ftp_check_string(const char *x)
ch = ap_proxy_hex2c(&x[i + 1]); ch = ap_proxy_hex2c(&x[i + 1]);
i += 2; i += 2;
} }
#ifndef AP_CHARSET_EBCDIC #if !APR_CHARSET_EBCDIC
if (ch == '\015' || ch == '\012' || (ch & 0x80)) if (ch == '\015' || ch == '\012' || (ch & 0x80))
#else /*AP_CHARSET_EBCDIC*/ #else /*APR_CHARSET_EBCDIC*/
if (ch == '\r' || ch == '\n' || (os_toascii[ch] & 0x80)) if (ch == '\r' || ch == '\n' || (os_toascii[ch] & 0x80))
#endif /*AP_CHARSET_EBCDIC*/ #endif /*APR_CHARSET_EBCDIC*/
return 0; return 0;
} }
return 1; return 1;
@@ -602,9 +602,9 @@ int ap_proxy_ftp_handler(request_rec *r, ap_cache_el *c, char *url)
ap_bpush_socket(f, sock); ap_bpush_socket(f, sock);
/* shouldn't we implement telnet control options here? */ /* shouldn't we implement telnet control options here? */
#ifdef AP_CHARSET_EBCDIC #if APR_CHARSET_EBCDIC
ap_bsetflag(f, B_ASCII2EBCDIC|B_EBCDIC2ASCII, 1); ap_bsetflag(f, B_ASCII2EBCDIC|B_EBCDIC2ASCII, 1);
#endif /*AP_CHARSET_EBCDIC*/ #endif /*APR_CHARSET_EBCDIC*/
/* possible results: */ /* possible results: */
/* 120 Service ready in nnn minutes. */ /* 120 Service ready in nnn minutes. */

View File

@@ -78,7 +78,7 @@ int ap_proxy_hex2c(const char *x)
{ {
int i, ch; int i, ch;
#ifndef AP_CHARSET_EBCDIC #if !APR_CHARSET_EBCDIC
ch = x[0]; ch = x[0];
if (apr_isdigit(ch)) if (apr_isdigit(ch))
i = ch - '0'; i = ch - '0';
@@ -96,14 +96,14 @@ int ap_proxy_hex2c(const char *x)
else else
i += ch - ('a' - 10); i += ch - ('a' - 10);
return i; return i;
#else /*AP_CHARSET_EBCDIC*/ #else /*APR_CHARSET_EBCDIC*/
return (1 == sscanf(x, "%2x", &i)) ? os_toebcdic[i&0xFF] : 0; return (1 == sscanf(x, "%2x", &i)) ? os_toebcdic[i&0xFF] : 0;
#endif /*AP_CHARSET_EBCDIC*/ #endif /*APR_CHARSET_EBCDIC*/
} }
void ap_proxy_c2hex(int ch, char *x) void ap_proxy_c2hex(int ch, char *x)
{ {
#ifndef AP_CHARSET_EBCDIC #if !APR_CHARSET_EBCDIC
int i; int i;
x[0] = '%'; x[0] = '%';
@@ -118,14 +118,14 @@ void ap_proxy_c2hex(int ch, char *x)
x[2] = ('A' - 10) + i; x[2] = ('A' - 10) + i;
else else
x[2] = '0' + i; x[2] = '0' + i;
#else /*AP_CHARSET_EBCDIC*/ #else /*APR_CHARSET_EBCDIC*/
static const char ntoa[] = { "0123456789ABCDEF" }; static const char ntoa[] = { "0123456789ABCDEF" };
ch &= 0xFF; ch &= 0xFF;
x[0] = '%'; x[0] = '%';
x[1] = ntoa[(os_toascii[ch]>>4)&0x0F]; x[1] = ntoa[(os_toascii[ch]>>4)&0x0F];
x[2] = ntoa[os_toascii[ch]&0x0F]; x[2] = ntoa[os_toascii[ch]&0x0F];
x[3] = '\0'; x[3] = '\0';
#endif /*AP_CHARSET_EBCDIC*/ #endif /*APR_CHARSET_EBCDIC*/
} }
/* /*
@@ -480,7 +480,7 @@ long int ap_proxy_send_fb(proxy_completion *completion, BUFF *f, request_rec *r,
if (c) ap_cache_el_data(c, &cachefp); if (c) ap_cache_el_data(c, &cachefp);
#if 0 #if 0
#ifdef AP_CHARSET_EBCDIC #if APR_CHARSET_EBCDIC
/* The cache copy is ASCII, not EBCDIC, even for text/html) */ /* The cache copy is ASCII, not EBCDIC, even for text/html) */
ap_bsetflag(f, B_ASCII2EBCDIC|B_EBCDIC2ASCII, 0); ap_bsetflag(f, B_ASCII2EBCDIC|B_EBCDIC2ASCII, 0);
if (c != NULL && c->fp != NULL) if (c != NULL && c->fp != NULL)

View File

@@ -56,8 +56,8 @@
* University of Illinois, Urbana-Champaign. * University of Illinois, Urbana-Champaign.
*/ */
#ifdef AP_CHARSET_EBCDIC
#include "ap_config.h" #include "ap_config.h"
#if APR_CHARSET_EBCDIC
#include "ebcdic.h" #include "ebcdic.h"
/* /*
Initial Port for Apache-1.3 by <Martin.Kraemer@Mch.SNI.De> Initial Port for Apache-1.3 by <Martin.Kraemer@Mch.SNI.De>
@@ -249,4 +249,4 @@ ascii2ebcdic(unsigned char *dest, const unsigned char *srce, size_t count)
*dest++ = os_toebcdic[*srce++]; *dest++ = os_toebcdic[*srce++];
} }
} }
#endif /*AP_CHARSET_EBCDIC*/ #endif /*APR_CHARSET_EBCDIC*/

View File

@@ -56,8 +56,8 @@
* University of Illinois, Urbana-Champaign. * University of Illinois, Urbana-Champaign.
*/ */
#ifdef AP_CHARSET_EBCDIC
#include "ap_config.h" #include "ap_config.h"
#if APR_CHARSET_EBCDIC
#include "ebcdic.h" #include "ebcdic.h"
/* /*
This code does basic character mapping for IBM's TPF operating system. This code does basic character mapping for IBM's TPF operating system.
@@ -217,5 +217,5 @@ ascii2ebcdic(void *dest, const void *srce, size_t count)
*udest++ = os_toebcdic[*usrce++]; *udest++ = os_toebcdic[*usrce++];
} }
} }
#endif /*AP_CHARSET_EBCDIC*/ #endif /*APR_CHARSET_EBCDIC*/

View File

@@ -156,8 +156,8 @@ static void show_compile_settings(void)
printf(" -D PIPE_BUF=%ld\n",(long)PIPE_BUF); printf(" -D PIPE_BUF=%ld\n",(long)PIPE_BUF);
#endif #endif
#endif #endif
#ifdef AP_CHARSET_EBCDIC #if APR_CHARSET_EBCDIC
printf(" -D AP_CHARSET_EBCDIC\n"); printf(" -D APR_CHARSET_EBCDIC\n");
#endif #endif
#ifdef APACHE_XLATE #ifdef APACHE_XLATE
printf(" -D APACHE_XLATE\n"); printf(" -D APACHE_XLATE\n");
@@ -308,7 +308,7 @@ int main(int argc, const char * const argv[])
pconf = process->pconf; pconf = process->pconf;
ap_server_argv0 = process->short_name; ap_server_argv0 = process->short_name;
#ifdef AP_CHARSET_EBCDIC #if APR_CHARSET_EBCDIC
if (ap_init_ebcdic(pglobal) != APR_SUCCESS) { if (ap_init_ebcdic(pglobal) != APR_SUCCESS) {
destroy_and_exit_process(process, 1); destroy_and_exit_process(process, 1);
} }

View File

@@ -1495,11 +1495,11 @@ static char x2c(const char *what)
{ {
register char digit; register char digit;
#ifndef AP_CHARSET_EBCDIC #if !APR_CHARSET_EBCDIC
digit = ((what[0] >= 'A') ? ((what[0] & 0xdf) - 'A') + 10 : (what[0] - '0')); digit = ((what[0] >= 'A') ? ((what[0] & 0xdf) - 'A') + 10 : (what[0] - '0'));
digit *= 16; digit *= 16;
digit += (what[1] >= 'A' ? ((what[1] & 0xdf) - 'A') + 10 : (what[1] - '0')); digit += (what[1] >= 'A' ? ((what[1] & 0xdf) - 'A') + 10 : (what[1] - '0'));
#else /*AP_CHARSET_EBCDIC*/ #else /*APR_CHARSET_EBCDIC*/
char xstr[5]; char xstr[5];
xstr[0]='0'; xstr[0]='0';
xstr[1]='x'; xstr[1]='x';
@@ -1507,7 +1507,7 @@ static char x2c(const char *what)
xstr[3]=what[1]; xstr[3]=what[1];
xstr[4]='\0'; xstr[4]='\0';
digit = apr_xlate_conv_byte(ap_hdrs_from_ascii, 0xFF & strtol(xstr, NULL, 16)); digit = apr_xlate_conv_byte(ap_hdrs_from_ascii, 0xFF & strtol(xstr, NULL, 16));
#endif /*AP_CHARSET_EBCDIC*/ #endif /*APR_CHARSET_EBCDIC*/
return (digit); return (digit);
} }
@@ -1583,9 +1583,9 @@ static const char c2x_table[] = "0123456789abcdef";
static apr_inline unsigned char *c2x(unsigned what, unsigned char *where) static apr_inline unsigned char *c2x(unsigned what, unsigned char *where)
{ {
#ifdef AP_CHARSET_EBCDIC #if APR_CHARSET_EBCDIC
what = apr_xlate_conv_byte(ap_hdrs_to_ascii, (unsigned char)what); what = apr_xlate_conv_byte(ap_hdrs_to_ascii, (unsigned char)what);
#endif /*AP_CHARSET_EBCDIC*/ #endif /*APR_CHARSET_EBCDIC*/
*where++ = '%'; *where++ = '%';
*where++ = c2x_table[what >> 4]; *where++ = c2x_table[what >> 4];
*where++ = c2x_table[what & 0xf]; *where++ = c2x_table[what & 0xf];

View File

@@ -58,7 +58,7 @@
#include "ap_config.h" #include "ap_config.h"
#ifdef AP_CHARSET_EBCDIC #if APR_CHARSET_EBCDIC
#include "apr_strings.h" #include "apr_strings.h"
#include "httpd.h" #include "httpd.h"
@@ -141,4 +141,4 @@ void ap_xlate_proto_from_ascii(char *buffer, apr_size_t len)
buffer, &outbytes_left); buffer, &outbytes_left);
} }
#endif /* AP_CHARSET_EBCDIC */ #endif /* APR_CHARSET_EBCDIC */

View File

@@ -105,7 +105,7 @@ AP_DECLARE(char *) ap_md5_binary(apr_pool_t *p, const unsigned char *buf, int le
*/ */
apr_MD5Init(&my_md5); apr_MD5Init(&my_md5);
#ifdef AP_CHARSET_EBCDIC #if APR_CHARSET_EBCDIC
apr_MD5SetXlate(&my_md5, ap_hdrs_to_ascii); apr_MD5SetXlate(&my_md5, ap_hdrs_to_ascii);
#endif #endif
apr_MD5Update(&my_md5, buf, (unsigned int)length); apr_MD5Update(&my_md5, buf, (unsigned int)length);

View File

@@ -462,7 +462,7 @@ AP_DECLARE(int) ap_scan_script_header_err_core(request_rec *r, char *buffer,
/* if we see a bogus header don't ignore it. Shout and scream */ /* if we see a bogus header don't ignore it. Shout and scream */
#ifdef AP_CHARSET_EBCDIC #if APR_CHARSET_EBCDIC
/* Chances are that we received an ASCII header text instead of /* Chances are that we received an ASCII header text instead of
* the expected EBCDIC header lines. Try to auto-detect: * the expected EBCDIC header lines. Try to auto-detect:
*/ */
@@ -487,7 +487,7 @@ AP_DECLARE(int) ap_scan_script_header_err_core(request_rec *r, char *buffer,
w, &inbytes_left, w, &outbytes_left); w, &inbytes_left, w, &outbytes_left);
} }
} }
#endif /*AP_CHARSET_EBCDIC*/ #endif /*APR_CHARSET_EBCDIC*/
if (!(l = strchr(w, ':'))) { if (!(l = strchr(w, ':'))) {
char malformed[(sizeof MALFORMED_MESSAGE) + 1 char malformed[(sizeof MALFORMED_MESSAGE) + 1
+ MALFORMED_HEADER_LENGTH_TO_SHOW]; + MALFORMED_HEADER_LENGTH_TO_SHOW];

View File

@@ -92,23 +92,19 @@
#include <conio.h> #include <conio.h>
#endif #endif
#if 'A' == 0xC1 #if APR_CHARSET_EBCDIC
#define AP_CHARSET_EBCDIC
#endif
#ifdef AP_CHARSET_EBCDIC
#define LF '\n' #define LF '\n'
#define CR '\r' #define CR '\r'
#else #else
#define LF 10 #define LF 10
#define CR 13 #define CR 13
#endif /* AP_CHARSET_EBCDIC */ #endif /* APR_CHARSET_EBCDIC */
#define MAX_STRING_LEN 256 #define MAX_STRING_LEN 256
char *tn; char *tn;
apr_pool_t *cntxt; apr_pool_t *cntxt;
#ifdef AP_CHARSET_EBCDIC #if APR_CHARSET_EBCDIC
apr_xlate_t *to_ascii; apr_xlate_t *to_ascii;
#endif #endif
@@ -192,7 +188,7 @@ static void add_password(char *user, char *realm, apr_file_t *f)
sprintf(string, "%s:%s:%s", user, realm, pw); sprintf(string, "%s:%s:%s", user, realm, pw);
apr_MD5Init(&context); apr_MD5Init(&context);
#ifdef AP_CHARSET_EBCDIC #if APR_CHARSET_EBCDIC
apr_MD5SetXlate(&context, to_ascii); apr_MD5SetXlate(&context, to_ascii);
#endif #endif
apr_MD5Update(&context, (unsigned char *) string, strlen(string)); apr_MD5Update(&context, (unsigned char *) string, strlen(string));
@@ -241,7 +237,7 @@ int main(int argc, char *argv[])
atexit(apr_terminate); atexit(apr_terminate);
apr_create_pool(&cntxt, NULL); apr_create_pool(&cntxt, NULL);
#ifdef AP_CHARSET_EBCDIC #if APR_CHARSET_EBCDIC
rv = apr_xlate_open(&to_ascii, "ISO8859-1", APR_DEFAULT_CHARSET, cntxt); rv = apr_xlate_open(&to_ascii, "ISO8859-1", APR_DEFAULT_CHARSET, cntxt);
if (rv) { if (rv) {
fprintf(stderr, "apr_xlate_open(): %s (%d)\n", fprintf(stderr, "apr_xlate_open(): %s (%d)\n",

View File

@@ -104,13 +104,13 @@
#define unlink _unlink #define unlink _unlink
#endif #endif
#ifndef AP_CHARSET_EBCDIC #if !APR_CHARSET_EBCDIC
#define LF 10 #define LF 10
#define CR 13 #define CR 13
#else /*AP_CHARSET_EBCDIC*/ #else /*APR_CHARSET_EBCDIC*/
#define LF '\n' #define LF '\n'
#define CR '\r' #define CR '\r'
#endif /*AP_CHARSET_EBCDIC*/ #endif /*APR_CHARSET_EBCDIC*/
#define MAX_STRING_LEN 256 #define MAX_STRING_LEN 256
#define ALG_PLAIN 0 #define ALG_PLAIN 0
@@ -384,7 +384,7 @@ int main(int argc, char *argv[])
int noninteractive = 0; int noninteractive = 0;
int i; int i;
int args_left = 2; int args_left = 2;
#ifdef AP_CHARSET_EBCDIC #if APR_CHARSET_EBCDIC
apr_pool_t *pool; apr_pool_t *pool;
apr_status_t rv; apr_status_t rv;
apr_xlate_t *to_ascii; apr_xlate_t *to_ascii;
@@ -408,7 +408,7 @@ int main(int argc, char *argv[])
fprintf(stderr, "apr_MD5InitEBCDIC()->%d\n", rv); fprintf(stderr, "apr_MD5InitEBCDIC()->%d\n", rv);
exit(1); exit(1);
} }
#endif /*AP_CHARSET_EBCDIC*/ #endif /*APR_CHARSET_EBCDIC*/
tempfilename = NULL; tempfilename = NULL;
signal(SIGINT, (void (*)(int)) interrupted); signal(SIGINT, (void (*)(int)) interrupted);