|
|
@@ -214,12 +214,22 @@ static int webclient_resolve_address(struct webclient_session *session, struct a
|
|
|
|
|
|
/* resolve port */
|
|
|
port_ptr = rt_strstr(host_addr + host_addr_len, ":");
|
|
|
- if (port_ptr && path_ptr && (port_ptr < path_ptr))
|
|
|
+ if (port_ptr && (!path_ptr || (port_ptr < path_ptr)))
|
|
|
{
|
|
|
- int port_len = path_ptr - port_ptr - 1;
|
|
|
-
|
|
|
- rt_strncpy(port_str, port_ptr + 1, port_len);
|
|
|
- port_str[port_len] = '\0';
|
|
|
+ if (!path_ptr)
|
|
|
+ {
|
|
|
+ rt_strcpy(port_str, port_ptr + 1);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ int port_len = path_ptr - port_ptr - 1;
|
|
|
+ rt_strncpy(port_str, port_ptr + 1, port_len);
|
|
|
+ port_str[port_len] = '\0';
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ port_ptr = RT_NULL;
|
|
|
}
|
|
|
|
|
|
if (port_ptr && (!path_ptr))
|