diff options
author | Alex Beregszaszi <alex@rtfs.hu> | 2007-02-24 03:17:59 +0000 |
---|---|---|
committer | Alex Beregszaszi <alex@rtfs.hu> | 2007-02-24 03:17:59 +0000 |
commit | bae79c048fbbeb541182d93abf7c687ce79c5837 (patch) | |
tree | c7fa1ac3a2361391058f8d4911fa9480edd9ad62 /ffserver.c | |
parent | c3f5818525ec9d65e10e25d697e97ad43f42d354 (diff) | |
download | ffmpeg-bae79c048fbbeb541182d93abf7c687ce79c5837.tar.gz |
redirect http get requests of / to index.html (note, the http_parse_request may worth a rewrite)
Originally committed as revision 8113 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'ffserver.c')
-rw-r--r-- | ffserver.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/ffserver.c b/ffserver.c index c03381d54a..ccbf41f3b8 100644 --- a/ffserver.c +++ b/ffserver.c @@ -1175,7 +1175,7 @@ static int http_parse_request(HTTPContext *c) char *p; enum RedirType redir_type; char cmd[32]; - char info[1024], *filename; + char info[1024], filename[1024]; char url[1024], *q; char protocol[32]; char msg[1024]; @@ -1209,11 +1209,7 @@ static int http_parse_request(HTTPContext *c) http_log("New connection: %s %s\n", cmd, url); /* find the filename and the optional info string in the request */ - p = url; - if (*p == '/') - p++; - filename = p; - p = strchr(p, '?'); + p = strchr(url, '?'); if (p) { pstrcpy(info, sizeof(info), p); *p = '\0'; @@ -1221,6 +1217,8 @@ static int http_parse_request(HTTPContext *c) info[0] = '\0'; } + pstrcpy(filename, sizeof(filename)-1, url + ((*url == '/') ? 1 : 0)); + for (p = c->buffer; *p && *p != '\r' && *p != '\n'; ) { if (strncasecmp(p, "User-Agent:", 11) == 0) { useragent = p + 11; @@ -1248,12 +1246,16 @@ static int http_parse_request(HTTPContext *c) strcpy(filename + strlen(filename)-2, "m"); } else if (match_ext(filename, "rtsp")) { redir_type = REDIR_RTSP; - compute_real_filename(filename, sizeof(url) - 1); + compute_real_filename(filename, sizeof(filename) - 1); } else if (match_ext(filename, "sdp")) { redir_type = REDIR_SDP; - compute_real_filename(filename, sizeof(url) - 1); + compute_real_filename(filename, sizeof(filename) - 1); } + // "redirect" / request to index.html + if (!strlen(filename)) + pstrcpy(filename, sizeof(filename) - 1, "index.html"); + stream = first_stream; while (stream != NULL) { if (!strcmp(stream->filename, filename) && validate_acl(stream, c)) |