[FFmpeg-cvslog] applehttp: Handle absolute paths relative to the current server

Martin Storsjö git
Sun Feb 6 21:08:54 CET 2011


ffmpeg | branch: master | Martin Storsj? <martin at martin.st> | Fri Feb  4 11:09:48 2011 +0200| [105ba7dc284e13ebaa87cbd1eb6f0650c939f0e7] | committer: Michael Niedermayer

applehttp: Handle absolute paths relative to the current server

This fixes roundup issue 2583.

Signed-off-by: Ronald S. Bultje <rsbultje at gmail.com>
(cherry picked from commit 185a155e5701cfaa0281bf91a5a140d498aa0a7f)

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=105ba7dc284e13ebaa87cbd1eb6f0650c939f0e7
---

 libavformat/applehttp.c |   14 ++++++++++++++
 1 files changed, 14 insertions(+), 0 deletions(-)

diff --git a/libavformat/applehttp.c b/libavformat/applehttp.c
index 50466fa..37a040c 100644
--- a/libavformat/applehttp.c
+++ b/libavformat/applehttp.c
@@ -90,6 +90,20 @@ static void make_absolute_url(char *buf, int size, const char *base,
                               const char *rel)
 {
     char *sep;
+    /* Absolute path, relative to the current server */
+    if (base && strstr(base, "://") && rel[0] == '/') {
+        if (base != buf)
+            av_strlcpy(buf, base, size);
+        sep = strstr(buf, "://");
+        if (sep) {
+            sep += 3;
+            sep = strchr(sep, '/');
+            if (sep)
+                *sep = '\0';
+        }
+        av_strlcat(buf, rel, size);
+        return;
+    }
     /* If rel actually is an absolute url, just copy it */
     if (!base || strstr(rel, "://") || rel[0] == '/') {
         av_strlcpy(buf, rel, size);




More information about the ffmpeg-cvslog mailing list