mirror of
https://github.com/cesanta/mongoose.git
synced 2026-11-03 13:28:44 +00:00
Merge pull request #1324 from ignacionr/fix/issue-1323
allow for in-url colon, when port is not specified
This commit is contained in:
3 files changed
+3
-2
No files matched your search
+1
-1
@@ -4045,7 +4045,7 @@ static struct url urlparse(const char *url) {
|
|||||||
u.port = 0;
|
u.port = 0;
|
||||||
} else if (url[i] == ']') {
|
} else if (url[i] == ']') {
|
||||||
u.port = 0; // IPv6 URLs, like http://[::1]/bar
|
u.port = 0; // IPv6 URLs, like http://[::1]/bar
|
||||||
} else if (url[i] == ':' && u.port == 0) {
|
} else if (url[i] == ':' && u.port == 0 && u.uri == 0) {
|
||||||
u.port = i + 1;
|
u.port = i + 1;
|
||||||
} else if (url[i] == '@' && u.user == 0 && u.pass == 0) {
|
} else if (url[i] == '@' && u.user == 0 && u.pass == 0) {
|
||||||
u.user = u.host;
|
u.user = u.host;
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ static struct url urlparse(const char *url) {
|
|||||||
u.port = 0;
|
u.port = 0;
|
||||||
} else if (url[i] == ']') {
|
} else if (url[i] == ']') {
|
||||||
u.port = 0; // IPv6 URLs, like http://[::1]/bar
|
u.port = 0; // IPv6 URLs, like http://[::1]/bar
|
||||||
} else if (url[i] == ':' && u.port == 0) {
|
} else if (url[i] == ':' && u.port == 0 && u.uri == 0) {
|
||||||
u.port = i + 1;
|
u.port = i + 1;
|
||||||
} else if (url[i] == '@' && u.user == 0 && u.pass == 0) {
|
} else if (url[i] == '@' && u.user == 0 && u.pass == 0) {
|
||||||
u.user = u.host;
|
u.user = u.host;
|
||||||
|
|||||||
@@ -125,6 +125,7 @@ static void test_url(void) {
|
|||||||
ASSERT(vcmp(mg_url_host("p://u:p@bar:1234/a"), "bar"));
|
ASSERT(vcmp(mg_url_host("p://u:p@bar:1234/a"), "bar"));
|
||||||
ASSERT(vcmp(mg_url_host("p://u:p@[::1]:1234/a"), "::1"));
|
ASSERT(vcmp(mg_url_host("p://u:p@[::1]:1234/a"), "::1"));
|
||||||
ASSERT(vcmp(mg_url_host("p://u:p@[1:2::3]:1234/a"), "1:2::3"));
|
ASSERT(vcmp(mg_url_host("p://u:p@[1:2::3]:1234/a"), "1:2::3"));
|
||||||
|
ASSERT(vcmp(mg_url_host("p://foo/x:y/z"), "foo"));
|
||||||
|
|
||||||
// Port
|
// Port
|
||||||
ASSERT(mg_url_port("foo:1234") == 1234);
|
ASSERT(mg_url_port("foo:1234") == 1234);
|
||||||
|
|||||||
Reference in new issue
Block a user