blob: 3e2d2ceb945dda0aad4bbafdac3899c24384ec03 [file] [log] [blame]
/*
* Copyright 1999-2004 The Apache Software Foundation
*
* Licensed 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$ *
***************************************************************************/
#ifndef JK_GLOBAL_H
#define JK_GLOBAL_H
#ifndef NETWARE
#if !defined(WIN32) && !defined(AS400)
#include "portable.h"
#else
#define HAVE_VSNPRINTF
#define HAVE_SNPRINTF
#endif
#endif
#include "jk_version.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdarg.h>
#include <errno.h>
#include <time.h>
#include <ctype.h>
#ifdef _OSD_POSIX
#include "ap_config.h"
#endif
#ifdef AS400
#include "ap_config.h"
#include "apr_strings.h"
#include "apr_lib.h"
extern char *strdup (const char *str);
#endif
#include <sys/types.h>
#include <sys/stat.h>
#ifdef WIN32
#include <windows.h>
#include <winsock.h>
#include <sys/timeb.h>
#else
#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>
#ifndef NETWARE
#include <netinet/tcp.h>
#include <arpa/inet.h>
#include <sys/un.h>
#if !defined(_OSD_POSIX) && !defined(AS400) && !defined(CYGWIN)
#include <sys/socketvar.h>
#endif
#if !defined(HPUX11) && !defined(AS400)
#include <sys/select.h>
#endif
#endif
#include <sys/time.h>
#include <sys/ioctl.h>
#endif
#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_WORKER_NAME_TAG ("worker")
#define JK_WORKER_FILE_DEF ("workers.properties")
#define JK_LOG_LEVEL_DEF ("emerg")
#define JK_TRUE (1)
#define JK_FALSE (0)
#define JK_LF (10)
#define JK_CR (13)
#define JK_SESSION_IDENTIFIER "JSESSIONID"
#define JK_PATH_SESSION_IDENTIFIER ";jsessionid"
#if defined(WIN32) || defined(NETWARE)
#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 }
#define PATH_SEPERATOR (';')
#define FILE_SEPERATOR ('\\')
#define PATH_ENV_VARIABLE ("PATH")
/* incompatible names... */
#ifndef strcasecmp
#define strcasecmp stricmp
#endif
#else
#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
/*
* RECO STATUS
*/
#define RECO_NONE 0x00
#define RECO_INITED 0x01
#define RECO_FILLED 0x02
/*
* JK options
*/
#define JK_OPT_FWDURIMASK 0x0003
#define JK_OPT_FWDURICOMPAT 0x0001
#define JK_OPT_FWDURICOMPATUNPARSED 0x0002
#define JK_OPT_FWDURIESCAPED 0x0003
#define JK_OPT_FWDURIDEFAULT JK_OPT_FWDURICOMPAT
#define JK_OPT_FWDKEYSIZE 0x0004
#define JK_OPT_FWDDIRS 0x0008
/* 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 */
#ifdef WIN32
/* For WIN32, emulate gettimeofday() using _ftime() */
#define gettimeofday(tv,tz) { struct _timeb tb; _ftime(&tb); (tv)->tv_sec = tb.time; (tv)->tv_usec = tb.millitm * 1000; }
#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
/* 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
/* XXXX There is a snprintf() and vsnprintf() in jk_util.c */
/* if those work remove the #define. */
#if defined(NETWARE) || defined(AS400)
#define USE_SPRINTF
#define USE_VSPRINTF
#endif
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* JK_GLOBAL_H */