Author: rjung
Date: Wed Mar  4 16:40:38 2009
New Revision: 750070

URL: http://svn.apache.org/viewvc?rev=750070&view=rev
Log:
Initialize side_effect indicator properly.
Handle dynamic address changes and error returns
correctly in the non lb case.

Modified:
    tomcat/connectors/trunk/jk/native/common/jk_status.c

Modified: tomcat/connectors/trunk/jk/native/common/jk_status.c
URL: 
http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/native/common/jk_status.c?rev=750070&r1=750069&r2=750070&view=diff
==============================================================================
--- tomcat/connectors/trunk/jk/native/common/jk_status.c (original)
+++ tomcat/connectors/trunk/jk/native/common/jk_status.c Wed Mar  4 16:40:38 
2009
@@ -4019,6 +4019,7 @@
                        "Status worker '%s' %s lb worker '%s' sub worker '%s'",
                        w->name, "updating", lb->name, wr->name);
                 aw = (ajp_worker_t *)wr->worker->worker_private;
+                rv = 0;
                 rc = commit_member(s, p, lb, wr, aw, &rv, l);
                 if (rv & JK_STATUS_NEEDS_ADDR_PUSH) {
                     aw->addr_sequence++;
@@ -4068,11 +4069,26 @@
                        w->name, "updating", aw->name);
             if (aw->sequence != aw->s->h.sequence)
                 jk_ajp_pull(aw, JK_TRUE, l);
+            rv = 0;
             rc = commit_member(s, p, NULL, NULL, aw, &rv, l);
-            if (rv & JK_STATUS_NEEDS_PUSH) {
+            if (rv & JK_STATUS_NEEDS_ADDR_PUSH) {
+                aw->addr_sequence++;
+            }
+            if (rv & (JK_STATUS_NEEDS_PUSH | JK_STATUS_NEEDS_ADDR_PUSH)) {
                 aw->sequence++;
                 jk_ajp_push(aw, JK_TRUE, l);
             }
+            if (rc == JK_FALSE) {
+                jk_log(l, JK_LOG_ERROR,
+                       "Status worker '%s' failed updating worker '%s' (at 
least partially).",
+                       w->name, aw->name);
+                if (!strncmp("OK", p->msg, 3)) {
+                    const char *msg = "Update failed (at least partially) for 
worker '%s'";
+                    size_t size = strlen(msg) + strlen(aw->name) + 1;
+                    p->msg = jk_pool_alloc(s->pool, size);
+                    snprintf(p->msg, size, msg, aw->name);
+                }
+            }
             JK_TRACE_EXIT(l);
             return rc;
         }



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to