Commit d8d7381a authored by Pawel Jasinski's avatar Pawel Jasinski Committed by Marcel Stör
Browse files

host field in HTTP header is no longer limited to 31 charcters (#2205)

* host field in HTTP header is no longer limited to 31 charcters
* added description for magic values
parent 443e8219
...@@ -215,20 +215,23 @@ static void ICACHE_FLASH_ATTR http_connect_callback( void * arg ) ...@@ -215,20 +215,23 @@ static void ICACHE_FLASH_ATTR http_connect_callback( void * arg )
ua_len = strlen(ua_header); ua_len = strlen(ua_header);
} }
char host_header[32] = ""; char * host_header = "";
int host_len = 0; int host_len = 0;
if ( os_strstr( req->headers, "Host:" ) == NULL && os_strstr( req->headers, "host:" ) == NULL) if ( os_strstr( req->headers, "Host:" ) == NULL && os_strstr( req->headers, "host:" ) == NULL)
{ {
int max_header_len = 9 + strlen(req->hostname); // 9 is fixed size of "Host:[space][cr][lf]\0"
if ((req->port == 80) if ((req->port == 80)
#ifdef CLIENT_SSL_ENABLE #ifdef CLIENT_SSL_ENABLE
|| ((req->port == 443) && ( req->secure )) || ((req->port == 443) && ( req->secure ))
#endif #endif
) )
{ {
host_header = alloca(max_header_len);
os_sprintf( host_header, "Host: %s\r\n", req->hostname ); os_sprintf( host_header, "Host: %s\r\n", req->hostname );
} }
else else
{ {
host_header = alloca(max_header_len + 6); // 6 is worst case of ":port" where port is maximum 5 digits
os_sprintf( host_header, "Host: %s:%d\r\n", req->hostname, req->port ); os_sprintf( host_header, "Host: %s:%d\r\n", req->hostname, req->port );
} }
host_len = strlen(host_header); host_len = strlen(host_header);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment