diff options
author | Martin Storsjö <martin@martin.st> | 2010-10-02 21:57:58 +0000 |
---|---|---|
committer | Martin Storsjö <martin@martin.st> | 2010-10-02 21:57:58 +0000 |
commit | 8f7c2452dee8d8b72a6c0898ac90c44a4a7d9809 (patch) | |
tree | bafede1428d84cb02d13f51d3bc97c7760f578bb /libavformat/applehttp.c | |
parent | 2e0559b713b6507ab1b9f469c70c2a52a3927fc6 (diff) | |
download | ffmpeg-streaming-8f7c2452dee8d8b72a6c0898ac90c44a4a7d9809.zip ffmpeg-streaming-8f7c2452dee8d8b72a6c0898ac90c44a4a7d9809.tar.gz |
applehttp: Allow the base url to be a local file name, too
Originally committed as revision 25316 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavformat/applehttp.c')
-rw-r--r-- | libavformat/applehttp.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/libavformat/applehttp.c b/libavformat/applehttp.c index 3aa7ed4..1252dc5 100644 --- a/libavformat/applehttp.c +++ b/libavformat/applehttp.c @@ -90,7 +90,7 @@ static void make_absolute_url(char *buf, int size, const char *base, const char *rel) { char *sep; - if (!base || strstr(rel, "://")) { + if (!base || strstr(rel, "://") || rel[0] == '/') { av_strlcpy(buf, rel, size); return; } @@ -99,13 +99,15 @@ static void make_absolute_url(char *buf, int size, const char *base, sep = strrchr(buf, '/'); if (sep) sep[1] = '\0'; - while (av_strstart(rel, "../", NULL)) { - if (sep) { + else + buf[0] = '\0'; + while (av_strstart(rel, "../", NULL) && sep) { sep[0] = '\0'; sep = strrchr(buf, '/'); if (sep) sep[1] = '\0'; - } + else + buf[0] = '\0'; rel += 3; } av_strlcat(buf, rel, size); |