summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--frontend_svr.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/frontend_svr.c b/frontend_svr.c
index b9412c19..6561eed8 100644
--- a/frontend_svr.c
+++ b/frontend_svr.c
@@ -4,7 +4,7 @@
* See the main source file 'xineliboutput.c' for copyright information and
* how to reach the author.
*
- * $Id: frontend_svr.c,v 1.27 2006-11-03 20:23:14 phintuka Exp $
+ * $Id: frontend_svr.c,v 1.28 2006-12-07 15:18:46 phintuka Exp $
*
*/
@@ -1242,7 +1242,8 @@ void cXinelibServer::Handle_Control(int cli, const char *cmd)
void cXinelibServer::Read_Control(int cli)
{
- while(read(fd_control[cli], &m_CtrlBuf[ cli ][ m_CtrlBufPos[cli] ], 1) == 1) {
+ int n;
+ while((n = read(fd_control[cli], &m_CtrlBuf[ cli ][ m_CtrlBufPos[cli] ], 1)) == 1) {
++m_CtrlBufPos[cli];
@@ -1266,6 +1267,10 @@ void cXinelibServer::Read_Control(int cli)
m_CtrlBufPos[cli] = 0;
}
}
+ if (n == 0) {
+ LOGMSG("Client connection %d closed", cli);
+ CloseConnection(cli);
+ }
}
void cXinelibServer::Handle_ClientConnected(int fd)