aboutsummaryrefslogtreecommitdiffstats
path: root/src/net
diff options
context:
space:
mode:
authorSebastien Vincent <seb@jitsi.org>2010-12-14 07:52:21 +0000
committerSebastien Vincent <seb@jitsi.org>2010-12-14 07:52:21 +0000
commit39b8e410dd87509c7cf6dbc1bc3cc58fafec26bd (patch)
tree7d8eaec52baa9009d26adab220acee55f02b871a /src/net
parent0aad520ee3efb71e4d5b9dc82477b94bb8c4b9e7 (diff)
downloadjitsi-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')
-rw-r--r--src/net/java/sip/communicator/impl/protocol/jabber/CallPeerJabberImpl.java8
-rw-r--r--src/net/java/sip/communicator/impl/protocol/jabber/IceUdpTransportManager.java14
-rw-r--r--src/net/java/sip/communicator/impl/protocol/jabber/TransportManagerJabberImpl.java7
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()
+ {
+ }
}