Thanks Mike :)
-
Henri Gomez ___[_]____
EMAIL : [EMAIL PROTECTED] (. .)
PGP KEY : 697ECEDD ...oOOo..(_)..oOOo...
PGP Fingerprint : 9DF8 1EA8 ED53 2F39 DC9B 904A 364F 80E6
>-----Original Message-----
>From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]
>Sent: Monday, July 23, 2001 11:03 PM
>To: [EMAIL PROTECTED]
>Subject: cvs commit: jakarta-tomcat-connectors/jk/native/common
>jk_ajp13.h jk_ajp_common.c jk_ajp_common.h
>
>
>mmanders 01/07/23 14:02:43
>
> Modified: jk/native/common jk_ajp13.h jk_ajp_common.c
>jk_ajp_common.h
> Log:
> Ported fixes for AJP13 wrong response from Tomcat 3.3 branch.
>
> Revision Changes Path
> 1.5 +2 -1
>jakarta-tomcat-connectors/jk/native/common/jk_ajp13.h
>
> Index: jk_ajp13.h
> ===================================================================
> RCS file:
>/home/cvs/jakarta-tomcat-connectors/jk/native/common/jk_ajp13.h,v
> retrieving revision 1.4
> retrieving revision 1.5
> diff -u -r1.4 -r1.5
> --- jk_ajp13.h 2001/06/18 14:15:18 1.4
> +++ jk_ajp13.h 2001/07/23 21:02:43 1.5
> @@ -58,7 +58,7 @@
>
>/**************************************************************
>*************
> * Description: Experimental bi-directionl protocol
>handler. *
> * Author: Gal Shachor <[EMAIL PROTECTED]>
> *
> - * Version: $Revision: 1.4 $
> *
> + * Version: $Revision: 1.5 $
> *
>
>***************************************************************
>************/
> #ifndef JK_AJP13_H
> #define JK_AJP13_H
> @@ -78,6 +78,7 @@
> #define AJP13_READ_BUF_SIZE (8*1024)
> #define AJP13_DEF_CACHE_SZ (1)
> #define JK_INTERNAL_ERROR (-2)
> +#define JK_FATAL_ERROR (-3)
> #define AJP13_MAX_SEND_BODY_SZ (DEF_BUFFER_SZ - 6)
>
> /*
>
>
>
> 1.6 +22 -9
>jakarta-tomcat-connectors/jk/native/common/jk_ajp_common.c
>
> Index: jk_ajp_common.c
> ===================================================================
> RCS file:
>/home/cvs/jakarta-tomcat-connectors/jk/native/common/jk_ajp_common.c,v
> retrieving revision 1.5
> retrieving revision 1.6
> diff -u -r1.5 -r1.6
> --- jk_ajp_common.c 2001/06/22 08:33:56 1.5
> +++ jk_ajp_common.c 2001/07/23 21:02:43 1.6
> @@ -59,7 +59,7 @@
> * Description: common stuff for bi-directional protocols
>ajp13/ajp14. *
> * Author: Gal Shachor <[EMAIL PROTECTED]>
> *
> * Author: Henri Gomez <[EMAIL PROTECTED]>
> *
> - * Version: $Revision: 1.5 $
> *
> + * Version: $Revision: 1.6 $
> *
>
>***************************************************************
>************/
>
>
> @@ -68,8 +68,9 @@
> #include "jk_ajp13.h"
> #include "jk_ajp14.h"
> #include "jk_ajp_common.h"
> -#include "jk_connect.h"
> +#include "jk_connect.h"
>
> +
> const char *response_trans_headers[] = {
> "Content-Type",
> "Content-Language",
> @@ -801,8 +802,8 @@
> * We send here the first part of data which was sent
>previously to the
> * remote Tomcat
> */
> - if (jk_b_get_len(op->reply) > AJP_HEADER_LEN) {
> - if(!ajp_connection_tcp_send_message(ae, op->reply, l)) {
> + if (jk_b_get_len(op->post) > AJP_HEADER_LEN) {
> + if(!ajp_connection_tcp_send_message(ae, op->post, l)) {
> jk_log(l, JK_LOG_ERROR, "Error
>resending request body\n");
> return JK_FALSE;
> }
> @@ -818,7 +819,7 @@
> unsigned len = ae->left_bytes_to_send;
> if (len > AJP13_MAX_SEND_BODY_SZ)
> len = AJP13_MAX_SEND_BODY_SZ;
> - if (!
>ajp_read_into_msg_buff(ae, s, op->reply, len, l)) {
> + if (!
>ajp_read_into_msg_buff(ae, s, op->post, len, l)) {
> /* the browser stop sending
>data, no need to recover */
> op->recoverable = JK_FALSE;
> return JK_FALSE;
> @@ -838,6 +839,7 @@
> */
>
> static int ajp_process_callback(jk_msg_buf_t *msg,
> + jk_msg_buf_t *pmsg,
> ajp_endpoint_t *ae,
> jk_ws_service_t *r,
> jk_logger_t *l)
> @@ -859,7 +861,7 @@
> (const char * const
>*)res.header_values,
> res.num_headers)) {
> jk_log(l, JK_LOG_ERROR, "Error
>ajp_process_callback - start_response failed\n");
> - return JK_INTERNAL_ERROR;
> + return JK_FATAL_ERROR;
> }
> }
> break;
> @@ -869,7 +871,7 @@
> unsigned len = (unsigned)jk_b_get_int(msg);
> if(!r->write(r, jk_b_get_buff(msg) +
>jk_b_get_pos(msg), len)) {
> jk_log(l, JK_LOG_ERROR, "Error
>ajp_process_callback - write failed\n");
> - return JK_INTERNAL_ERROR;
> + return JK_FATAL_ERROR;
> }
> }
> break;
> @@ -950,7 +952,7 @@
> return JK_FALSE;
> }
>
> - rc = ajp_process_callback(op->reply, p, s, l);
> + rc = ajp_process_callback(op->reply, op->post, p, s, l);
>
> /* no more data to be sent, fine we have finish here */
> if(JK_AJP13_END_RESPONSE == rc)
> @@ -966,11 +968,18 @@
> * data to file and replay for it
> */
> op->recoverable = JK_FALSE;
> - rc = ajp_connection_tcp_send_message(p,
>op->reply, l);
> + rc = ajp_connection_tcp_send_message(p,
>op->post, l);
> if (rc < 0) {
> jk_log(l, JK_LOG_ERROR, "Error
>sending request data %d\n", rc);
> return JK_FALSE;
> }
> + } else if(JK_FATAL_ERROR == rc) {
> + /*
> + * we won't be able to gracefully recover from this so
> + * set recoverable to false and get out.
> + */
> + op->recoverable = JK_FALSE;
> + return JK_FALSE;
> } else if(rc < 0) {
> return (JK_FALSE); /* XXX error */
> }
> @@ -1006,6 +1015,10 @@
> op->reply = jk_b_new(&(p->pool));
> jk_b_set_buffer_size(op->reply, DEF_BUFFER_SZ);
> jk_b_reset(op->reply);
> +
> + op->post = jk_b_new(&(p->pool));
> + jk_b_set_buffer_size(op->post, DEF_BUFFER_SZ);
> + jk_b_reset(op->post);
>
> op->recoverable = JK_TRUE;
> op->uploadfd = -1; /* not yet
>used, later ;) */
>
>
>
> 1.5 +2 -1
>jakarta-tomcat-connectors/jk/native/common/jk_ajp_common.h
>
> Index: jk_ajp_common.h
> ===================================================================
> RCS file:
>/home/cvs/jakarta-tomcat-connectors/jk/native/common/jk_ajp_common.h,v
> retrieving revision 1.4
> retrieving revision 1.5
> diff -u -r1.4 -r1.5
> --- jk_ajp_common.h 2001/06/18 14:15:32 1.4
> +++ jk_ajp_common.h 2001/07/23 21:02:43 1.5
> @@ -59,7 +59,7 @@
> * Description: common stuff for bi-directional protocol
>ajp13/ajp14. *
> * Author: Gal Shachor <[EMAIL PROTECTED]>
> *
> * Author: Henri Gomez <[EMAIL PROTECTED]>
> *
> - * Version: $Revision: 1.4 $
> *
> + * Version: $Revision: 1.5 $
> *
>
>***************************************************************
>************/
>
> #ifndef JK_AJP_COMMON_H
> @@ -281,6 +281,7 @@
> struct ajp_operation {
> jk_msg_buf_t *request; /* original request storage */
> jk_msg_buf_t *reply; /* reply storage (chuncked
>by ajp13 */
> + jk_msg_buf_t *post; /* small post data storage area */
> int uploadfd; /* future persistant storage id */
> int recoverable; /* if exchange could be
>conducted on another TC */
> };
>
>
>
>