redirect http get requests of / to index.html (note, the http_parse_request may worth...
authorAlex Beregszaszi <alex@rtfs.hu>
Sat, 24 Feb 2007 03:17:59 +0000 (03:17 +0000)
committerAlex Beregszaszi <alex@rtfs.hu>
Sat, 24 Feb 2007 03:17:59 +0000 (03:17 +0000)
Originally committed as revision 8113 to svn://svn.ffmpeg.org/ffmpeg/trunk

ffserver.c

index c03381d..ccbf41f 100644 (file)
@@ -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))