mirror of
https://github.com/rofafor/vdr-plugin-iptv.git
synced 2023-10-10 13:37:03 +02:00
Fixed handling of HTTP protocol headers.
This commit is contained in:
parent
abfa46c064
commit
a32cb95960
6
HISTORY
6
HISTORY
@ -108,3 +108,9 @@ VDR Plugin 'iptv' Revision History
|
|||||||
(Thanks to Peter Holik for reporting this one).
|
(Thanks to Peter Holik for reporting this one).
|
||||||
- Updated example scripts to use ffmpeg's direct UDP output
|
- Updated example scripts to use ffmpeg's direct UDP output
|
||||||
and added a new "image.sh" script (Thanks to Peter Holik).
|
and added a new "image.sh" script (Thanks to Peter Holik).
|
||||||
|
|
||||||
|
2009-xx-xx: Version 0.3.1
|
||||||
|
|
||||||
|
- Updated patches.
|
||||||
|
- Added optional patches to disable EIT scanning.
|
||||||
|
- Fixed handling of HTTP protocol headers.
|
||||||
|
2
iptv.c
2
iptv.c
@ -20,7 +20,7 @@
|
|||||||
#error "VDR-1.6.0 API version or greater is required!"
|
#error "VDR-1.6.0 API version or greater is required!"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static const char VERSION[] = "0.3.0";
|
static const char VERSION[] = "0.3.1";
|
||||||
static const char DESCRIPTION[] = trNOOP("Experience the IPTV");
|
static const char DESCRIPTION[] = trNOOP("Experience the IPTV");
|
||||||
|
|
||||||
class cPluginIptv : public cPlugin {
|
class cPluginIptv : public cPlugin {
|
||||||
|
12
patches/vdr-1.6.0-disable_eitscan.patch
Normal file
12
patches/vdr-1.6.0-disable_eitscan.patch
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
diff -Nru vdr-1.6.0-vanilla/eitscan.c vdr-1.6.0-disable_eitscan/eitscan.c
|
||||||
|
--- vdr-1.6.0-vanilla/eitscan.c 2006-01-07 16:10:17.000000000 +0200
|
||||||
|
+++ vdr-1.6.0-disable_eitscan/eitscan.c 2009-06-17 16:04:23.000000000 +0300
|
||||||
|
@@ -146,7 +146,7 @@
|
||||||
|
if (Device) {
|
||||||
|
for (cScanData *ScanData = scanList->First(); ScanData; ScanData = scanList->Next(ScanData)) {
|
||||||
|
const cChannel *Channel = ScanData->GetChannel();
|
||||||
|
- if (Channel) {
|
||||||
|
+ if (Channel && !Channel->IsPlug()) {
|
||||||
|
if (!Channel->Ca() || Channel->Ca() == Device->DeviceNumber() + 1 || Channel->Ca() >= CA_ENCRYPTED_MIN) {
|
||||||
|
if (Device->ProvidesTransponder(Channel)) {
|
||||||
|
if (!Device->Receiving()) {
|
@ -127,7 +127,7 @@ bool cIptvProtocolHttp::GetHeaderLine(char* dest, unsigned int destLen,
|
|||||||
debug("cIptvProtocolHttp::GetHeaderLine()\n");
|
debug("cIptvProtocolHttp::GetHeaderLine()\n");
|
||||||
bool linefeed = false;
|
bool linefeed = false;
|
||||||
bool newline = false;
|
bool newline = false;
|
||||||
char buf[256];
|
char buf[4096];
|
||||||
char *bufptr = buf;
|
char *bufptr = buf;
|
||||||
memset(buf, '\0', sizeof(buf));
|
memset(buf, '\0', sizeof(buf));
|
||||||
recvLen = 0;
|
recvLen = 0;
|
||||||
@ -160,6 +160,7 @@ bool cIptvProtocolHttp::GetHeaderLine(char* dest, unsigned int destLen,
|
|||||||
// Check that buffers won't be exceeded
|
// Check that buffers won't be exceeded
|
||||||
if (recvLen >= sizeof(buf) || recvLen >= destLen) {
|
if (recvLen >= sizeof(buf) || recvLen >= destLen) {
|
||||||
error("Header wouldn't fit into buffer\n");
|
error("Header wouldn't fit into buffer\n");
|
||||||
|
recvLen = 0;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -178,13 +179,13 @@ bool cIptvProtocolHttp::ProcessHeaders(void)
|
|||||||
unsigned int lineLength = 0;
|
unsigned int lineLength = 0;
|
||||||
int response = 0;
|
int response = 0;
|
||||||
bool responseFound = false;
|
bool responseFound = false;
|
||||||
char buf[256];
|
char buf[4096];
|
||||||
|
|
||||||
while (!responseFound || lineLength != 0) {
|
while (!responseFound || lineLength != 0) {
|
||||||
memset(buf, '\0', sizeof(buf));
|
memset(buf, '\0', sizeof(buf));
|
||||||
if (!GetHeaderLine(buf, sizeof(buf), lineLength))
|
if (!GetHeaderLine(buf, sizeof(buf), lineLength))
|
||||||
return false;
|
return false;
|
||||||
if (!responseFound && sscanf(buf, "HTTP/1.%*i %i ",&response) != 1) {
|
if (!responseFound && sscanf(buf, "HTTP/1.%*i %i ", &response) != 1) {
|
||||||
error("Expected HTTP header not found\n");
|
error("Expected HTTP header not found\n");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user