client_socket-close_data_connection.patch by Petri Hintukainen

- Add member function to close data connection
Modified Files:
	client/socket.c client/socket.h
This commit is contained in:
schmirl 2007-04-24 10:57:34 +00:00
parent 2a4370b6a0
commit ac4c391c43
2 changed files with 21 additions and 2 deletions

View File

@ -1,5 +1,5 @@
/* /*
* $Id: socket.c,v 1.7 2007/01/15 11:45:48 schmirl Exp $ * $Id: socket.c,v 1.8 2007/04/24 10:57:34 schmirl Exp $
*/ */
#include <tools/select.h> #include <tools/select.h>
@ -215,6 +215,24 @@ bool cClientSocket::CreateDataConnection(eSocketId Id) {
return true; return true;
} }
bool cClientSocket::CloseDataConnection(eSocketId Id) {
//if (!CheckConnection()) return false;
CMD_LOCK;
if(Id == siLive || Id == siLiveFilter)
if (m_DataSockets[Id] != NULL) {
std::string command = (std::string)"ABRT " + (const char*)itoa(Id);
if (!Command(command, 220)) {
if (errno == 0)
esyslog("ERROR: Streamdev: Couldn't cleanly close data connection");
//return false;
}
DELETENULL(m_DataSockets[Id]);
}
return true;
}
bool cClientSocket::SetChannelDevice(const cChannel *Channel) { bool cClientSocket::SetChannelDevice(const cChannel *Channel) {
if (!CheckConnection()) return false; if (!CheckConnection()) return false;

View File

@ -1,5 +1,5 @@
/* /*
* $Id: socket.h,v 1.3 2005/02/08 17:22:35 lordjaxom Exp $ * $Id: socket.h,v 1.4 2007/04/24 10:57:34 schmirl Exp $
*/ */
#ifndef VDR_STREAMDEV_CLIENT_CONNECTION_H #ifndef VDR_STREAMDEV_CLIENT_CONNECTION_H
@ -47,6 +47,7 @@ public:
bool CheckConnection(void); bool CheckConnection(void);
bool ProvidesChannel(const cChannel *Channel, int Priority); bool ProvidesChannel(const cChannel *Channel, int Priority);
bool CreateDataConnection(eSocketId Id); bool CreateDataConnection(eSocketId Id);
bool CloseDataConnection(eSocketId Id);
bool SetChannelDevice(const cChannel *Channel); bool SetChannelDevice(const cChannel *Channel);
bool SetPid(int Pid, bool On); bool SetPid(int Pid, bool On);
#if VDRVERSNUM >= 10300 #if VDRVERSNUM >= 10300