You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by mt...@apache.org on 2011/05/07 19:49:42 UTC

svn commit: r1100578 - /commons/sandbox/runtime/trunk/src/main/native/shared/netaddr.c

Author: mturk
Date: Sat May  7 17:49:42 2011
New Revision: 1100578

URL: http://svn.apache.org/viewvc?rev=1100578&view=rev
Log:
Fix address compare

Modified:
    commons/sandbox/runtime/trunk/src/main/native/shared/netaddr.c

Modified: commons/sandbox/runtime/trunk/src/main/native/shared/netaddr.c
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/shared/netaddr.c?rev=1100578&r1=1100577&r2=1100578&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/native/shared/netaddr.c (original)
+++ commons/sandbox/runtime/trunk/src/main/native/shared/netaddr.c Sat May  7 17:49:42 2011
@@ -797,13 +797,19 @@ ACR_NET_EXPORT(jboolean, EndpointAddress
     if (addr1 != 0 && addr2 != 0) {
         if (addr1->iplen == addr2->iplen) {
             if (addr1->family == AF_INET && addr2->family == AF_INET &&
-                memcmp(&addr1->sa.sin.sin_addr, &addr2->sa.sin.sin_addr, addr1->iplen) == 0)
-                rv = JNI_TRUE;
-            else if (addr1->family == AF_INET6 && addr2->family == AF_INET6 &&
-                memcmp(&addr1->sa.sin6.sin6_addr, &addr2->sa.sin6.sin6_addr, addr1->iplen) == 0)
-                rv = JNI_TRUE;
+                memcmp(&addr1->sa.sin.sin_addr, &addr2->sa.sin.sin_addr, addr1->iplen) == 0) {
+                SOCKADDR_RELEASE(sa1, addr1);
+                SOCKADDR_RELEASE(sa2, addr2);
+                return JNI_TRUE;
+            }
+            if (addr1->family == AF_INET6 && addr2->family == AF_INET6 &&
+                memcmp(&addr1->sa.sin6.sin6_addr, &addr2->sa.sin6.sin6_addr, addr1->iplen) == 0) {
+                SOCKADDR_RELEASE(sa1, addr1);
+                SOCKADDR_RELEASE(sa2, addr2);
+                return JNI_TRUE;
+            }
         }
-        else if (V4MAPPED_EQUAL(addr1, addr2))
+        if (V4MAPPED_EQUAL(addr1, addr2))
             rv = JNI_TRUE;
         else if (V4MAPPED_EQUAL(addr2, addr1))
             rv = JNI_TRUE;