diff --git a/src/audio/broadcast/icecast/IcecastTCPAudioBroadcaster.java b/src/audio/broadcast/icecast/IcecastTCPAudioBroadcaster.java index 80c0fb8c..9d37c2e5 100644 --- a/src/audio/broadcast/icecast/IcecastTCPAudioBroadcaster.java +++ b/src/audio/broadcast/icecast/IcecastTCPAudioBroadcaster.java @@ -101,7 +101,7 @@ public class IcecastTCPAudioBroadcaster extends IcecastAudioBroadcaster if(mSocketConnector == null) { mSocketConnector = new NioSocketConnector(); - mSocketConnector.setConnectTimeoutCheckInterval(1000); + mSocketConnector.setConnectTimeoutCheckInterval(CONNECTION_ATTEMPT_TIMEOUT); // LoggingFilter loggingFilter = new LoggingFilter(IcecastTCPAudioBroadcaster.class); // loggingFilter.setMessageSentLogLevel(LogLevel.NONE); @@ -151,12 +151,12 @@ public class IcecastTCPAudioBroadcaster extends IcecastAudioBroadcaster else if(throwableCause != null) { setBroadcastState(BroadcastState.ERROR); - mLog.debug("[" + getStreamName() + "]Failed to connect", rie); + mLog.debug("[" + getStreamName() + "] failed to connect", rie); } else { setBroadcastState(BroadcastState.ERROR); - mLog.debug("[" + getStreamName() + "]Failed to connect - no exception is available"); + mLog.debug("[" + getStreamName() + "] failed to connect - no exception is available"); } disconnect(); diff --git a/src/audio/broadcast/shoutcast/v1/ShoutcastV1AudioBroadcaster.java b/src/audio/broadcast/shoutcast/v1/ShoutcastV1AudioBroadcaster.java index 5032495d..e1afae65 100644 --- a/src/audio/broadcast/shoutcast/v1/ShoutcastV1AudioBroadcaster.java +++ b/src/audio/broadcast/shoutcast/v1/ShoutcastV1AudioBroadcaster.java @@ -189,12 +189,13 @@ public class ShoutcastV1AudioBroadcaster extends AudioBroadcaster */ public void disconnect() { - if(connected()) + if(connected() && mStreamingSession != null) { - if(mStreamingSession != null) - { - mStreamingSession.closeNow(); - } + mStreamingSession.closeNow(); + } + else + { + mLastConnectionAttempt = System.currentTimeMillis(); } } @@ -230,15 +231,15 @@ public class ShoutcastV1AudioBroadcaster extends AudioBroadcaster @Override public void sessionClosed(IoSession session) throws Exception { + mLastConnectionAttempt = System.currentTimeMillis(); + //If there is already an error state, don't override it. Otherwise, set state to disconnected if(!getBroadcastState().isErrorState()) { setBroadcastState(BroadcastState.DISCONNECTED); } - mSocketConnector.dispose(); mStreamingSession = null; - mSocketConnector = null; mConnecting.set(false); super.sessionClosed(session); @@ -259,13 +260,11 @@ public class ShoutcastV1AudioBroadcaster extends AudioBroadcaster { mLog.info("Streaming connection reset by remote server - reestablishing connection"); disconnect(); - connect(); } else if(reason.startsWith("Operation timed out")) { mLog.info("Streaming connection timed out - resetting connection"); disconnect(); - connect(); } else { diff --git a/src/audio/broadcast/shoutcast/v2/ShoutcastV2AudioBroadcaster.java b/src/audio/broadcast/shoutcast/v2/ShoutcastV2AudioBroadcaster.java index 5c8e3237..034666e4 100644 --- a/src/audio/broadcast/shoutcast/v2/ShoutcastV2AudioBroadcaster.java +++ b/src/audio/broadcast/shoutcast/v2/ShoutcastV2AudioBroadcaster.java @@ -225,13 +225,13 @@ public class ShoutcastV2AudioBroadcaster extends AudioBroadcaster implements IBr */ public void disconnect() { - if(connected()) + if(connected() && mStreamingSession != null) { - if(mStreamingSession != null) - { - mStreamingSession.write(new TerminateBroadcast()); - mStreamingSession.closeNow(); - } + mStreamingSession.closeNow(); + } + else + { + mLastConnectionAttempt = System.currentTimeMillis(); } } @@ -353,15 +353,15 @@ public class ShoutcastV2AudioBroadcaster extends AudioBroadcaster implements IBr @Override public void sessionClosed(IoSession session) throws Exception { + mLastConnectionAttempt = System.currentTimeMillis(); + //If there is already an error state, don't override it. Otherwise, set state to disconnected if(!getBroadcastState().isErrorState()) { setBroadcastState(BroadcastState.DISCONNECTED); } - mSocketConnector.dispose(); mStreamingSession = null; - mSocketConnector = null; mConnecting.set(false); super.sessionClosed(session); @@ -382,13 +382,11 @@ public class ShoutcastV2AudioBroadcaster extends AudioBroadcaster implements IBr { mLog.info("Streaming connection reset by remote server - reestablishing connection"); disconnect(); - connect(); } else if(reason.startsWith("Operation timed out")) { mLog.info("Streaming connection timed out - resetting connection"); disconnect(); - connect(); } else {