[vlc-commits] http: test hand-over to MMSH plug-in
Rémi Denis-Courmont
git at videolan.org
Tue Mar 1 06:57:41 CET 2016
vlc | branch: master | Rémi Denis-Courmont <remi at remlab.net> | Tue Mar 1 07:40:40 2016 +0200| [67ddb38f55930b48d1136648c6821e5c71fe309e] | committer: Rémi Denis-Courmont
http: test hand-over to MMSH plug-in
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=67ddb38f55930b48d1136648c6821e5c71fe309e
---
modules/access/http/file_test.c | 29 +++++++++++++++++++++++++++--
1 file changed, 27 insertions(+), 2 deletions(-)
diff --git a/modules/access/http/file_test.c b/modules/access/http/file_test.c
index bf14e05..d9e043b 100644
--- a/modules/access/http/file_test.c
+++ b/modules/access/http/file_test.c
@@ -35,10 +35,13 @@
#include "message.h"
static const char url[] = "https://www.example.com:8443/dir/file.ext?a=b";
+static const char url_http[] = "http://www.example.com:8443/dir/file.ext?a=b";
+static const char url_mmsh[] = "mmsh://www.example.com:8443/dir/file.ext?a=b";
static const char ua[] = PACKAGE_NAME "/" PACKAGE_VERSION " (test suite)";
static const char *replies[2] = { NULL, NULL };
static uintmax_t offset = 0;
+static bool secure = true;
static bool etags = false;
static int lang = -1;
@@ -211,6 +214,28 @@ int main(void)
assert(vlc_http_file_can_seek(f));
assert(vlc_http_file_get_size(f) == 2);
+ /* Protocol redirect hacks - not over TLS */
+ replies[0] = "HTTP/1.1 200 OK\r\n"
+ "Pragma: features\r\n"
+ "\r\n";
+ assert(vlc_http_file_seek(f, 0) == 0);
+ assert(vlc_http_file_get_redirect(f) == NULL);
+
+ vlc_http_file_destroy(f);
+
+ secure = false;
+ lang = -1;
+ f = vlc_http_file_create(NULL, url_http, ua, NULL);
+ assert(f != NULL);
+
+ /* Protocol redirect hacks - over insecure HTTP */
+ replies[0] = "HTTP/1.1 200 OK\r\n"
+ "Pragma: features\r\n"
+ "\r\n";
+ str = vlc_http_file_get_redirect(f);
+ assert(str != NULL && strcmp(str, url_mmsh) == 0);
+ free(str);
+
vlc_http_file_destroy(f);
/* Dummy API calls */
@@ -292,7 +317,7 @@ struct vlc_http_msg *vlc_http_mgr_request(struct vlc_http_mgr *mgr, bool https,
const char *str;
char *end;
- assert(https);
+ assert(https == secure);
assert(mgr == NULL);
assert(!strcmp(host, "www.example.com"));
assert(port == 8443);
@@ -300,7 +325,7 @@ struct vlc_http_msg *vlc_http_mgr_request(struct vlc_http_mgr *mgr, bool https,
str = vlc_http_msg_get_method(req);
assert(!strcmp(str, "GET"));
str = vlc_http_msg_get_scheme(req);
- assert(!strcmp(str, "https"));
+ assert(!strcmp(str, secure ? "https" : "http"));
str = vlc_http_msg_get_authority(req);
assert(!strcmp(str, "www.example.com:8443"));
str = vlc_http_msg_get_path(req);
More information about the vlc-commits
mailing list