cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c

2001-09-14 Thread jfclere

jfclere 01/09/14 04:15:00

  Modified:jk/java/org/apache/ajp Ajp13.java
   jk/native/common jk_ajp_common.c
  Log:
  Arrange the KEY_SIZE_ATTR. (Note it is for TC4.0).
  
  Revision  ChangesPath
  1.12  +5 -2  jakarta-tomcat-connectors/jk/java/org/apache/ajp/Ajp13.java
  
  Index: Ajp13.java
  ===
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/ajp/Ajp13.java,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- Ajp13.java2001/09/13 14:29:51 1.11
  +++ Ajp13.java2001/09/14 11:15:00 1.12
  @@ -131,6 +131,7 @@
   public static final byte SC_A_SSL_CERT  = 7;
   public static final byte SC_A_SSL_CIPHER= 8;
   public static final byte SC_A_SSL_SESSION   = 9;
  +public static final byte SC_A_SSL_KEYSIZE   = 11;
   
   // Used for attributes which are not in the list above
   public static final byte SC_A_REQ_ATTRIBUTE = 10; 
  @@ -403,8 +404,6 @@
isSSL = true;
req.setAttribute("javax.servlet.request.X509Certificate",
 msg.getString());
  -req.setAttribute("javax.servlet.request.key_size",
  - new Integer (msg.getLen()));
   break;

case SC_A_SSL_CIPHER   :
  @@ -424,6 +423,10 @@
 msg.getString());
   break;
   
  + case SC_A_SSL_KEYSIZE :
  +req.setAttribute("javax.servlet.request.key_size",
  + new Integer (msg.getInt()));
  +break;
default:
if (decodeMoreHeaders(req, attributeCode, msg) != 500)
break;
  
  
  
  1.11  +3 -2  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.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- jk_ajp_common.c   2001/09/10 21:51:57 1.10
  +++ jk_ajp_common.c   2001/09/14 11:15:00 1.11
  @@ -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.10 $   *
  + * Version: $Revision: 1.11 $   *
***/
   
   
  @@ -364,8 +364,9 @@
   /*
* ssl_key_size is required by Servlet 2.3 API
* added support only in ajp14 mode
  + * JFC removed: ae->proto == AJP14_PROTO
*/
  -if ((ae->proto == AJP14_PROTO) && (s->ssl_key_size != -1)) {
  +if (s->ssl_key_size != -1) {
   if (jk_b_append_byte(msg, SC_A_SSL_KEY_SIZE) ||
   jk_b_append_int(msg, (unsigned short) s->ssl_key_size)) {
   jk_log(l, JK_LOG_ERROR, "Error ajp_marshal_into_msgb - Error appending 
the SSL key size\n");
  
  
  



RE: cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c jk_service.h jk_util.c

2001-09-11 Thread GOMEZ Henri

Hi Keith,

Nice to see that works (you were the faster here :)

What about change in mod_jk.c for Apache 1.3 and 2.0 in J-T-C.

I've worked on that and could commit if necessary.
Just to avoid duplicate commit :)

-
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, September 10, 2001 8:33 PM
>To: [EMAIL PROTECTED]
>Subject: cvs commit: jakarta-tomcat-connectors/jk/native/common
>jk_ajp_common.c jk_service.h jk_util.c
>
>
>keith   01/09/10 11:32:36
>
>  Modified:jk/java/org/apache/ajp Ajp13.java
>   jk/native/apache-1.3 mod_jk.c
>   jk/native/common jk_ajp_common.c jk_service.h jk_util.c
>  Log:
>  Port chunked encoding input support from jakarta-tomcat ajp13.
>  
>  Revision  ChangesPath
>  1.10  +19 -5 
>jakarta-tomcat-connectors/jk/java/org/apache/ajp/Ajp13.java
>  
>  Index: Ajp13.java
>  ===
>  RCS file: 
>/home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/ajp/Ajp13.java,v
>  retrieving revision 1.9
>  retrieving revision 1.10
>  diff -u -r1.9 -r1.10
>  --- Ajp13.java   2001/08/27 15:33:04 1.9
>  +++ Ajp13.java   2001/09/10 18:32:36 1.10
>  @@ -209,7 +209,9 @@
>   byte []bodyBuff = new byte[MAX_READ_SIZE];
>   
>   int blen;  // Length of current chunk of body data in buffer
>  -int pos;   // Current read position within that buffer
>  +int pos;   // Current read position within that buffer
>  +
>  +boolean end_of_stream;  // true if we've received an 
>empty packet
>   
>   public Ajp13() {
>   super();
>  @@ -231,7 +233,8 @@
>   
>   // This is a touch cargo-cultish, but I think wise.
>   blen = 0; 
>  -pos = 0;
>  +pos = 0;
>  +end_of_stream = false;
>   }
>   
>   /**
>  @@ -437,7 +440,7 @@
>   
>   // Check to see if there should be a body packet coming along
>   // immediately after
>  -if(req.getContentLength() > 0) {
>  +if(req.getContentLength() != 0) {
>   
>   /* Read present data */
>   int err = receive(inBuf);
>  @@ -522,7 +525,7 @@
>   return len;
>   }
>   
>  -// Not enough data (blen < pos + len)
>  +// Not enough data (blen < pos + len) or chunked encoded
>   int toCopy = len;
>   while(toCopy > 0) {
>   int bytesRemaining = blen - pos;
>  @@ -559,7 +562,10 @@
>   }
>   
>   // If the server returns an empty packet, assume that 
>that end of
>  -// the stream has been reached (yuck -- fix protocol??).
>  +// the stream has been reached (yuck -- fix protocol??).
>  +if (end_of_stream) {
>  +return false;
>  +}
>   
>   // Why not use outBuf??
>   inBuf.reset();
>  @@ -572,6 +578,14 @@
>   throw new IOException();
>   }
>   
>  +// No data received.
>  +if( inBuf.getLen() == 0 ) {
>  +pos=0;
>  +blen=0;
>  +end_of_stream = true;
>  +return false;
>  +}
>  +
>   blen = inBuf.peekInt();
>   pos = 0;
>   inBuf.getBytes(bodyBuff);
>  
>  
>  
>  1.14  +23 -10
>jakarta-tomcat-connectors/jk/native/apache-1.3/mod_jk.c
>  
>  Index: mod_jk.c
>  ===
>  RCS file: 
>/home/cvs/jakarta-tomcat-connectors/jk/native/apache-1.3/mod_jk.c,v
>  retrieving revision 1.13
>  retrieving revision 1.14
>  diff -u -r1.13 -r1.14
>  --- mod_jk.c 2001/09/04 13:04:03 1.13
>  +++ mod_jk.c 2001/09/10 18:32:36 1.14
>  @@ -275,15 +275,18 @@
>   if(s && s->ws_private && b && actually_read) {
>   apache_private_data_t *p = s->ws_private;
>   if(!p->read_body_started) {
>  -if(!ap_setup_client_block(p->r, 
>REQUEST_CHUNKED_DECHUNK)) {
>  -if(ap_should_client_block(p->r)) { 
>  -p->read_body_started = JK_TRUE; 
>  -}
>  +   if(ap_should_client_block(p->r)) { 
>  +p->read_body_started = JK_TRUE; 
>   }
>   }
>   
>  -if(p->read_body_started) {
>  -*actually_read = ap_get_client_block(p->r, b, len);
>  +if(p->

cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c jk_ajp_common.h

2001-09-10 Thread keith

keith   01/09/10 14:51:57

  Modified:jk/native/common jk_ajp_common.c jk_ajp_common.h
  Log:
  Corner case for chunked encoding:  if the chunk sizes and
  buffers fell such that the buffer was nearly full and the
  chunk size digits were too numerous to fit in the remaining
  space, the remaining chunks would be tossed.  A simple
  solution is to not allow quite the entire buffer to be used
  in the chunked encoding case; pad it with a reasonable
  number of bytes.
  
  I chose 12 bytes because it allows for a chunk size of 2^40,
  assuming no transfer extensions.
  
  Reported by: David Schreibman <[EMAIL PROTECTED]>
  
  Revision  ChangesPath
  1.10  +18 -8 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.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- jk_ajp_common.c   2001/09/10 18:32:36 1.9
  +++ jk_ajp_common.c   2001/09/10 21:51:57 1.10
  @@ -687,21 +687,31 @@
 unsigned len)
   {
   unsigned rdlen = 0;
  -
  -if (s->is_chunked && s->no_more_chunks) {
  - return 0;
  -}
  +unsigned padded_len = len;
   
  -while(rdlen < len) {
  +if (s->is_chunked && s->no_more_chunks) {
  + return 0;
  +}
  +if (s->is_chunked) {
  +/* Corner case: buf must be large enough to hold next
  + * chunk size (if we're on or near a chunk border).
  + * Pad the length to a reasonable value, otherwise the
  + * read fails and the remaining chunks are tossed.
  + */
  +padded_len = (len < CHUNK_BUFFER_PAD) ?
  +  len : len - CHUNK_BUFFER_PAD;
  +}
  +
  +while(rdlen < padded_len) {
   unsigned this_time = 0;
   if(!s->read(s, buf + rdlen, len - rdlen, &this_time)) {
   return -1;
   }
   
   if(0 == this_time) {
  - if (s->is_chunked) {
  - s->no_more_chunks = 1; /* read no more */
  - }
  + if (s->is_chunked) {
  + s->no_more_chunks = 1; /* read no more */
  + }
   break;
   }
   rdlen += this_time;
  
  
  
  1.7   +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.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- jk_ajp_common.h   2001/08/27 15:33:04 1.6
  +++ jk_ajp_common.h   2001/09/10 21:51:57 1.7
  @@ -204,6 +204,7 @@
   
   #define AJP_HEADER_LEN(4)
   #define AJP_HEADER_SZ_LEN (2)
  +#define CHUNK_BUFFER_PAD  (12)
   
   
   struct jk_res_data {
  
  
  



cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c jk_service.h jk_util.c

2001-09-10 Thread keith

keith   01/09/10 11:32:36

  Modified:jk/java/org/apache/ajp Ajp13.java
   jk/native/apache-1.3 mod_jk.c
   jk/native/common jk_ajp_common.c jk_service.h jk_util.c
  Log:
  Port chunked encoding input support from jakarta-tomcat ajp13.
  
  Revision  ChangesPath
  1.10  +19 -5 jakarta-tomcat-connectors/jk/java/org/apache/ajp/Ajp13.java
  
  Index: Ajp13.java
  ===
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/ajp/Ajp13.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- Ajp13.java2001/08/27 15:33:04 1.9
  +++ Ajp13.java2001/09/10 18:32:36 1.10
  @@ -209,7 +209,9 @@
   byte []bodyBuff = new byte[MAX_READ_SIZE];
   
   int blen;  // Length of current chunk of body data in buffer
  -int pos;   // Current read position within that buffer
  +int pos;   // Current read position within that buffer
  +
  +boolean end_of_stream;  // true if we've received an empty packet
   
   public Ajp13() {
super();
  @@ -231,7 +233,8 @@
   
   // This is a touch cargo-cultish, but I think wise.
   blen = 0; 
  -pos = 0;
  +pos = 0;
  +end_of_stream = false;
   }
   
   /**
  @@ -437,7 +440,7 @@
   
// Check to see if there should be a body packet coming along
// immediately after
  - if(req.getContentLength() > 0) {
  + if(req.getContentLength() != 0) {
   
/* Read present data */
int err = receive(inBuf);
  @@ -522,7 +525,7 @@
return len;
}
   
  - // Not enough data (blen < pos + len)
  + // Not enough data (blen < pos + len) or chunked encoded
int toCopy = len;
while(toCopy > 0) {
int bytesRemaining = blen - pos;
  @@ -559,7 +562,10 @@
   }
   
// If the server returns an empty packet, assume that that end of
  - // the stream has been reached (yuck -- fix protocol??).
  + // the stream has been reached (yuck -- fix protocol??).
  +if (end_of_stream) {
  +return false;
  +}
   
// Why not use outBuf??
inBuf.reset();
  @@ -572,6 +578,14 @@
throw new IOException();
}

  +// No data received.
  +if( inBuf.getLen() == 0 ) {
  +pos=0;
  +blen=0;
  +end_of_stream = true;
  +return false;
  +}
  +
blen = inBuf.peekInt();
pos = 0;
inBuf.getBytes(bodyBuff);
  
  
  
  1.14  +23 -10jakarta-tomcat-connectors/jk/native/apache-1.3/mod_jk.c
  
  Index: mod_jk.c
  ===
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/apache-1.3/mod_jk.c,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- mod_jk.c  2001/09/04 13:04:03 1.13
  +++ mod_jk.c  2001/09/10 18:32:36 1.14
  @@ -275,15 +275,18 @@
   if(s && s->ws_private && b && actually_read) {
   apache_private_data_t *p = s->ws_private;
   if(!p->read_body_started) {
  -if(!ap_setup_client_block(p->r, REQUEST_CHUNKED_DECHUNK)) {
  -if(ap_should_client_block(p->r)) { 
  -p->read_body_started = JK_TRUE; 
  -}
  +   if(ap_should_client_block(p->r)) { 
  +p->read_body_started = JK_TRUE; 
   }
   }
   
  -if(p->read_body_started) {
  -*actually_read = ap_get_client_block(p->r, b, len);
  +if(p->read_body_started) {
  +long rv;
  +if ((rv = ap_get_client_block(p->r, b, len)) < 0) {
  +*actually_read = 0;
  +} else {
  +*actually_read = (unsigned) rv;
  +}
   return JK_TRUE;
   }
   }
  @@ -457,7 +460,9 @@
   s->server_software = (char *)ap_get_server_version();
   
   s->method   = (char *)r->method;
  -s->content_length = get_content_length(r);
  +s->content_length = get_content_length(r);
  +s->is_chunked   = r->read_chunked;
  +s->no_more_chunks = 0;
   s->query_string = r->args;
   
/*
  @@ -945,10 +950,17 @@
   {   
   /* Retrieve the worker name stored by jk_translate() */
   const char *worker_name = ap_table_get(r->notes, JK_WORKER_ID);
  +int rc;
   
   if(r->proxyreq) {
   return HTTP_INTERNAL_SERVER_ERROR;
  -}
  +}
  +
  +
  +/* Set up r->read_chunked flags for chunked encoding, if present */
  +if(rc = ap_setup_client_block(r, REQUEST_CHUNKED_DECHUNK)) {
  + return rc;
  +}
 
   if(worker_name) {
   jk_server_conf_t *conf =
  @@ -978,7 +990,8 @@
   int is_recoverable_error = JK_FALSE;
 

cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c jk_ajp_common.h

2001-08-27 Thread keith

keith   01/08/27 08:33:04

  Modified:jk/doc   AJPv13.html
   jk/java/org/apache/ajp Ajp13.java RequestHandler.java
   jk/native/common jk_ajp_common.c jk_ajp_common.h
  Log:
  Add REPORT method to Ajp13 (necessary for Webdav ACL
  and Delta-V).  This has also been added to jakarta-tomcat.
  
  Revision  ChangesPath
  1.3   +2 -1  jakarta-tomcat-connectors/jk/doc/AJPv13.html
  
  Index: AJPv13.html
  ===
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/doc/AJPv13.html,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- AJPv13.html   2001/05/20 22:57:56 1.2
  +++ AJPv13.html   2001/08/27 15:33:04 1.3
  @@ -357,7 +357,8 @@
   MOVE12
   LOCK13
   UNLOCK  14
  -ACL 15
  +ACL 15
  +REPORT  16
 
 
 
  
  
  
  1.9   +2 -1  jakarta-tomcat-connectors/jk/java/org/apache/ajp/Ajp13.java
  
  Index: Ajp13.java
  ===
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/ajp/Ajp13.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- Ajp13.java2001/06/25 16:00:38 1.8
  +++ Ajp13.java2001/08/27 15:33:04 1.9
  @@ -154,7 +154,8 @@
   "MOVE",
   "LOCK",
   "UNLOCK",
  -"ACL"
  +"ACL",
  +"REPORT"
   };
   
   // id's for common request headers
  
  
  
  1.2   +2 -1  
jakarta-tomcat-connectors/jk/java/org/apache/ajp/RequestHandler.java
  
  Index: RequestHandler.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/ajp/RequestHandler.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- RequestHandler.java   2001/06/27 15:50:43 1.1
  +++ RequestHandler.java   2001/08/27 15:33:04 1.2
  @@ -148,7 +148,8 @@
   "MOVE",
   "LOCK",
   "UNLOCK",
  -"ACL"
  +"ACL",
  +"REPORT"
   };
   
   // id's for common request headers
  
  
  
  1.8   +2 -0  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.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- jk_ajp_common.c   2001/08/23 15:51:08 1.7
  +++ jk_ajp_common.c   2001/08/27 15:33:04 1.8
  @@ -130,6 +130,8 @@
*sc = SC_M_UNLOCK;
   } else if(0 == strcmp(method, "ACL")) {
*sc = SC_M_ACL;
  +} else if(0 == strcmp(method, "REPORT")) {
  + *sc = SC_M_REPORT;
   } else {
   rc = JK_FALSE;
   }
  
  
  
  1.6   +5 -3  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.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- jk_ajp_common.h   2001/07/23 21:02:43 1.5
  +++ jk_ajp_common.h   2001/08/27 15:33:04 1.6
  @@ -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.5 $   *
  + * Version: $Revision: 1.6 $   *
***/
   
   #ifndef JK_AJP_COMMON_H
  @@ -108,7 +108,8 @@
*| "MOVE"
*| "LOCK"
*| "UNLOCK"
  - *| "ACL"
  + *| "ACL"
  + *| "REPORT"
* 
*/
   #define SC_M_OPTIONS(unsigned char)1
  @@ -125,7 +126,8 @@
   #define SC_M_MOVE   (unsigned char)12
   #define SC_M_LOCK   (unsigned char)13
   #define SC_M_UNLOCK (unsigned char)14
  -#define SC_M_ACL (unsigned char)15
  +#define SC_M_ACL (unsigned char)15
  +#define SC_M_REPORT (unsigned char)16
   
   
   /*
  
  
  



cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c jk_ajp_common.h

2001-06-11 Thread hgomez

hgomez  01/06/11 23:28:08

  Modified:jk/native/common jk_ajp_common.c jk_ajp_common.h
  Log:
  Logon feature is available by callback functions
  
  Revision  ChangesPath
  1.2   +26 -17jakarta-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.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- jk_ajp_common.c   2001/06/07 14:27:41 1.1
  +++ jk_ajp_common.c   2001/06/12 06:28:07 1.2
  @@ -57,7 +57,7 @@
* Description: common stuff for bi-directional protocols ajp13/ajp14. *
* Author:  Henri Gomez <[EMAIL PROTECTED]>   *
* Author:  Gal Shachor <[EMAIL PROTECTED]>   *
  - * Version: $Revision: 1.1 $   *
  + * Version: $Revision: 1.2 $   *
***/
   
   
  @@ -496,13 +496,19 @@
* Close the endpoint (clean buf and close socket)
*/
   
  -static void ajp_close_endpoint(ajp_endpoint_t *ae)
  +void ajp_close_endpoint(ajp_endpoint_t *ae,
  +jk_logger_t*l)
   {
  + jk_log(l, JK_LOG_DEBUG, "In jk_endpoint_t::ajp_close_endpoint\n");
  +
   ajp_reset_endpoint(ae);
   jk_close_pool(&(ae->pool));
   
  -if (ae->sd > 0) 
  +if (ae->sd > 0) { 
   jk_close_socket(ae->sd);
  + jk_log(l, JK_LOG_DEBUG, "In jk_endpoint_t::ajp_close_endpoint, closed 
sd = %d\n", ae->sd);
  + ae->sd = -1; /* just to avoid twice close */
  + }
   
   free(ae);
   }
  @@ -527,7 +533,7 @@
   if (aw->ep_cache[i]) {
   ae->sd = aw->ep_cache[i]->sd;
   aw->ep_cache[i]->sd = -1;
  -ajp_close_endpoint(aw->ep_cache[i]);
  +ajp_close_endpoint(aw->ep_cache[i], l);
   aw->ep_cache[i] = NULL;
   break;
}
  @@ -538,8 +544,8 @@
   }
   
   
  -static void ajp_connect_to_endpoint(ajp_endpoint_t *ae,
  -jk_logger_t*l)
  +int ajp_connect_to_endpoint(ajp_endpoint_t *ae,
  +jk_logger_t*l)
   {
   unsigned attempt;
   
  @@ -548,24 +554,25 @@
   if(ae->sd >= 0) {
   jk_log(l, JK_LOG_DEBUG, "In jk_endpoint_t::ajp_connect_to_endpoint, 
connected sd = %d\n", ae->sd);
   
  - if (ae->proto == AJP14_PROTO) {
  - jk_log(l, JK_LOG_DEBUG, "In 
jk_endpoint_t::ajp_connect_to_endpoint, send login\n");
  - }
  + /* Check if we must execute a logon after the physical connect 
*/
  + if (ae->worker->logon != NULL)
  + return (ae->worker->logon(ae, l));
   
  - return;
  + return JK_TRUE;
   }
   }
   
   jk_log(l, JK_LOG_ERROR, "In jk_endpoint_t::ajp_connect_to_endpoint, failed 
errno = %d\n", errno);
  + return JK_FALSE;
   }
   
   /*
* Send a message to endpoint, using corresponding PROTO HEADER
*/
   
  -static int ajp_connection_tcp_send_message(ajp_endpoint_t *ae,
  -   jk_msg_buf_t   *msg,
  -   jk_logger_t*l)
  +int ajp_connection_tcp_send_message(ajp_endpoint_t *ae,
  +jk_msg_buf_t   *msg,
  +jk_logger_t*l)
   {
if (ae->proto == AJP13_PROTO) {
jk_b_end(msg, AJP13_WS_HEADER);
  @@ -591,9 +598,9 @@
* Receive a message from endpoint, checking PROTO HEADER
*/
   
  -static int ajp_connection_tcp_get_message(ajp_endpoint_t *ae,
  -  jk_msg_buf_t   *msg,
  -  jk_logger_t*l)
  +int ajp_connection_tcp_get_message(ajp_endpoint_t *ae,
  +   jk_msg_buf_t   *msg,
  +   jk_logger_t*l)
   {
   unsigned char head[AJP_HEADER_LEN];
   int   rc;
  @@ -1073,6 +1080,7 @@
   
   int ajp_validate(jk_worker_t *pThis,
jk_map_t*props,
  + jk_worker_env_t *we,
jk_logger_t *l,
 int  proto)
   {
  @@ -1118,6 +1126,7 @@
   
   int ajp_init(jk_worker_t *pThis,
jk_map_t*props,
  + jk_worker_env_t *we,
jk_logger_t *l,
 int  proto)
   {
  @@ -1178,7 +1187,7 @@
   unsigned i;
   for(i = 0 ; i < aw->ep_cache_sz ; i++) {
   if(aw->ep_ca

<    1   2