21#define AJP_MSG_DUMP_BYTES_PER_LINE 16
24#define AJP_MSG_DUMP_PREFIX_LENGTH strlen("XXXX ")
25#define AJP_MSG_DUMP_LINE_LENGTH ((AJP_MSG_DUMP_BYTES_PER_LINE * \
27 AJP_MSG_DUMP_PREFIX_LENGTH + \
56 bl = strlen(
err) + 3 * (strlen(
" XXX=") + 20) + 1 +
66 current = *
buf + strlen(*
buf);
71 *(current - 1) =
'\0';
93 if (x > 0x20 && x < 0x7F) {
102 *(current - 1) =
'\0';
156 if (!((head[0] == 0x41 && head[1] == 0x42) ||
157 (head[0] == 0x12 && head[1] == 0x34))) {
160 "ajp_msg_check_header() got bad signature %02x%02x",
166 msglen = ((head[2] & 0xff) << 8);
167 msglen += (head[3] & 0xFF);
171 "ajp_msg_check_header() incoming message is "
398 if ((msg->
pos + 3) > msg->
len) {
423 if ((msg->
pos + 1) > msg->
len) {
446 if ((msg->
pos + 1) > msg->
len) {
467 if (msg->
pos > msg->
len) {
485 if (msg->
pos > msg->
len) {
587 "ajp_msg_copy(): destination buffer too "
static APR_INLINE int ajp_log_overflow(ajp_msg_t *msg, const char *context)
#define AJP_MSG_DUMP_BYTES_PER_LINE
#define AJP_MSG_DUMP_PREFIX_LENGTH
#define AJP_MSG_DUMP_LINE_LENGTH
const char apr_size_t len
apr_status_t ajp_msg_peek_uint8(ajp_msg_t *msg, apr_byte_t *rvalue)
apr_status_t ajp_msg_get_uint32(ajp_msg_t *msg, apr_uint32_t *rvalue)
apr_status_t ajp_msg_create(apr_pool_t *pool, apr_size_t size, ajp_msg_t **rmsg)
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_msg_get_uint8(ajp_msg_t *msg, apr_byte_t *rvalue)
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_msg_append_string_ex(ajp_msg_t *msg, const char *value, int convert)
#define AJP_MAX_BUFFER_SZ
#define AJP_EBAD_SIGNATURE
#define APLOG_USE_MODULE(foo)
#define ap_xlate_proto_to_ascii(x, y)
const unsigned char * buf
apr_file_t apr_off_t start
const char int apr_pool_t * pool
#define apr_pcalloc(p, size)
apr_int32_t apr_int32_t apr_int32_t err
A structure that represents the current request.