summaryrefslogtreecommitdiffstats
path: root/rubbos/app/tomcat-connectors-1.2.32-src/native/common/jk_ajp14.h
diff options
context:
space:
mode:
authorhongbotian <hongbo.tianhongbo@huawei.com>2015-11-30 02:41:33 -0500
committerhongbotian <hongbo.tianhongbo@huawei.com>2015-11-30 02:43:36 -0500
commit9401f816dd0d9d550fe98a8507224bde51c4b847 (patch)
tree94f2d7a7893a787bafdca8b5ef063ea316938874 /rubbos/app/tomcat-connectors-1.2.32-src/native/common/jk_ajp14.h
parente8ec7aa8e38a93f5b034ac74cebce5de23710317 (diff)
upload tomcat
JIRA: BOTTLENECK-7 Change-Id: I875d474869efd76ca203c30b60ebc0c3ee606d0e Signed-off-by: hongbotian <hongbo.tianhongbo@huawei.com>
Diffstat (limited to 'rubbos/app/tomcat-connectors-1.2.32-src/native/common/jk_ajp14.h')
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/native/common/jk_ajp14.h307
1 files changed, 307 insertions, 0 deletions
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/native/common/jk_ajp14.h b/rubbos/app/tomcat-connectors-1.2.32-src/native/common/jk_ajp14.h
new file mode 100644
index 00000000..58a5a4de
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/native/common/jk_ajp14.h
@@ -0,0 +1,307 @@
+/*
+ * 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: Next generation bi-directional protocol handler. *
+ * Author: Henri Gomez <hgomez@apache.org> *
+ * Version: $Revision: 466585 $ *
+ ***************************************************************************/
+#ifndef JK_AJP14_H
+#define JK_AJP14_H
+
+#include "jk_ajp_common.h"
+#include "jk_context.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif /* __cplusplus */
+
+#define AJP14_PROTO 14
+
+#define AJP14_WS_HEADER 0x1235
+#define AJP14_SW_HEADER 0x1235 /* AJP14 use now the same header in both directions */
+
+#define AJP14_DEF_HOST ("localhost")
+#define AJP14_DEF_PORT (8011)
+#define AJP14_READ_BUF_SIZE (8*1024)
+#define AJP14_DEF_RETRY_ATTEMPTS (1)
+#define AJP14_DEF_CACHE_SZ (1)
+#define AJP14_MAX_SEND_BODY_SZ (DEF_BUFFER_SZ - 6)
+#define AJP14_HEADER_LEN (4)
+#define AJP14_HEADER_SZ_LEN (2)
+
+/*
+ * Initial Login Phase (web server -> servlet engine)
+ */
+#define AJP14_LOGINIT_CMD (unsigned char)0x10
+
+/*
+ * Second Login Phase (servlet engine -> web server), md5 seed is received
+ */
+#define AJP14_LOGSEED_CMD (unsigned char)0x11
+
+/*
+ * Third Login Phase (web server -> servlet engine), md5 of seed + secret is sent
+ */
+#define AJP14_LOGCOMP_CMD (unsigned char)0x12
+
+/*
+ * Login Accepted (servlet engine -> web server)
+ */
+#define AJP14_LOGOK_CMD (unsigned char)0x13
+
+/*
+ * Login Rejected (servlet engine -> web server), will be logged
+ */
+#define AJP14_LOGNOK_CMD (unsigned char)0x14
+
+/*
+ * Context Query (web server -> servlet engine), which URI are handled by servlet engine ?
+ */
+#define AJP14_CONTEXT_QRY_CMD (unsigned char)0x15
+
+/*
+ * Context Info (servlet engine -> web server), URI handled response
+ */
+#define AJP14_CONTEXT_INFO_CMD (unsigned char)0x16
+
+/*
+ * Context Update (servlet engine -> web server), status of context changed
+ */
+#define AJP14_CONTEXT_UPDATE_CMD (unsigned char)0x17
+
+/*
+ * Servlet Engine Status (web server -> servlet engine), what's the status of the servlet engine ?
+ */
+#define AJP14_STATUS_CMD (unsigned char)0x18
+
+/*
+ * Secure Shutdown command (web server -> servlet engine), please servlet stop yourself.
+ */
+#define AJP14_SHUTDOWN_CMD (unsigned char)0x19
+
+/*
+ * Secure Shutdown command Accepted (servlet engine -> web server)
+ */
+#define AJP14_SHUTOK_CMD (unsigned char)0x1A
+
+/*
+ * Secure Shutdown Rejected (servlet engine -> web server)
+ */
+#define AJP14_SHUTNOK_CMD (unsigned char)0x1B
+
+/*
+ * Context Status (web server -> servlet engine), what's the status of the context ?
+ */
+#define AJP14_CONTEXT_STATE_CMD (unsigned char)0x1C
+
+/*
+ * Context Status Reply (servlet engine -> web server), status of context
+ */
+#define AJP14_CONTEXT_STATE_REP_CMD (unsigned char)0x1D
+
+/*
+ * Unknown Packet Reply (web server <-> servlet engine), when a packet couldn't be decoded
+ */
+#define AJP14_UNKNOW_PACKET_CMD (unsigned char)0x1E
+
+
+/*
+ * Negociation flags
+ */
+
+/*
+ * web-server want context info after login
+ */
+#define AJP14_CONTEXT_INFO_NEG 0x80000000
+
+/*
+ * web-server want context updates
+ */
+#define AJP14_CONTEXT_UPDATE_NEG 0x40000000
+
+/*
+ * web-server want compressed stream
+ */
+#define AJP14_GZIP_STREAM_NEG 0x20000000
+
+/*
+ * web-server want crypted DES56 stream with secret key
+ */
+#define AJP14_DES56_STREAM_NEG 0x10000000
+
+/*
+ * Extended info on server SSL vars
+ */
+#define AJP14_SSL_VSERVER_NEG 0x08000000
+
+/*
+ *Extended info on client SSL vars
+ */
+#define AJP14_SSL_VCLIENT_NEG 0x04000000
+
+/*
+ * Extended info on crypto SSL vars
+ */
+#define AJP14_SSL_VCRYPTO_NEG 0x02000000
+
+/*
+ * Extended info on misc SSL vars
+ */
+#define AJP14_SSL_VMISC_NEG 0x01000000
+
+/*
+ * mask of protocol supported
+ */
+#define AJP14_PROTO_SUPPORT_AJPXX_NEG 0x00FF0000
+
+/*
+ * communication could use AJP14
+ */
+#define AJP14_PROTO_SUPPORT_AJP14_NEG 0x00010000
+
+/*
+ * communication could use AJP15
+ */
+#define AJP14_PROTO_SUPPORT_AJP15_NEG 0x00020000
+
+/*
+ * communication could use AJP16
+ */
+#define AJP14_PROTO_SUPPORT_AJP16_NEG 0x00040000
+
+/*
+ * Some failure codes
+ */
+#define AJP14_BAD_KEY_ERR 0xFFFFFFFF
+#define AJP14_ENGINE_DOWN_ERR 0xFFFFFFFE
+#define AJP14_RETRY_LATER_ERR 0xFFFFFFFD
+#define AJP14_SHUT_AUTHOR_FAILED_ERR 0xFFFFFFFC
+
+/*
+ * Some status codes
+ */
+#define AJP14_CONTEXT_DOWN 0x01
+#define AJP14_CONTEXT_UP 0x02
+#define AJP14_CONTEXT_OK 0x03
+
+/*
+ * Misc defines
+ */
+#define AJP14_ENTROPY_SEED_LEN 32 /* we're using MD5 => 32 chars */
+#define AJP14_COMPUTED_KEY_LEN 32 /* we're using MD5 also */
+
+/*
+ * The login structure
+ */
+typedef struct jk_login_service jk_login_service_t;
+
+struct jk_login_service
+{
+
+ /*
+ * Pointer to web-server name
+ */
+ const char *web_server_name;
+
+ /*
+ * Pointer to servlet-engine name
+ */
+ char *servlet_engine_name;
+
+ /*
+ * Pointer to secret key
+ */
+ const char *secret_key;
+
+ /*
+ * Received entropy seed
+ */
+ char entropy[AJP14_ENTROPY_SEED_LEN + 1];
+
+ /*
+ * Computed key
+ */
+ char computed_key[AJP14_COMPUTED_KEY_LEN + 1];
+
+ /*
+ * What we want to negociate
+ */
+ unsigned long negociation;
+
+ /*
+ * What we received from servlet engine
+ */
+ unsigned long negociated;
+};
+
+/*
+ * functions defined here
+ */
+
+void ajp14_compute_md5(jk_login_service_t *s, jk_logger_t *l);
+
+int ajp14_marshal_login_init_into_msgb(jk_msg_buf_t *msg,
+ jk_login_service_t *s,
+ jk_logger_t *l);
+
+int ajp14_unmarshal_login_seed(jk_msg_buf_t *msg,
+ jk_login_service_t *s, jk_logger_t *l);
+
+int ajp14_marshal_login_comp_into_msgb(jk_msg_buf_t *msg,
+ jk_login_service_t *s,
+ jk_logger_t *l);
+
+int ajp14_unmarshal_log_ok(jk_msg_buf_t *msg,
+ jk_login_service_t *s, jk_logger_t *l);
+
+int ajp14_unmarshal_log_nok(jk_msg_buf_t *msg, jk_logger_t *l);
+
+int ajp14_marshal_shutdown_into_msgb(jk_msg_buf_t *msg,
+ jk_login_service_t *s,
+ jk_logger_t *l);
+
+int ajp14_unmarshal_shutdown_nok(jk_msg_buf_t *msg, jk_logger_t *l);
+
+int ajp14_marshal_unknown_packet_into_msgb(jk_msg_buf_t *msg,
+ jk_msg_buf_t *unk,
+ jk_logger_t *l);
+
+int ajp14_marshal_context_query_into_msgb(jk_msg_buf_t *msg,
+ char *virtual, jk_logger_t *l);
+
+int ajp14_unmarshal_context_info(jk_msg_buf_t *msg,
+ jk_context_t *context, jk_logger_t *l);
+
+int ajp14_marshal_context_state_into_msgb(jk_msg_buf_t *msg,
+ jk_context_t *context,
+ char *cname, jk_logger_t *l);
+
+int ajp14_unmarshal_context_state_reply(jk_msg_buf_t *msg,
+ jk_context_t *context,
+ jk_logger_t *l);
+
+int ajp14_unmarshal_context_update_cmd(jk_msg_buf_t *msg,
+ jk_context_t *context,
+ jk_logger_t *l);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* JK_AJP14_H */