mirror of
https://projects.vdr-developer.org/git/vdr-plugin-streamdev.git
synced 2023-10-10 19:16:51 +02:00
fa578940f7
especially x264 still needs a SIGKILL sometimes - added --remove-destination to cp commands installing plugins - updated Italian translation (thanks to Diego Pierotto) - config option "client may suspend" hidden if not applicable - updated and enhanced README - added support for HTTP method HEAD - rewrite of externremux.sh, including support for various URL parameters, logging and improved shutdown - start externremux script in a separate process group - changed HTTP URL path for externremux from EXTERN to EXT (suggested by Rolf Ahrenberg) - HTTP headers now have to be emitted by externremux script - pass channel related information and URL parameters to externremux script through environment - implement CGI like interface for externremux script Modified Files: Tag: v0_4 CONTRIBUTORS HISTORY Makefile README common.c common.h i18n.c remux/extern.c remux/extern.h server/connection.c server/connection.h server/connectionHTTP.c server/connectionHTTP.h server/connectionIGMP.c server/connectionVTP.c server/livestreamer.c server/livestreamer.h server/menuHTTP.c server/setup.c server/setup.h server/streamer.c server/streamer.h streamdev/externremux.sh streamdev/streamdevhosts.conf
64 lines
1.6 KiB
C++
64 lines
1.6 KiB
C++
/*
|
|
* $Id: connectionHTTP.h,v 1.5.2.2 2010/07/19 13:50:14 schmirl Exp $
|
|
*/
|
|
|
|
#ifndef VDR_STREAMDEV_SERVERS_CONNECTIONHTTP_H
|
|
#define VDR_STREAMDEV_SERVERS_CONNECTIONHTTP_H
|
|
|
|
#include "connection.h"
|
|
#include "server/livestreamer.h"
|
|
|
|
#include <map>
|
|
#include <tools/select.h>
|
|
|
|
class cChannel;
|
|
class cStreamdevLiveStreamer;
|
|
class cChannelList;
|
|
|
|
class cConnectionHTTP: public cServerConnection {
|
|
private:
|
|
enum eHTTPStatus {
|
|
hsRequest,
|
|
hsHeaders,
|
|
hsBody,
|
|
hsFinished,
|
|
};
|
|
|
|
std::string m_Authorization;
|
|
eHTTPStatus m_Status;
|
|
// job: transfer
|
|
cStreamdevLiveStreamer *m_LiveStreamer;
|
|
const cChannel *m_Channel;
|
|
int m_Apid[2];
|
|
int m_Dpid[2];
|
|
eStreamType m_StreamType;
|
|
// job: listing
|
|
cChannelList *m_ChannelList;
|
|
|
|
cChannelList* ChannelListFromString(const std::string &PathInfo, const std::string &Filebase, const std::string &Fileext) const;
|
|
bool ProcessURI(const std::string &PathInfo);
|
|
protected:
|
|
bool ProcessRequest(void);
|
|
|
|
public:
|
|
cConnectionHTTP(void);
|
|
virtual ~cConnectionHTTP();
|
|
|
|
virtual void Attach(void) { if (m_LiveStreamer != NULL) m_LiveStreamer->Attach(); }
|
|
virtual void Detach(void) { if (m_LiveStreamer != NULL) m_LiveStreamer->Detach(); }
|
|
|
|
virtual bool CanAuthenticate(void);
|
|
|
|
virtual bool Command(char *Cmd);
|
|
|
|
virtual bool Abort(void) const;
|
|
virtual void Flushed(void);
|
|
};
|
|
|
|
inline bool cConnectionHTTP::Abort(void) const
|
|
{
|
|
return m_LiveStreamer && m_LiveStreamer->Abort();
|
|
}
|
|
|
|
#endif // VDR_STREAMDEV_SERVERS_CONNECTIONVTP_H
|