You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Casey Marshall (JIRA)" <ji...@apache.org> on 2015/05/05 22:30:00 UTC

[jira] [Created] (CASSANDRA-9309) Wrong interpretation of Config.getOutboundBindAny depending on using SSL or not

Casey Marshall created CASSANDRA-9309:
-----------------------------------------

             Summary: Wrong interpretation of Config.getOutboundBindAny depending on using SSL or not
                 Key: CASSANDRA-9309
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-9309
             Project: Cassandra
          Issue Type: Bug
            Reporter: Casey Marshall


In function OutboundTcpConnectionPool.newSocket(), it appears the binding behavior of client sockets is different depending on the encryption setting.

If encryption is enabled, and Config.getOutboundBindAny() is true, then no address is passed to SSLFactory.getSocket (so I assume it binds to any address).

If encryption is enabled, and Config.getOutboundBindAny() is false, then FBUtilities.getLocalAddress() is passed to SSLFactory.getSocket (so I assume the new socket will be bound to that address).

If encryption is disabled, and Config.getOutboundBindAny() is true (and socket.isBound() returns false) then the socket is bound to FBUtilities.getLocalAddress().

If encryption is disabled, and Config.getOutboundBindAny() is false, the socket is not bound.

The case of encryption disabled appears to be wrong, and the Config.getOutboundBindAny() flag gets inverted depending on the encryption setting. Shouldn't

{code}
if (Config.getOutboundBindAny() && !socket.isBound())
{code}

be this:

{code}
if (!Config.getOutboundBindAny() && !socket.isBound())
{code}

This is in my copy of the 2.0.11 tag, and appears to be the same in trunk.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)