You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by rj...@apache.org on 2014/03/31 21:00:34 UTC

svn commit: r1583399 - in /tomcat/jk/trunk: native/common/jk_ajp_common.c native/common/jk_connect.c native/common/jk_connect.h native/common/jk_status.c xdocs/miscellaneous/changelog.xml

Author: rjung
Date: Mon Mar 31 19:00:34 2014
New Revision: 1583399

URL: http://svn.apache.org/r1583399
Log:
Fix status worker display of worker IP address
after name or port was changed.

Use a function to copy jk_sockaddr_t instead of
memcpy, because ipaddr_ptr member must be corrected.

Modified:
    tomcat/jk/trunk/native/common/jk_ajp_common.c
    tomcat/jk/trunk/native/common/jk_connect.c
    tomcat/jk/trunk/native/common/jk_connect.h
    tomcat/jk/trunk/native/common/jk_status.c
    tomcat/jk/trunk/xdocs/miscellaneous/changelog.xml

Modified: tomcat/jk/trunk/native/common/jk_ajp_common.c
URL: http://svn.apache.org/viewvc/tomcat/jk/trunk/native/common/jk_ajp_common.c?rev=1583399&r1=1583398&r2=1583399&view=diff
==============================================================================
--- tomcat/jk/trunk/native/common/jk_ajp_common.c (original)
+++ tomcat/jk/trunk/native/common/jk_ajp_common.c Mon Mar 31 19:00:34 2014
@@ -1117,7 +1117,7 @@ void jk_ajp_pull(ajp_worker_t * aw, int 
                     aw->s->connected--;
                 }
             }
-            memcpy(&(aw->worker_inet_addr), &inet_addr, sizeof(inet_addr));
+            jk_clone_sockaddr(&(aw->worker_inet_addr), &inet_addr);
             JK_LEAVE_CS(&aw->cs);
         }
     }

Modified: tomcat/jk/trunk/native/common/jk_connect.c
URL: http://svn.apache.org/viewvc/tomcat/jk/trunk/native/common/jk_connect.c?rev=1583399&r1=1583398&r2=1583399&view=diff
==============================================================================
--- tomcat/jk/trunk/native/common/jk_connect.c (original)
+++ tomcat/jk/trunk/native/common/jk_connect.c Mon Mar 31 19:00:34 2014
@@ -328,6 +328,20 @@ in_addr_t jk_inet_addr(const char * addr
 
 #endif
 
+/** Clone a jk_sockaddr_t
+ * @param out     The source structure
+ * @param in      The target structure
+ */
+void jk_clone_sockaddr(jk_sockaddr_t *out, jk_sockaddr_t *in)
+{
+    memcpy(out, in, sizeof(*in));
+    /* The ipaddr_ptr member points to memory inside the struct.
+     * Do not copy the pointer but use the same offset relative
+     * to the struct start
+     */
+    out->ipaddr_ptr = (void *)out + (in->ipaddr_ptr - (void *)in);
+}
+
 /** Resolve the host IP
  * @param host     host or ip address
  * @param port     port

Modified: tomcat/jk/trunk/native/common/jk_connect.h
URL: http://svn.apache.org/viewvc/tomcat/jk/trunk/native/common/jk_connect.h?rev=1583399&r1=1583398&r2=1583399&view=diff
==============================================================================
--- tomcat/jk/trunk/native/common/jk_connect.h (original)
+++ tomcat/jk/trunk/native/common/jk_connect.h Mon Mar 31 19:00:34 2014
@@ -38,6 +38,8 @@ extern "C"
 
 #define JK_SOCKET_EOF      (-2)
 
+void jk_clone_sockaddr(jk_sockaddr_t *out, jk_sockaddr_t *in);
+
 int jk_resolve(const char *host, int port, jk_sockaddr_t *rc, void *pool,
                int prefer_ipv6, jk_logger_t *l);
 

Modified: tomcat/jk/trunk/native/common/jk_status.c
URL: http://svn.apache.org/viewvc/tomcat/jk/trunk/native/common/jk_status.c?rev=1583399&r1=1583398&r2=1583399&view=diff
==============================================================================
--- tomcat/jk/trunk/native/common/jk_status.c (original)
+++ tomcat/jk/trunk/native/common/jk_status.c Mon Mar 31 19:00:34 2014
@@ -3390,7 +3390,7 @@ static int commit_member(jk_ws_service_t
             /* This is not atomic and not thread safe */
             aw->port = port;
             strncpy(aw->host, host, JK_SHM_STR_SIZ);
-            memcpy(&(aw->worker_inet_addr), &inet_addr, sizeof(inet_addr));
+            jk_clone_sockaddr(&(aw->worker_inet_addr), &inet_addr);
             *side_effect |= JK_STATUS_NEEDS_PUSH | JK_STATUS_NEEDS_ADDR_PUSH;
         }
     }

Modified: tomcat/jk/trunk/xdocs/miscellaneous/changelog.xml
URL: http://svn.apache.org/viewvc/tomcat/jk/trunk/xdocs/miscellaneous/changelog.xml?rev=1583399&r1=1583398&r2=1583399&view=diff
==============================================================================
--- tomcat/jk/trunk/xdocs/miscellaneous/changelog.xml (original)
+++ tomcat/jk/trunk/xdocs/miscellaneous/changelog.xml Mon Mar 31 19:00:34 2014
@@ -40,6 +40,16 @@
   new documentation project for JK was started.
   </p>
 </section>
+<section name="Changes between 1.2.39 and 1.2.40">
+  <br />
+  <subsection name="Native">
+    <changelog>
+      <fix>
+        Fix status worker display of worker IP address after name or port
+        was changed. (rjung)
+      </fix>
+    </changelog>
+  </subsection>
 <section name="Changes between 1.2.37 and 1.2.39">
   <br />
   <subsection name="Native">



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