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)