diff options
| -rw-r--r-- | src/com/isode/stroke/network/Connector.java | 9 | ||||
| -rw-r--r-- | src/com/isode/stroke/network/ProxiedConnection.java | 10 |
2 files changed, 16 insertions, 3 deletions
diff --git a/src/com/isode/stroke/network/Connector.java b/src/com/isode/stroke/network/Connector.java index 6033a89..2823679 100644 --- a/src/com/isode/stroke/network/Connector.java +++ b/src/com/isode/stroke/network/Connector.java @@ -1,8 +1,8 @@ /* - * Copyright (c) 2010-2014, Isode Limited, London, England. + * Copyright (c) 2010-2016, Isode Limited, London, England. * All rights reserved. */ /* * Copyright (c) 2010 Remko Tronçon * All rights reserved. */ @@ -59,12 +59,19 @@ public class Connector { else { queryAddress(hostname); } } public void stop() { + if (currentConnectionConnectFinishedConnection != null) { + currentConnectionConnectFinishedConnection.disconnect(); + currentConnectionConnectFinishedConnection = null; + } + if (currentConnection != null) { + currentConnection.disconnect(); + } finish(null); } public final Signal2<Connection, com.isode.stroke.base.Error> onConnectFinished = new Signal2<Connection, com.isode.stroke.base.Error>(); private Connector(String hostname,int port, String serviceLookupPrefix, DomainNameResolver resolver, ConnectionFactory connectionFactory, TimerFactory timerFactory) { diff --git a/src/com/isode/stroke/network/ProxiedConnection.java b/src/com/isode/stroke/network/ProxiedConnection.java index 5eac083..69b4b90 100644 --- a/src/com/isode/stroke/network/ProxiedConnection.java +++ b/src/com/isode/stroke/network/ProxiedConnection.java @@ -8,12 +8,14 @@ * Licensed under the simplified BSD license. * See Documentation/Licenses/BSD-simplified.txt for more information. */ package com.isode.stroke.network; +import java.util.logging.Logger; + import com.isode.stroke.signals.SignalConnection; import com.isode.stroke.signals.Slot2; import com.isode.stroke.signals.Slot1; import com.isode.stroke.base.SafeByteArray; public abstract class ProxiedConnection extends Connection { @@ -27,12 +29,13 @@ public abstract class ProxiedConnection extends Connection { private HostAddressPort server_; private Connector connector_; private Connection connection_; private SignalConnection onDataReadConnection_; private SignalConnection onDisconnectedConnection_; private SignalConnection onConnectFinishedConnection; + private Logger logger_ = Logger.getLogger(this.getClass().getName()); public ProxiedConnection(DomainNameResolver resolver, ConnectionFactory connectionFactory, TimerFactory timerFactory, final String proxyHost, int proxyPort) { this.resolver_ = resolver; this.connectionFactory_ = connectionFactory; this.timerFactory_ = timerFactory; this.proxyHost_ = proxyHost; @@ -46,13 +49,13 @@ public abstract class ProxiedConnection extends Connection { cancelConnector(); if (connection_ != null) { onDataReadConnection_.disconnect(); onDisconnectedConnection_.disconnect(); } if (connected_) { - System.err.println("Warning: Connection was still established."); + logger_.warning("Warning: Connection was still established."); } } finally { super.finalize(); } } @@ -73,14 +76,17 @@ public abstract class ProxiedConnection extends Connection { } }); connector_.start(); } public void disconnect() { + cancelConnector(); connected_ = false; - connection_.disconnect(); + if (connection_ != null) { + connection_.disconnect(); + } } public void write(final SafeByteArray data) { connection_.write(data); } |
Swift