[Red5devs] [PATCH 15 of 15] debugging closed connections
Mondain
mondain at gmail.com
Tue Aug 26 16:22:26 PDT 2008
Added
On Tue, Aug 26, 2008 at 11:06 AM, mabrek <mabrek at gmail.com> wrote:
> diff -r 3e241327cb9a -r 06542742ce01
> src/org/red5/server/net/rtmp/RTMPConnManager.java
> --- a/src/org/red5/server/net/rtmp/RTMPConnManager.java Mon Jul 21 11:37:55
> 2008 +0400
> +++ b/src/org/red5/server/net/rtmp/RTMPConnManager.java Fri Jul 25 16:56:02
> 2008 +0400
> @@ -12,9 +12,13 @@
> import org.springframework.beans.BeansException;
> import org.springframework.context.ApplicationContext;
> import org.springframework.context.ApplicationContextAware;
> +import org.slf4j.Logger;
> +import org.slf4j.LoggerFactory;
>
> public class RTMPConnManager implements IRTMPConnManager,
> ApplicationContextAware {
> + private static final Logger log =
> LoggerFactory.getLogger(RTMPConnManager.class);
> +
> private ConcurrentMap<Integer, RTMPConnection> connMap = new
> ConcurrentHashMap<Integer, RTMPConnection>();
>
> private ReadWriteLock lock = new ReentrantReadWriteLock();
> @@ -43,6 +47,7 @@
> }
> offset++;
> }
> + log.debug("Connection created, id: {}",
> conn.getId());
> } finally {
> lock.writeLock().unlock();
> }
> @@ -64,6 +69,7 @@
> public RTMPConnection removeConnection(int clientId) {
> lock.writeLock().lock();
> try {
> + log.debug("Removing connection with id: {}",
> clientId);
> return connMap.remove(clientId);
> } finally {
> lock.writeLock().unlock();
> diff -r 3e241327cb9a -r 06542742ce01
> src/org/red5/server/net/rtmp/RTMPConnection.java
> --- a/src/org/red5/server/net/rtmp/RTMPConnection.java Mon Jul 21 11:37:55
> 2008 +0400
> +++ b/src/org/red5/server/net/rtmp/RTMPConnection.java Fri Jul 25 16:56:02
> 2008 +0400
> @@ -280,6 +280,7 @@
>
> waitForHandshakeService.removeScheduledJob(waitForHandshakeJob);
> waitForHandshakeJob = null;
> waitForHandshakeService = null;
> + log.debug("Removed waitForHandshakeJob for:
> {}", getId());
> }
> }
> return success;
> diff -r 3e241327cb9a -r 06542742ce01
> src/org/red5/server/net/rtmpt/RTMPTConnection.java
> --- a/src/org/red5/server/net/rtmpt/RTMPTConnection.java Mon Jul 21
> 11:37:55 2008 +0400
> +++ b/src/org/red5/server/net/rtmpt/RTMPTConnection.java Fri Jul 25
> 16:56:02 2008 +0400
> @@ -112,6 +112,7 @@
> /** {@inheritDoc} */
> @Override
> protected void onInactive() {
> + log.debug("Inactive connection id: {}, closing", getId());
> close();
> realClose();
> }
> diff -r 3e241327cb9a -r 06542742ce01
> src/org/red5/server/net/rtmpt/RTMPTServlet.java
> --- a/src/org/red5/server/net/rtmpt/RTMPTServlet.java Mon Jul 21 11:37:55
> 2008 +0400
> +++ b/src/org/red5/server/net/rtmpt/RTMPTServlet.java Fri Jul 25 16:56:02
> 2008 +0400
> @@ -288,16 +288,16 @@
> skipData(req);
>
> // TODO: should we evaluate the pathinfo?
> - RTMPTConnection client = createConnection();
> - client.setServlet(this);
> - if (client.getId() == 0) {
> + RTMPTConnection connection = createConnection();
> + connection.setServlet(this);
> + if (connection.getId() == 0) {
> // no more clients are available for serving
> returnMessage((byte) 0, resp);
> return;
> }
>
> // Return connection id to client
> - returnMessage(client.getId() + "\n", resp);
> + returnMessage(connection.getId() + "\n", resp);
> }
>
> /**
> @@ -320,7 +320,7 @@
>
> RTMPTConnection connection = getClientConnection(req);
> if (connection == null) {
> - handleBadRequest("Unknown client.", resp);
> + handleBadRequest("Close: unknown client with id: "
> + getClientId(req), resp);
> return;
> }
> removeConnection(connection.getId());
> @@ -349,7 +349,7 @@
>
> RTMPTConnection connection = getClientConnection(req);
> if (connection == null) {
> - handleBadRequest("Unknown client.", resp);
> + handleBadRequest("Send: unknown client with id: " +
> getClientId(req), resp);
> return;
> } else if (connection.getState().getState() ==
> RTMP.STATE_DISCONNECTED) {
> removeConnection(connection.getId());
> @@ -407,7 +407,7 @@
>
> RTMPTConnection connection = getClientConnection(req);
> if (connection == null) {
> - handleBadRequest("Unknown client.", resp);
> + handleBadRequest("Idle: unknown client with id: " +
> getClientId(req), resp);
> return;
> } else if (connection.isClosing()) {
> // Tell client to close the connection
> @@ -504,7 +504,10 @@
> }
>
> protected RTMPTConnection getConnection(int clientId) {
> - return (RTMPTConnection) rtmpConnManager.getConnection(clientId);
> + RTMPTConnection connection = (RTMPTConnection)
> rtmpConnManager.getConnection(clientId);
> + if (connection == null)
> + log.warn("Null connection for clientId: {}",
> clientId);
> + return connection;
> }
>
> protected RTMPTConnection createConnection() {
>
>
>
> _______________________________________________
> Red5devs mailing list
> Red5devs at osflash.org
> http://osflash.org/mailman/listinfo/red5devs_osflash.org
>
--
http://gregoire.org/
http://osflash.org/red5
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://osflash.org/pipermail/red5devs_osflash.org/attachments/20080826/f02f3522/attachment-0001.html
More information about the Red5devs
mailing list