From 10f180385767cc5d1129b8af1a5c943e824d8693 Mon Sep 17 00:00:00 2001 From: Thulinma Date: Fri, 12 Apr 2013 16:41:11 +0200 Subject: [PATCH] Fixed deadlock if buffer disconnects before sending metadata to connectors. --- src/connectors/conn_http_dynamic.cpp | 2 +- src/connectors/conn_http_live.cpp | 2 +- src/connectors/conn_http_smooth.cpp | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/connectors/conn_http_dynamic.cpp b/src/connectors/conn_http_dynamic.cpp index 0874898e..51555bad 100644 --- a/src/connectors/conn_http_dynamic.cpp +++ b/src/connectors/conn_http_dynamic.cpp @@ -183,7 +183,7 @@ namespace Connector_HTTP { } ss.setBlocking(false); //make sure metadata is received - while ( !Strm.metadata){ + while ( !Strm.metadata && ss.connected()){ if (ss.spool()){ while (Strm.parsePacket(ss.Received())){ //do nothing diff --git a/src/connectors/conn_http_live.cpp b/src/connectors/conn_http_live.cpp index 25b05c82..dc97a907 100644 --- a/src/connectors/conn_http_live.cpp +++ b/src/connectors/conn_http_live.cpp @@ -127,7 +127,7 @@ namespace Connector_HTTP { } ss.setBlocking(false); //make sure metadata is received - while ( !Strm.metadata){ + while ( !Strm.metadata && ss.connected()){ if (ss.spool()){ while (Strm.parsePacket(ss.Received())){ //do nothing diff --git a/src/connectors/conn_http_smooth.cpp b/src/connectors/conn_http_smooth.cpp index 4ad51f08..7a74b796 100644 --- a/src/connectors/conn_http_smooth.cpp +++ b/src/connectors/conn_http_smooth.cpp @@ -182,7 +182,7 @@ namespace Connector_HTTP { } ss.setBlocking(false); //Do nothing until metadata has been received. - while ( !Strm.metadata){ + while ( !Strm.metadata && ss.connected()){ if (ss.spool()){ while (Strm.parsePacket(ss.Received())){ //do nothing