summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorschmirl <schmirl>2007-07-20 06:54:03 +0000
committerschmirl <schmirl>2007-07-20 06:54:03 +0000
commitc8bf0474f946dee2ea8c0afe4bb1b4f79520cdfa (patch)
tree3c21c01f70d3cd755a6506929802c1da5381302a /tools
parente9bd0c96f33ee4693bde5d93bb0168c9085802ec (diff)
downloadvdr-plugin-streamdev-c8bf0474f946dee2ea8c0afe4bb1b4f79520cdfa.tar.gz
vdr-plugin-streamdev-c8bf0474f946dee2ea8c0afe4bb1b4f79520cdfa.tar.bz2
Client did not reconnect properly to server when server app restarts.
When Read() on the command channel failed, the buffer size was not trimmed. Read() was never called again as the buffer appeared to be full. Fixes #322 reported by alexw.
Diffstat (limited to 'tools')
-rw-r--r--tools/source.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/tools/source.c b/tools/source.c
index c328d7c..8a6b5f5 100644
--- a/tools/source.c
+++ b/tools/source.c
@@ -140,8 +140,10 @@ ssize_t cTBSource::ReadUntil(void *Buffer, size_t Length, const char *Seq,
len = m_LineBuffer.size();
m_LineBuffer.resize(BUFSIZ);
- if ((b = Read((char*)m_LineBuffer.data() + len, BUFSIZ - len)) == -1)
+ if ((b = Read((char*)m_LineBuffer.data() + len, BUFSIZ - len)) == -1) {
+ m_LineBuffer.resize(len);
return -1;
+ }
m_LineBuffer.resize(len + b);
if ((len = m_LineBuffer.find(Seq)) != (size_t)-1) {