diff options
Diffstat (limited to 'rubbos/app/tomcat-connectors-1.2.32-src/native/common/jk_global.h')
-rw-r--r-- | rubbos/app/tomcat-connectors-1.2.32-src/native/common/jk_global.h | 405 |
1 files changed, 405 insertions, 0 deletions
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/native/common/jk_global.h b/rubbos/app/tomcat-connectors-1.2.32-src/native/common/jk_global.h new file mode 100644 index 00000000..c041b49a --- /dev/null +++ b/rubbos/app/tomcat-connectors-1.2.32-src/native/common/jk_global.h @@ -0,0 +1,405 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/*************************************************************************** + * Description: Global definitions and include files that should exist * + * anywhere * + * Author: Gal Shachor <shachor@il.ibm.com> * + * Version: $Revision: 1126561 $ * + ***************************************************************************/ + +#ifndef JK_GLOBAL_H +#define JK_GLOBAL_H + +#if defined(HAVE_CONFIG_H) +#include "config.h" +#endif + +#if defined(WIN32) + +/* Ignore most warnings (back down to /W3) for poorly constructed headers + */ +#if defined(_MSC_VER) && _MSC_VER >= 1200 +#pragma warning(push, 3) +#endif + +/* disable or reduce the frequency of... + * C4057: indirection to slightly different base types + * C4075: slight indirection changes (unsigned short* vs short[]) + * C4100: unreferenced formal parameter + * C4127: conditional expression is constant + * C4163: '_rotl64' : not available as an intrinsic function + * C4201: nonstandard extension nameless struct/unions + * C4244: int to char/short - precision loss + * C4514: unreferenced inline function removed + */ +#pragma warning(disable: 4100 4127 4163 4201 4514; once: 4057 4075 4244) + +/* Ignore Microsoft's interpretation of secure development + * and the POSIX string handling API + */ +#if defined(_MSC_VER) && _MSC_VER >= 1400 +#ifndef _CRT_SECURE_NO_DEPRECATE +#define _CRT_SECURE_NO_DEPRECATE +#endif +#pragma warning(disable: 4996) +#endif /* defined(_MSC_VER) && _MSC_VER >= 1400 */ +#endif /* defined(WIN32) */ + +#include "jk_version.h" + +#ifdef HAVE_APR +#include "apr_lib.h" +#include "apr_strings.h" +#endif + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <stdarg.h> +#include <errno.h> +#include <time.h> +#include <ctype.h> +#include <limits.h> + +#ifdef _OSD_POSIX +#include "ap_config.h" +#endif + +#ifdef AS400 +#include "ap_config.h" +extern char *strdup(const char *str); +#endif + +#include <sys/types.h> +#include <sys/stat.h> + +#ifdef WIN32 +#ifndef _WINDOWS_ +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#ifndef _WIN32_WINNT + +/* Restrict the server to a subset of Windows NT 4.0 header files by default + */ +#define _WIN32_WINNT 0x0500 +#endif +#ifndef NOUSER +#define NOUSER +#endif +#ifndef NOMCX +#define NOMCX +#endif +#ifndef NOIME +#define NOIME +#endif +#include <windows.h> +/* + * Add a _very_few_ declarations missing from the restricted set of headers + * (If this list becomes extensive, re-enable the required headers above!) + * winsock headers were excluded by WIN32_LEAN_AND_MEAN, so include them now + */ +#include <winsock2.h> +#include <mswsock.h> +#include <mstcpip.h> +#endif /* _WINDOWS_ */ +#ifdef _WINDOWS_ +#ifndef SIO_RCVALL +#include <mstcpip.h> +#endif +#endif +#include <sys/timeb.h> +#include <process.h> +#include <io.h> +#include <ws2tcpip.h> +#else /* WIN32 */ +#include <unistd.h> +#if defined(NETWARE) && defined(__NOVELL_LIBC__) +#include <novsock2.h> +#define __sys_socket_h__ +#define __netdb_h__ +#define __netinet_in_h__ +#define HAVE_VSNPRINTF +#define HAVE_SNPRINTF +#endif +#include <netdb.h> +#include <netinet/in.h> +#include <sys/socket.h> +#include <fcntl.h> +#ifdef NETWARE +#ifndef _SOCKLEN_T +#define _SOCKLEN_T +typedef int socklen_t; +#endif +#else +#include <netinet/tcp.h> +#include <arpa/inet.h> +#include <sys/un.h> +#if !defined(_OSD_POSIX) && !defined(AS400) && !defined(__CYGWIN__) && !defined(HPUX11) +#include <sys/socketvar.h> +#endif +#if !defined(HPUX11) && !defined(AS400) +#include <sys/select.h> +#endif +#endif /* NETWARE */ + +#include <sys/time.h> +#include <sys/ioctl.h> +#endif /* WIN32 */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +#define JK_WORKER_FILE_TAG ("worker_file") +#define JK_MOUNT_FILE_TAG ("worker_mount_file") +#define JK_LOG_LEVEL_TAG ("log_level") +#define JK_LOG_FILE_TAG ("log_file") +#define JK_SHM_FILE_TAG ("shm_file") +#define JK_WORKER_NAME_TAG ("worker") + +#define JK_WORKER_FILE_DEF ("workers.properties") + +/* Urimap reload check time. Use 60 seconds by default. + */ +#define JK_URIMAP_DEF_RELOAD (60) + +#define JK_TRUE (1) +#define JK_FALSE (0) + +#define JK_UNSET (-1) + +#define JK_LF (10) +#define JK_CR (13) + +#define JK_SESSION_IDENTIFIER "JSESSIONID" +#define JK_PATH_SESSION_IDENTIFIER ";jsessionid" + +#if defined(WIN32) || defined(NETWARE) +#ifdef __GNUC__ +#define JK_METHOD +#define C_LEVEL_TRY_START +#define C_LEVEL_TRY_END +#define C_LEVEL_FINALLY_START +#define C_LEVEL_FINALLY_END +#else +#define JK_METHOD __stdcall +#define C_LEVEL_TRY_START __try { +#define C_LEVEL_TRY_END } +#define C_LEVEL_FINALLY_START __finally { +#define C_LEVEL_FINALLY_END } +#endif +#define PATH_SEPERATOR (';') +#define FILE_SEPERATOR ('\\') +#define PATH_ENV_VARIABLE ("PATH") + + /* incompatible names... */ +#ifndef strcasecmp +#define strcasecmp stricmp +#endif +#else /* defined(WIN32) || defined(NETWARE) */ +#define JK_METHOD +#define C_LEVEL_TRY_START +#define C_LEVEL_TRY_END +#define C_LEVEL_FINALLY_START +#define C_LEVEL_FINALLY_END +#define PATH_SEPERATOR (':') +#define FILE_SEPERATOR ('/') +#define PATH_ENV_VARIABLE ("LD_LIBRARY_PATH") +#endif /* defined(WIN32) || defined(NETWARE) */ + +/* HTTP Error codes + */ + +#define JK_HTTP_OK 200 +#define JK_HTTP_BAD_REQUEST 400 +#define JK_HTTP_UNAUTHORIZED 401 +#define JK_HTTP_REQUEST_TOO_LARGE 413 +#define JK_HTTP_SERVER_ERROR 500 +#define JK_HTTP_NOT_IMPLEMENTED 501 +#define JK_HTTP_BAD_GATEWAY 502 +#define JK_HTTP_SERVER_BUSY 503 +#define JK_HTTP_GATEWAY_TIME_OUT 504 + + +/* + * RECO STATUS + */ + +#define RECO_NONE 0x00 +#define RECO_INITED 0x01 +#define RECO_FILLED 0x02 + +/* + * JK options + */ + +#define JK_OPT_FWDURIMASK 0x0007 + +#define JK_OPT_FWDURICOMPAT 0x0001 +#define JK_OPT_FWDURICOMPATUNPARSED 0x0002 +#define JK_OPT_FWDURIESCAPED 0x0003 +#define JK_OPT_FWDURIPROXY 0x0004 + +#define JK_OPT_FWDURIDEFAULT JK_OPT_FWDURIPROXY + +#define JK_OPT_FWDDIRS 0x0008 +/* Forward local instead remote address */ +#define JK_OPT_FWDLOCAL 0x0010 +#define JK_OPT_FLUSHPACKETS 0x0020 +#define JK_OPT_FLUSHEADER 0x0040 +#define JK_OPT_DISABLEREUSE 0x0080 +#define JK_OPT_FWDCERTCHAIN 0x0100 +#define JK_OPT_FWDKEYSIZE 0x0200 +#define JK_OPT_REJECTUNSAFE 0x0400 + +#define JK_OPT_DEFAULT (JK_OPT_FWDURIDEFAULT | JK_OPT_FWDKEYSIZE) + +/* Check for EBCDIC systems */ + +/* Check for Apache 2.0 running on an EBCDIC system */ +#if APR_CHARSET_EBCDIC + +#include <util_ebcdic.h> + +#define USE_CHARSET_EBCDIC +#define jk_xlate_to_ascii(b, l) ap_xlate_proto_to_ascii(b, l) +#define jk_xlate_from_ascii(b, l) ap_xlate_proto_from_ascii(b, l) + +#else /* APR_CHARSET_EBCDIC */ + +/* Check for Apache 1.3 running on an EBCDIC system */ +#ifdef CHARSET_EBCDIC + +#define USE_CHARSET_EBCDIC +#define jk_xlate_to_ascii(b, l) ebcdic2ascii(b, b, l) +#define jk_xlate_from_ascii(b, l) ascii2ebcdic(b, b, l) + +#else /* CHARSET_EBCDIC */ + +/* We're in on an ASCII system */ + +#define jk_xlate_to_ascii(b, l) /* NOOP */ +#define jk_xlate_from_ascii(b, l) /* NOOP */ + +#endif /* CHARSET_EBCDIC */ + +#endif /* APR_CHARSET_EBCDIC */ + +/* on i5/OS V5R4 HTTP/APR APIs and Datas are in UTF */ +#if defined(AS400_UTF8) +#undef USE_CHARSET_EBCDIC +#define jk_xlate_to_ascii(b, l) /* NOOP */ +#define jk_xlate_from_ascii(b, l) /* NOOP */ +#endif + +/* jk_uint32_t defines a four byte word */ +/* jk_uint64_t defines a eight byte word */ +#if defined (WIN32) + typedef unsigned int jk_uint32_t; +#define JK_UINT32_T_FMT "u" +#define JK_UINT32_T_HEX_FMT "x" + typedef unsigned __int64 jk_uint64_t; +#define JK_UINT64_T_FMT "I64u" +#define JK_UINT64_T_HEX_FMT "I64x" +#define JK_PID_T_FMT "d" +#define JK_PTHREAD_T_FMT "d" +#elif defined(AS400) || defined(NETWARE) + typedef unsigned int jk_uint32_t; +#define JK_UINT32_T_FMT "u" +#define JK_UINT32_T_HEX_FMT "x" + typedef unsigned long long jk_uint64_t; +#define JK_UINT64_T_FMT "llu" +#define JK_UINT64_T_HEX_FMT "llx" +#define JK_PID_T_FMT "d" +#define JK_PTHREAD_T_FMT "d" +#else +#include "jk_types.h" +#endif + +#define JK_UINT32_T_FMT_LEN (sizeof(JK_UINT32_T_FMT) - 1) +#define JK_UINT32_T_HEX_FMT_LEN (sizeof(JK_UINT32_T_HEX_FMT) - 1) +#define JK_UINT64_T_FMT_LEN (sizeof(JK_UINT64_T_FMT) - 1) +#define JK_UINT64_T_HEX_FMT_LEN (sizeof(JK_UINT64_T_HEX_FMT) - 1) + +#ifdef WIN32 +/* For WIN32, emulate gettimeofday() using _ftime() */ +#define gettimeofday(tv, tz) { struct _timeb tb; _ftime(&tb); \ + (tv)->tv_sec = (long)tb.time; \ + (tv)->tv_usec = tb.millitm * 1000; } +#define HAVE_VSNPRINTF +#define HAVE_SNPRINTF +#ifdef HAVE_APR +#define snprintf apr_snprintf +#define vsnprintf apr_vsnprintf +#else +/* define snprint to match windows version */ +#define snprintf _snprintf +#define vsnprintf _vsnprintf +#endif +#endif /* WIN32" */ + +/* Use apr snprintf() and vsnprintf() when needed */ +#if defined(HAVE_APR) +#if !defined(HAVE_SNPRINTF) +#define snprintf apr_snprintf +#endif +#if !defined(HAVE_VSNPRINTF) +#define vsnprintf apr_vsnprintf +#endif +#endif + +/* Use ap snprintf() and vsnprintf() when needed */ +#if !defined(HAVE_APR) +#if !defined(HAVE_SNPRINTF) +#define snprintf ap_snprintf +#endif +#if !defined(HAVE_VSNPRINTF) +#define vsnprintf ap_vsnprintf +#endif +#endif + +#if defined(WIN32) || (defined(NETWARE) && defined(__NOVELL_LIBC__)) +typedef SOCKET jk_sock_t; +#define IS_VALID_SOCKET(s) ((s) != INVALID_SOCKET) +#define JK_INVALID_SOCKET INVALID_SOCKET +#else +typedef int jk_sock_t; +#define IS_VALID_SOCKET(s) ((s) > 0) +#define JK_INVALID_SOCKET (-1) +#endif + +#ifdef NETWARE +#ifdef __NOVELL_LIBC__ +#define MAX_PATH 511 +#else +#define MAX_PATH 255 +#endif +#endif + +#ifdef AS400_UTF8 +#define strcasecmp(a,b) apr_strnatcasecmp(a,b) +#endif + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* JK_GLOBAL_H */ + |