mirror of https://github.com/FFmpeg/FFmpeg.git
Compare commits
3 Commits
558994b051
...
d1f31a829d
| Author | SHA1 | Date |
|---|---|---|
|
|
d1f31a829d | |
|
|
1e56c51d3b | |
|
|
45fcd5567a |
|
|
@ -24,6 +24,7 @@
|
|||
#include "config.h"
|
||||
#include "config_components.h"
|
||||
|
||||
#include <string.h>
|
||||
#include <time.h>
|
||||
#if CONFIG_ZLIB
|
||||
#include <zlib.h>
|
||||
|
|
@ -214,7 +215,7 @@ static int http_open_cnx_internal(URLContext *h, AVDictionary **options)
|
|||
const char *path, *proxy_path, *lower_proto = "tcp", *local_path;
|
||||
char *env_http_proxy, *env_no_proxy;
|
||||
char *hashmark;
|
||||
char hostname[1024], hoststr[1024], proto[10];
|
||||
char hostname[1024], hoststr[1024], proto[10], tmp_host[1024];
|
||||
char auth[1024], proxyauth[1024] = "";
|
||||
char path1[MAX_URL_SIZE], sanitized_path[MAX_URL_SIZE + 1];
|
||||
char buf[1024], urlbuf[MAX_URL_SIZE];
|
||||
|
|
@ -224,7 +225,14 @@ static int http_open_cnx_internal(URLContext *h, AVDictionary **options)
|
|||
av_url_split(proto, sizeof(proto), auth, sizeof(auth),
|
||||
hostname, sizeof(hostname), &port,
|
||||
path1, sizeof(path1), s->location);
|
||||
ff_url_join(hoststr, sizeof(hoststr), NULL, NULL, hostname, port, NULL);
|
||||
|
||||
av_strlcpy(tmp_host, hostname, sizeof(tmp_host));
|
||||
// In case of an IPv6 address, we need to strip the Zone ID,
|
||||
// if any. We do it at the first % sign, as percent encoding
|
||||
// can be used in the Zone ID itself.
|
||||
if (strchr(tmp_host, ':'))
|
||||
tmp_host[strcspn(tmp_host, "%")] = '\0';
|
||||
ff_url_join(hoststr, sizeof(hoststr), NULL, NULL, tmp_host, port, NULL);
|
||||
|
||||
env_http_proxy = getenv_utf8("http_proxy");
|
||||
proxy_path = s->http_proxy ? s->http_proxy : env_http_proxy;
|
||||
|
|
|
|||
|
|
@ -1239,9 +1239,12 @@ start:
|
|||
q = buf;
|
||||
for (;;) {
|
||||
ret = ffurl_read_complete(rt->rtsp_hd, &ch, 1);
|
||||
if (ret != 1) {
|
||||
ret = (ret < 0) ? ret : AVERROR(EIO);
|
||||
av_log(s, AV_LOG_WARNING, "Failed reading RTSP data: %s\n", av_err2str(ret));
|
||||
return ret;
|
||||
}
|
||||
av_log(s, AV_LOG_TRACE, "ret=%d c=%02x [%c]\n", ret, ch, ch);
|
||||
if (ret != 1)
|
||||
return ret < 0 ? ret : AVERROR(EIO);
|
||||
if (ch == '\n')
|
||||
break;
|
||||
if (ch == '$' && q == buf) {
|
||||
|
|
@ -1271,6 +1274,7 @@ start:
|
|||
if (!strncmp(buf1, "RTSP/", 5)) {
|
||||
get_word(buf1, sizeof(buf1), &p);
|
||||
reply->status_code = atoi(buf1);
|
||||
p += strspn(p, SPACE_CHARS);
|
||||
av_strlcpy(reply->reason, p, sizeof(reply->reason));
|
||||
} else {
|
||||
av_strlcpy(reply->reason, buf1, sizeof(reply->reason)); // method
|
||||
|
|
|
|||
Loading…
Reference in New Issue