commit eb2a7e1eb920cd9e44223607978344cf4b95d990 Author: Jonas Karlman Date: Tue Jun 16 02:47:28 2015 +0200 Resolve .plex.direct domains diff --git a/libavformat/tcp.c b/libavformat/tcp.c index 3c3f4f5..e543c06 100644 --- a/libavformat/tcp.c +++ b/libavformat/tcp.c @@ -67,6 +67,8 @@ static int tcp_open(URLContext *h, const char *uri, int flags) int ret; char hostname[1024],proto[1024],path[1024]; char portstr[10]; + size_t len; + char *c; s->open_timeout = 5000000; av_url_split(proto, sizeof(proto), NULL, 0, hostname, sizeof(hostname), @@ -102,6 +104,17 @@ static int tcp_open(URLContext *h, const char *uri, int flags) snprintf(portstr, sizeof(portstr), "%d", port); if (s->listen) hints.ai_flags |= AI_PASSIVE; + len = strlen(hostname); + if (len > 12 && !strcmp(hostname + len - 12, ".plex.direct")) { + for (c = hostname; *c; c++) { + if (*c == '-') { + *c = '.'; + } else if (*c == '.') { + *c = '\0'; + break; + } + } + } if (!hostname[0]) ret = getaddrinfo(NULL, portstr, &hints, &ai); else