Details
-
Type:
Bug
-
Status:
Open
-
Priority:
Major
-
Resolution: Unresolved
-
Affects Version/s: 3.6.4
-
Fix Version/s: None
-
Component/s: Core
-
Labels:None
-
Acceptance Test - Add?:No
Description
reported at: http://www.igniterealtime.org/community/message/193496
Seems to be a bug:
Outgoing s2s sessions do not bind to specified (in the config file or database) ip address (network.address).
openfire_src/src/java/org/jivesoftware/openfire/server/ServerDialback.java:
public LocalOutgoingServerSession createOutgoingSession(String domain, String hostname, int port) {
...
// Connect to the remote server
Socket socket = new Socket();
socket.connect(new InetSocketAddress(realHostname, realPort),
RemoteServerManager.getSocketTimeout());
I guess there should be used another constructor:
Socket socket = new Socket(InetAddress address, int port)
or one more function before socket.connect:
socket.bind(SocketAddress bindpoint)
I can confirm this bug and would really like it to be fixed, as it defeats every firewallscript of corporations, that are usually bound to IP-Adresses. This essentially means that we are unable to use Openfire on the same machine as other services like Gnu GateKeeper, etc., since we have to secure access to some of these services to defined IP-ranges.