Author: rjung
Date: Thu Aug 24 02:02:09 2006
New Revision: 434345

URL: http://svn.apache.org/viewvc?rev=434345&view=rev
Log:
Workaround patch from Jim Jagielski to disable persistent connections
in case of silent connection drops by firewalls.
Stiil needs documentation with a couple of disclaimers
(performance, resource usage, prefered solution TCP keep alive).

Modified:
    tomcat/connectors/trunk/jk/native/apache-1.3/mod_jk.c
    tomcat/connectors/trunk/jk/native/apache-2.0/mod_jk.c
    tomcat/connectors/trunk/jk/native/common/jk_ajp_common.c
    tomcat/connectors/trunk/jk/native/common/jk_global.h
    tomcat/connectors/trunk/jk/native/common/jk_service.h

Modified: tomcat/connectors/trunk/jk/native/apache-1.3/mod_jk.c
URL: 
http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/native/apache-1.3/mod_jk.c?rev=434345&r1=434344&r2=434345&view=diff
==============================================================================
--- tomcat/connectors/trunk/jk/native/apache-1.3/mod_jk.c (original)
+++ tomcat/connectors/trunk/jk/native/apache-1.3/mod_jk.c Thu Aug 24 02:02:09 
2006
@@ -500,6 +500,12 @@
         s->flush_packets = 1;
     else
         s->flush_packets = 0;
+
+    if (conf->options & JK_OPT_DISABLEREUSE)
+        s->disable_reuse = 1;
+    else
+        s->disable_reuse = 0;
+
     /* get server name */
     /* s->server_name  = (char *)(r->hostname ? r->hostname : 
r->server->server_hostname); */
     /* XXX : à la jk2 */
@@ -1538,6 +1544,9 @@
         }
         else if (!strcasecmp(w, "FlushPackets")) {
             opt = JK_OPT_FLUSHPACKETS;
+        }
+        else if (!strcasecmp(w, "DisableReuse")) {
+            opt = JK_OPT_DISABLEREUSE;
         }
         else
             return ap_pstrcat(cmd->pool, "JkOptions: Illegal option '", w,

Modified: tomcat/connectors/trunk/jk/native/apache-2.0/mod_jk.c
URL: 
http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/native/apache-2.0/mod_jk.c?rev=434345&r1=434344&r2=434345&view=diff
==============================================================================
--- tomcat/connectors/trunk/jk/native/apache-2.0/mod_jk.c (original)
+++ tomcat/connectors/trunk/jk/native/apache-2.0/mod_jk.c Thu Aug 24 02:02:09 
2006
@@ -523,6 +523,12 @@
         s->flush_packets = 1;
     else
         s->flush_packets = 0;
+
+    if (conf->options & JK_OPT_DISABLEREUSE)
+        s->disable_reuse = 1;
+    else
+        s->disable_reuse = 0;
+
     /* get server name */
     s->server_name = (char *)ap_get_server_name(r);
 
@@ -1023,7 +1029,7 @@
  */
 
 static const char *jk_set_auto_alias(cmd_parms * cmd,
-                                     void *dummy, char *directory)
+                                     void *dummy, const char *directory)
 {
     server_rec *s = cmd->server;
     jk_server_conf_t *conf =
@@ -1568,6 +1574,9 @@
         }
         else if (!strcasecmp(w, "FlushPackets")) {
             opt = JK_OPT_FLUSHPACKETS;
+        }
+        else if (!strcasecmp(w, "DisableReuse")) {
+            opt = JK_OPT_DISABLEREUSE;
         }
         else
             return apr_pstrcat(cmd->pool, "JkOptions: Illegal option '", w,

Modified: tomcat/connectors/trunk/jk/native/common/jk_ajp_common.c
URL: 
http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/native/common/jk_ajp_common.c?rev=434345&r1=434344&r2=434345&view=diff
==============================================================================
--- tomcat/connectors/trunk/jk/native/common/jk_ajp_common.c (original)
+++ tomcat/connectors/trunk/jk/native/common/jk_ajp_common.c Thu Aug 24 
02:02:09 2006
@@ -1456,12 +1456,17 @@
                 */
             jk_log(l, JK_LOG_INFO, " Protocol error: Reuse is set to false");
         }
+        else if (r->disable_reuse) {
+            ae->reuse = JK_FALSE;
+        }
+        else {
+            /* Reuse in all cases */
+            ae->reuse = JK_TRUE;
+        }
         /* Flush after the last write */
         if (r->flush && !r->flush_packets)
             r->flush(r);
 
-        /* Reuse in all cases */
-        ae->reuse = JK_TRUE;
         JK_TRACE_EXIT(l);
         return JK_AJP13_END_RESPONSE;
         break;

Modified: tomcat/connectors/trunk/jk/native/common/jk_global.h
URL: 
http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/native/common/jk_global.h?rev=434345&r1=434344&r2=434345&view=diff
==============================================================================
--- tomcat/connectors/trunk/jk/native/common/jk_global.h (original)
+++ tomcat/connectors/trunk/jk/native/common/jk_global.h Thu Aug 24 02:02:09 
2006
@@ -240,6 +240,7 @@
 /* Forward local instead remote address */
 #define JK_OPT_FWDLOCAL             0x0010
 #define JK_OPT_FLUSHPACKETS         0x0020
+#define JK_OPT_DISABLEREUSE         0x0040
 
 /* Check for EBCDIC systems */
 

Modified: tomcat/connectors/trunk/jk/native/common/jk_service.h
URL: 
http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/native/common/jk_service.h?rev=434345&r1=434344&r2=434345&view=diff
==============================================================================
--- tomcat/connectors/trunk/jk/native/common/jk_service.h (original)
+++ tomcat/connectors/trunk/jk/native/common/jk_service.h Thu Aug 24 02:02:09 
2006
@@ -256,6 +256,11 @@
     void (JK_METHOD * flush) (jk_ws_service_t *s);
 
     /*
+     * If set do not reuse socket after each full response
+     */
+    int disable_reuse;
+
+    /*
      * Add more data to log facilities.
      */
     void (JK_METHOD * add_log_items) (jk_ws_service_t *s,



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to