From cd9d6399fd00f5aeacaa90cdc0b74c3570024119 Mon Sep 17 00:00:00 2001 From: Luca Barbato Date: Thu, 9 Oct 2014 21:34:54 +0200 Subject: tls: Support passing old-style tcp options Make tcp and tls urls near-interchangeable. --- libavformat/tls.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'libavformat/tls.c') diff --git a/libavformat/tls.c b/libavformat/tls.c index 7c78fda285..817aedc239 100644 --- a/libavformat/tls.c +++ b/libavformat/tls.c @@ -142,6 +142,7 @@ static int tls_open(URLContext *h, const char *uri, int flags) TLSContext *c = h->priv_data; int ret; int port; + const char *p; char buf[200], host[200], opts[50] = ""; int numerichost = 0; struct addrinfo hints = { 0 }, *ai = NULL; @@ -154,7 +155,17 @@ static int tls_open(URLContext *h, const char *uri, int flags) snprintf(opts, sizeof(opts), "?listen=1"); av_url_split(NULL, 0, NULL, 0, host, sizeof(host), &port, NULL, 0, uri); - ff_url_join(buf, sizeof(buf), "tcp", NULL, host, port, "%s", opts); + + p = strchr(uri, '?'); + + if (!p) { + p = opts; + } else { + if (av_find_info_tag(opts, sizeof(opts), "listen", p)) + c->listen = 1; + } + + ff_url_join(buf, sizeof(buf), "tcp", NULL, host, port, "%s", p); hints.ai_flags = AI_NUMERICHOST; if (!getaddrinfo(host, NULL, &hints, &ai)) { -- cgit v1.2.3