diff options
author | Sebastien Vincent <seb@jitsi.org> | 2010-12-14 07:52:21 +0000 |
---|---|---|
committer | Sebastien Vincent <seb@jitsi.org> | 2010-12-14 07:52:21 +0000 |
commit | 39b8e410dd87509c7cf6dbc1bc3cc58fafec26bd (patch) | |
tree | 7d8eaec52baa9009d26adab220acee55f02b871a /src/net | |
parent | 0aad520ee3efb71e4d5b9dc82477b94bb8c4b9e7 (diff) | |
download | jitsi-39b8e410dd87509c7cf6dbc1bc3cc58fafec26bd.zip jitsi-39b8e410dd87509c7cf6dbc1bc3cc58fafec26bd.tar.gz jitsi-39b8e410dd87509c7cf6dbc1bc3cc58fafec26bd.tar.bz2 |
Update ice4j.jar, free Ice4j's resources (streams, components, sockets) when call is finished.
Diffstat (limited to 'src/net')
3 files changed, 29 insertions, 0 deletions
diff --git a/src/net/java/sip/communicator/impl/protocol/jabber/CallPeerJabberImpl.java b/src/net/java/sip/communicator/impl/protocol/jabber/CallPeerJabberImpl.java index 5f684f1..b46c630 100644 --- a/src/net/java/sip/communicator/impl/protocol/jabber/CallPeerJabberImpl.java +++ b/src/net/java/sip/communicator/impl/protocol/jabber/CallPeerJabberImpl.java @@ -362,6 +362,7 @@ public class CallPeerJabberImpl Reason.GENERAL_ERROR, reasonText); + getMediaHandler().getTransportManager().close(); setState(CallPeerState.FAILED, reasonText); getProtocolProvider().getConnection().sendPacket(errResp); return; @@ -396,6 +397,7 @@ public class CallPeerJabberImpl } CallPeerState prevPeerState = getState(); + getMediaHandler().getTransportManager().close(); setState(CallPeerState.DISCONNECTED); JingleIQ responseIQ = null; @@ -492,6 +494,7 @@ public class CallPeerJabberImpl reasonStr += " " + text; } + getMediaHandler().getTransportManager().close(); setState(CallPeerState.DISCONNECTED, reasonStr); } @@ -525,6 +528,7 @@ public class CallPeerJabberImpl sessionInitIQ.getSID(), Reason.INCOMPATIBLE_PARAMETERS, exc.getClass().getName() + ": " + exc.getMessage()); + getMediaHandler().getTransportManager().close(); setState(CallPeerState.FAILED, "Error: " + exc.getMessage()); getProtocolProvider().getConnection().sendPacket(errResp); return; @@ -909,6 +913,7 @@ public class CallPeerJabberImpl sessionInitIQ.getSID(), Reason.INCOMPATIBLE_PARAMETERS, "Error: " + exc.getMessage()); + getMediaHandler().getTransportManager().close(); setState(CallPeerState.FAILED, "Error: " + exc.getMessage()); getProtocolProvider().getConnection().sendPacket(errResp); return; @@ -942,6 +947,7 @@ public class CallPeerJabberImpl sessionInitIQ.getSID(), Reason.INCOMPATIBLE_PARAMETERS, "Error: " + exc.getMessage()); + getMediaHandler().getTransportManager().close(); setState(CallPeerState.FAILED, "Error: " + exc.getMessage()); getProtocolProvider().getConnection().sendPacket(errResp); return; @@ -990,6 +996,7 @@ public class CallPeerJabberImpl sessionInitIQ.getSID(), Reason.INCOMPATIBLE_PARAMETERS, "Error: content rejected"); + getMediaHandler().getTransportManager().close(); setState(CallPeerState.FAILED, "Error: content rejected"); getProtocolProvider().getConnection().sendPacket(errResp); return; @@ -1025,6 +1032,7 @@ public class CallPeerJabberImpl Reason.GENERAL_ERROR, reasonText); + getMediaHandler().getTransportManager().close(); setState(CallPeerState.FAILED, reasonText); getProtocolProvider().getConnection().sendPacket(errResp); return; diff --git a/src/net/java/sip/communicator/impl/protocol/jabber/IceUdpTransportManager.java b/src/net/java/sip/communicator/impl/protocol/jabber/IceUdpTransportManager.java index b07f71c..7fbe90b 100644 --- a/src/net/java/sip/communicator/impl/protocol/jabber/IceUdpTransportManager.java +++ b/src/net/java/sip/communicator/impl/protocol/jabber/IceUdpTransportManager.java @@ -994,4 +994,18 @@ public class IceUdpTransportManager } } } + + /** + * Close this transport manager and release resources. In case of ICE, it + * releases Ice4j's Agent that will cleanup all streams, component and close + * every candidate's sockets. + */ + @Override + public synchronized void close() + { + if(iceAgent != null) + { + iceAgent.free(); + } + } } diff --git a/src/net/java/sip/communicator/impl/protocol/jabber/TransportManagerJabberImpl.java b/src/net/java/sip/communicator/impl/protocol/jabber/TransportManagerJabberImpl.java index a2b60a2..37c3d83 100644 --- a/src/net/java/sip/communicator/impl/protocol/jabber/TransportManagerJabberImpl.java +++ b/src/net/java/sip/communicator/impl/protocol/jabber/TransportManagerJabberImpl.java @@ -296,4 +296,11 @@ public abstract class TransportManagerJabberImpl } return null; } + + /** + * Close this transport manager and release resources. + */ + public void close() + { + } } |