static int setup_init_recv_msg()

in src/uhttp.c [465:498]


static int setup_init_recv_msg(HTTP_RECV_DATA* recv_msg)
{
    int result;
    recv_msg->status_code = 0;
    recv_msg->recv_state = state_initial;
    recv_msg->total_body_len = 0;
    if (recv_msg->resp_header != NULL)
    {
        HTTPHeaders_Free(recv_msg->resp_header);
    }
    if (recv_msg->msg_body != NULL)
    {
        BUFFER_delete(recv_msg->msg_body);
    }
    if ((recv_msg->resp_header = HTTPHeaders_Alloc()) == NULL)
    {
        /* Codes_SRS_UHTTP_07_017: [If any failure encountered http_client_execute_request shall return HTTP_CLIENT_ERROR] */
        LogError("Failure allocating http http_data items");
        result = HTTP_CLIENT_ERROR;
    }
    else if ((recv_msg->msg_body = BUFFER_new()) == NULL)
    {
        /* Codes_SRS_UHTTP_07_017: [If any failure encountered http_client_execute_request shall return HTTP_CLIENT_ERROR] */
        LogError("Failure allocating http data items");
        HTTPHeaders_Free(recv_msg->resp_header);
        recv_msg->resp_header = NULL;
        result = HTTP_CLIENT_ERROR;
    }
    else
    {
        result = 0;
    }
    return result;
}