diff options
Diffstat (limited to 'frontend_svr.c')
-rw-r--r-- | frontend_svr.c | 9 |
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) |