44#define APR_WANT_STRFUNC
47#if APR_HAVE_NETINET_IN_H
48#include <netinet/in.h>
50#if APR_HAVE_ARPA_INET_H
54#define AJP13_DEF_HOST "127.0.0.1"
56#define AJP13_DEF_PORT 9009
58#define AJP13_DEF_PORT 8009
62#define AJP13_HTTPS_INDICATOR "HTTPS"
63#define AJP13_SSL_PROTOCOL_INDICATOR "SSL_PROTOCOL"
64#define AJP13_SSL_CLIENT_CERT_INDICATOR "SSL_CLIENT_CERT"
65#define AJP13_SSL_CIPHER_INDICATOR "SSL_CIPHER"
66#define AJP13_SSL_SESSION_INDICATOR "SSL_SESSION_ID"
67#define AJP13_SSL_KEY_SIZE_INDICATOR "SSL_CIPHER_USEKEYSIZE"
69#ifdef AJP_USE_HTTPD_WRAP
70#include "httpd_wrap.h"
87#define AJP_EOVERFLOW (APR_OS_START_USERERR + 1)
89#define AJP_ETOSMALL (APR_OS_START_USERERR + 2)
91#define AJP_EINVAL (APR_OS_START_USERERR + 3)
93#define AJP_EBAD_SIGNATURE (APR_OS_START_USERERR + 4)
95#define AJP_ETOBIG (APR_OS_START_USERERR + 5)
97#define AJP_ENO_HEADER (APR_OS_START_USERERR + 6)
99#define AJP_EBAD_HEADER (APR_OS_START_USERERR + 7)
101#define AJP_EBAD_MESSAGE (APR_OS_START_USERERR + 8)
103#define AJP_ELOGFAIL (APR_OS_START_USERERR + 9)
105#define AJP_EBAD_METHOD (APR_OS_START_USERERR + 10)
131#define AJP13_WS_HEADER 0x1234
132#define AJP_HEADER_LEN 4
133#define AJP_HEADER_SZ_LEN 2
134#define AJP_HEADER_SZ 6
135#define AJP_MSG_BUFFER_SZ 8192
136#define AJP_MAX_BUFFER_SZ 65536
137#define AJP13_MAX_SEND_BODY_SZ (AJP_MAX_BUFFER_SZ - AJP_HEADER_SZ)
138#define AJP_PING_PONG_SZ 128
141#define CMD_AJP13_FORWARD_REQUEST (unsigned char)2
143#define CMD_AJP13_SEND_BODY_CHUNK (unsigned char)3
145#define CMD_AJP13_SEND_HEADERS (unsigned char)4
147#define CMD_AJP13_END_RESPONSE (unsigned char)5
149#define CMD_AJP13_GET_BODY_CHUNK (unsigned char)6
151#define CMD_AJP13_SHUTDOWN (unsigned char)7
153#define CMD_AJP13_PING (unsigned char)8
155#define CMD_AJP13_CPONG (unsigned char)9
157#define CMD_AJP13_CPING (unsigned char)10
241#define ajp_msg_append_string(m, v) ajp_msg_append_string_ex(m, v, 1)
246#define ajp_msg_append_string_ascii(m, v) ajp_msg_append_string_ex(m, v, 0)
const char apr_size_t len
APR-UTIL Buckets/Bucket Brigades.
APR general purpose library routines.
APR Versioning Interface.
APR Standard Headers Support.
apr_status_t ajp_send_header(apr_socket_t *sock, request_rec *r, apr_size_t buffsize, apr_uri_t *uri, const char *secret)
apr_status_t ajp_msg_peek_uint8(ajp_msg_t *msg, apr_byte_t *rvalue)
apr_status_t ajp_parse_reuse(request_rec *r, ajp_msg_t *msg, apr_byte_t *reuse)
int ajp_parse_type(request_rec *r, ajp_msg_t *msg)
apr_status_t ajp_msg_get_uint32(ajp_msg_t *msg, apr_uint32_t *rvalue)
apr_status_t ajp_parse_data(request_rec *r, ajp_msg_t *msg, apr_uint16_t *len, char **ptr)
apr_status_t ajp_msg_create(apr_pool_t *pool, apr_size_t size, ajp_msg_t **rmsg)
apr_status_t ajp_alloc_data_msg(apr_pool_t *pool, char **ptr, apr_size_t *len, ajp_msg_t **msg)
apr_status_t ajp_msg_append_uint8(ajp_msg_t *msg, apr_byte_t value)
apr_status_t ajp_msg_get_bytes(ajp_msg_t *msg, apr_byte_t **rvalue, apr_size_t *rvalue_len)
apr_status_t ajp_msg_dump(apr_pool_t *pool, ajp_msg_t *msg, char *err, apr_size_t count, char **buf)
apr_status_t ajp_msg_reuse(ajp_msg_t *msg)
apr_status_t ajp_msg_peek_uint16(ajp_msg_t *msg, apr_uint16_t *rvalue)
apr_status_t ajp_msg_check_header(ajp_msg_t *msg, apr_size_t *len)
apr_status_t ajp_msg_log(request_rec *r, ajp_msg_t *msg, char *err)
apr_status_t ajp_msg_get_string(ajp_msg_t *msg, const char **rvalue)
apr_status_t ajp_msg_serialize_ping(ajp_msg_t *msg)
apr_status_t ajp_msg_serialize_cping(ajp_msg_t *msg)
apr_status_t ajp_msg_append_uint32(ajp_msg_t *msg, apr_uint32_t value)
apr_status_t ajp_ilink_receive(apr_socket_t *sock, ajp_msg_t *msg)
apr_status_t ajp_msg_get_uint8(ajp_msg_t *msg, apr_byte_t *rvalue)
const char * ajp_type_str(int type)
apr_status_t ajp_send_data_msg(apr_socket_t *sock, ajp_msg_t *msg, apr_size_t len)
apr_status_t ajp_msg_copy(ajp_msg_t *smsg, ajp_msg_t *dmsg)
apr_status_t ajp_msg_append_bytes(ajp_msg_t *msg, const apr_byte_t *value, apr_size_t valuelen)
apr_status_t ajp_msg_reset(ajp_msg_t *msg)
apr_status_t ajp_msg_append_uint16(ajp_msg_t *msg, apr_uint16_t value)
apr_status_t ajp_msg_end(ajp_msg_t *msg)
apr_status_t ajp_msg_get_uint16(ajp_msg_t *msg, apr_uint16_t *rvalue)
apr_status_t ajp_ilink_send(apr_socket_t *sock, ajp_msg_t *msg)
apr_status_t ajp_parse_header(request_rec *r, proxy_dir_conf *conf, ajp_msg_t *msg)
apr_status_t ajp_msg_append_string_ex(ajp_msg_t *msg, const char *value, int convert)
apr_status_t ajp_read_header(apr_socket_t *sock, request_rec *r, apr_size_t buffsize, ajp_msg_t **msg)
const unsigned char * buf
const char int apr_pool_t * pool
apr_int32_t apr_int32_t apr_int32_t err
apr_int64_t apr_interval_time_t
static unsigned char * secret
Proxy Extension Module for Apache.
static apr_OFN_ajp_handle_cping_cpong_t * ajp_handle_cping_cpong
A structure that represents the current request.
Utilities for EBCDIC conversion.