From 02b6924b9947b8d69578e68edf02cd65936c9706 Mon Sep 17 00:00:00 2001 From: Alex Wenckus Date: Wed, 21 Mar 2007 04:21:30 +0000 Subject: [PATCH] Cleanup listening socket git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/trunk@7617 b35dd754-fafc-0310-a699-88a17e54d16e --- .../Socks5TransferNegotiator.java | 30 +++++++++++-------- 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/source/org/jivesoftware/smackx/filetransfer/Socks5TransferNegotiator.java b/source/org/jivesoftware/smackx/filetransfer/Socks5TransferNegotiator.java index 8bccc233b..34981402d 100644 --- a/source/org/jivesoftware/smackx/filetransfer/Socks5TransferNegotiator.java +++ b/source/org/jivesoftware/smackx/filetransfer/Socks5TransferNegotiator.java @@ -281,22 +281,28 @@ public class Socks5TransferNegotiator extends StreamNegotiator { process = null; } - String localIP; + Socket conn; try { - localIP = discoverLocalIP(); + String localIP; + try { + localIP = discoverLocalIP(); + } + catch (UnknownHostException e1) { + localIP = null; + } + + Bytestream query = createByteStreamInit(initiator, target, sessionID, + localIP, (process != null ? process.getPort() : 0)); + + // if the local host is one of the options we need to wait for the + // remote connection. + conn = waitForUsedHostResponse(sessionID, process, createDigest( + sessionID, initiator, target), query).establishedSocket; } - catch (UnknownHostException e1) { - localIP = null; + finally { + cleanupListeningSocket(); } - Bytestream query = createByteStreamInit(initiator, target, sessionID, - localIP, (process != null ? process.getPort() : 0)); - - // if the local host is one of the options we need to wait for the - // remote connection. - Socket conn = waitForUsedHostResponse(sessionID, process, createDigest( - sessionID, initiator, target), query).establishedSocket; - cleanupListeningSocket(); return conn; }