Stricter checks for mg_url_*()

This commit is contained in:
cpq committed 2021-03-24 15:49:35 +00:00
1 parent 0ae5c61759
commit e9d122f231
6 files changed
+26 -12

No files matched your search

+4 -4
View File
@@ -16,19 +16,19 @@ static struct url urlparse(const char *url) {
struct url u;
memset(&u, 0, sizeof(u));
for (i = 0; url[i] != '\0'; i++) {
if (i > 0 && url[i - 1] == '/' && url[i] == '/') {
if (i > 0 && u.host == 0 && url[i - 1] == '/' && url[i] == '/') {
u.host = i + 1;
u.port = 0;
} else if (url[i] == ']') {
u.port = 0; // IPv6 URLs, like http://[::1]/bar
} else if (url[i] == ':') {
} else if (url[i] == ':' && u.port == 0) {
u.port = i + 1;
} else if (url[i] == '@') {
} else if (url[i] == '@' && u.user == 0 && u.pass == 0) {
u.user = u.host;
u.pass = u.port;
u.host = i + 1;
u.port = 0;
} else if (u.host && !u.uri && url[i] == '/') {
} else if (u.host && u.uri == 0 && url[i] == '/') {
u.uri = i;
}
}
+1 -1
View File
@@ -332,6 +332,6 @@ unsigned long mg_millis(void) {
#else
struct timespec ts;
clock_gettime(CLOCK_REALTIME, &ts);
return ts.tv_sec * 1000 + ts.tv_nsec / 1000000;
return (unsigned long) ((uint64_t) ts.tv_sec * 1000 + ts.tv_nsec / 1000000);
#endif
}