static int
httpc_create_request_string(const httpc_connection_t *settings, const char* server_name, int server_port, const char* uri,
const httpc_request_info_t* request_info, int use_host, char *buffer, size_t buffer_size)
{
LWIP_ASSERT("request_info != NULL", request_info != NULL);
if (request_info->request_type == HTTPC_GET) {
if (settings->use_proxy) {
LWIP_ASSERT("server_name != NULL", server_name != NULL);
if (server_port != HTTP_DEFAULT_PORT) {
return snprintf(buffer, buffer_size, HTTPC_REQ_11_PROXY_PORT_FORMAT(server_name, server_port, uri, server_name));
} else {
return snprintf(buffer, buffer_size, HTTPC_REQ_11_PROXY_FORMAT(server_name, uri, server_name));
}
} else if (use_host) {
LWIP_ASSERT("server_name != NULL", server_name != NULL);
return snprintf(buffer, buffer_size, HTTPC_REQ_11_HOST_FORMAT(uri, server_name));
} else {
return snprintf(buffer, buffer_size, HTTPC_REQ_11_FORMAT(uri));
}
} else if (request_info->request_type == HTTPC_POST) {
if (settings->use_proxy) {
LWIP_ASSERT("server_name != NULL", server_name != NULL);
if (server_port != HTTP_DEFAULT_PORT) {
return snprintf(buffer, buffer_size, HTTPC_POST_REQ_11_PROXY_PORT_FORMAT(
server_name,
server_port,
uri,
server_name,
get_application_type(request_info->application_type),
strlen(request_info->payload),
request_info->payload));
} else {
return snprintf(buffer, buffer_size, HTTPC_POST_REQ_11_PROXY_FORMAT(
server_name,
uri,
server_name,
get_application_type(request_info->application_type),
strlen(request_info->payload),
request_info->payload));
}
} else if (use_host) {
LWIP_ASSERT("server_name != NULL", server_name != NULL);
return snprintf(buffer, buffer_size, HTTPC_POST_REQ_11_HOST_FORMAT(
uri,
server_name,
get_application_type(request_info->application_type),
strlen(request_info->payload),
request_info->payload));
} else {
return snprintf(buffer, buffer_size, HTTPC_POST_REQ_11_FORMAT(
uri,
get_application_type(request_info->application_type),
strlen(request_info->payload),
request_info->payload));
}
} else {
LWIP_ASSERT("request_type not supported", 0);
}
}