mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-08-02 07:27:49 +00:00
vdr-iptv: add -http_socket_connect.patch
This commit is contained in:
parent
2581efaffe
commit
49fc182b6b
36
packages/3rdparty/multimedia/vdr-iptv/patches/vdr-iptv-0.5.0-http_socket_connect.patch
vendored
Normal file
36
packages/3rdparty/multimedia/vdr-iptv/patches/vdr-iptv-0.5.0-http_socket_connect.patch
vendored
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
commit 9766e893eb3ed1076e41f89b663b3be122355f39
|
||||||
|
Author: Stefan Saraev <stefan@saraev.ca>
|
||||||
|
Date: Wed Mar 7 00:13:55 2012 +0200
|
||||||
|
|
||||||
|
vdr-iptv: protocolhttp socket connect() fix
|
||||||
|
|
||||||
|
diff --git a/protocolhttp.c b/protocolhttp.c
|
||||||
|
index 62abbd6..2d5277a 100644
|
||||||
|
--- a/protocolhttp.c
|
||||||
|
+++ b/protocolhttp.c
|
||||||
|
@@ -42,6 +42,25 @@ bool cIptvProtocolHttp::Connect(void)
|
||||||
|
if (!isActive && !isempty(streamAddr) && !isempty(streamPath)) {
|
||||||
|
// Ensure that socket is valid and connect
|
||||||
|
OpenSocket(socketPort, streamAddr);
|
||||||
|
+
|
||||||
|
+ // First try only the IP address
|
||||||
|
+ sockAddr.sin_addr.s_addr = inet_addr(streamAddr);
|
||||||
|
+
|
||||||
|
+ if (sockAddr.sin_addr.s_addr == INADDR_NONE) {
|
||||||
|
+ debug("Cannot convert %s directly to internet address\n", streamAddr);
|
||||||
|
+
|
||||||
|
+ // It may be a host name, get the name
|
||||||
|
+ struct hostent *host;
|
||||||
|
+ host = gethostbyname(streamAddr);
|
||||||
|
+ if (!host) {
|
||||||
|
+ char tmp[64];
|
||||||
|
+ error("%s is not valid address: %s", streamAddr, strerror_r(h_errno, tmp, sizeof(tmp)));
|
||||||
|
+ return false;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ sockAddr.sin_addr.s_addr = inet_addr(*host->h_addr_list);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
if (!ConnectSocket()) {
|
||||||
|
CloseSocket();
|
||||||
|
return false;
|
Loading…
x
Reference in New Issue
Block a user