From 1d4202ade602dd4f1192c69aed5cc905e7a9b4e2 Mon Sep 17 00:00:00 2001 From: Jay Satiro Date: Sun, 13 Nov 2016 15:27:57 -0500 Subject: url: Fix parsing for when 'file' is the default protocol Follow-up to 3463408. Prior to 3463408 file:// hostnames were silently stripped. Prior to this commit it did not work when a schemeless url was used with file as the default protocol. Ref: https://curl.haxx.se/mail/lib-2016-11/0081.html Closes https://github.com/curl/curl/pull/1124 Also fix for drive letters: - Support --proto-default file c:/foo/bar.txt - Support file://c:/foo/bar.txt - Fail when a file:// drive letter is detected and not MSDOS/Windows. Bug: https://github.com/curl/curl/issues/1187 Reported-by: Anatol Belski Assisted-by: Anatol Belski --- tests/data/Makefile.inc | 2 +- tests/data/test1145 | 40 ++++++++++++++++++++++++++++++++++++++++ tests/data/test1146 | 45 +++++++++++++++++++++++++++++++++++++++++++++ tests/data/test1534 | 2 +- 4 files changed, 87 insertions(+), 2 deletions(-) create mode 100644 tests/data/test1145 create mode 100644 tests/data/test1146 (limited to 'tests') diff --git a/tests/data/Makefile.inc b/tests/data/Makefile.inc index 9329bf9fa..9039851db 100644 --- a/tests/data/Makefile.inc +++ b/tests/data/Makefile.inc @@ -120,7 +120,7 @@ test1112 test1113 test1114 test1115 test1116 test1117 test1118 test1119 \ test1120 test1121 test1122 test1123 test1124 test1125 test1126 test1127 \ test1128 test1129 test1130 test1131 test1132 test1133 test1134 test1135 \ test1136 test1137 test1138 test1139 test1140 test1141 test1142 test1143 \ -test1144 \ +test1144 test1145 test1146 \ test1200 test1201 test1202 test1203 test1204 test1205 test1206 test1207 \ test1208 test1209 test1210 test1211 test1212 test1213 test1214 test1215 \ test1216 test1217 test1218 test1219 \ diff --git a/tests/data/test1145 b/tests/data/test1145 new file mode 100644 index 000000000..287bebfcc --- /dev/null +++ b/tests/data/test1145 @@ -0,0 +1,40 @@ + + + +FILE + + + + + + +# Client-side + + +file + + +file:// bad host + +# This command should not succeed since we only accept +# file:/// file://localhost/ file://127.0.0.1/ + +file://bad-host%PWD/log/test1145.txt + + +foo + bar +bar + foo +moo + + + +# Verify data after the test has been "shot" + +# CURLE_URL_MALFORMAT is error code 3 + +3 + + + diff --git a/tests/data/test1146 b/tests/data/test1146 new file mode 100644 index 000000000..43f33b793 --- /dev/null +++ b/tests/data/test1146 @@ -0,0 +1,45 @@ + + + +FILE +--proto-default + + + + + +foo + bar +bar + foo +moo + + + +# Client-side + + +file + + +--proto-default file + + +--proto-default file %PWD/log/test1146.txt + + +foo + bar +bar + foo +moo + + + +# Verify data after the test has been "shot" + + +0 + + + diff --git a/tests/data/test1534 b/tests/data/test1534 index f3cd2f0e3..5ebf57d3a 100644 --- a/tests/data/test1534 +++ b/tests/data/test1534 @@ -27,7 +27,7 @@ http lib1534 -Test CURLINFO_RESPONSE_CODE +CURLINFO_FILETIME init and reset http://%HOSTIP:%HTTPPORT/1534 -- cgit v1.2.3