int timeout;
UINT16 extAuth;
UINT16 reserved2;
- rdg_http_encoding_context* transferEncoding;
+ rdg_http_encoding_context transferEncoding;
};
enum
if (!s)
return NULL;
- if (!rdg_read_all(rdg->tlsOut, Stream_Buffer(s), header, rdg->transferEncoding))
+ if (!rdg_read_all(rdg->tlsOut, Stream_Buffer(s), header, &rdg->transferEncoding))
{
Stream_Free(s, TRUE);
return NULL;
}
if (!rdg_read_all(rdg->tlsOut, Stream_Buffer(s) + header, (int)packetLength - (int)header,
- rdg->transferEncoding))
+ &rdg->transferEncoding))
{
Stream_Free(s, TRUE);
return NULL;
long statusCode;
SSIZE_T bodyLength;
long StatusCode;
+ TRANSFER_ENCODING encoding;
if (!rdg_tls_connect(rdg, tls, peerAddress, timeout))
return FALSE;
statusCode = http_response_get_status_code(response);
bodyLength = http_response_get_body_length(response);
+ encoding = http_response_get_transfer_encoding(response);
http_response_free(response);
WLog_DBG(TAG, "%s authorization result: %d", method, statusCode);
if (strcmp(method, "RDG_OUT_DATA") == 0)
{
- if (http_response_get_transfer_encoding(response) == TransferEncodingChunked)
+ if (encoding == TransferEncodingChunked)
{
- rdg->transferEncoding->httpTransferEncoding = TransferEncodingChunked;
- rdg->transferEncoding->context.chunked = (rdg_http_encoding_chunked_context*)calloc(
+ rdg->transferEncoding.httpTransferEncoding = TransferEncodingChunked;
+ rdg->transferEncoding.context.chunked = (rdg_http_encoding_chunked_context*)calloc(
1, sizeof(rdg_http_encoding_chunked_context));
- rdg->transferEncoding->context.chunked->nextOffset = 0;
- rdg->transferEncoding->context.chunked->headerFooterPos = 0;
- rdg->transferEncoding->context.chunked->state = ChunkStateLenghHeader;
- rdg->transferEncoding->context.chunked->lenBuffer = (char*)calloc(11, sizeof(char));
+ rdg->transferEncoding.context.chunked->nextOffset = 0;
+ rdg->transferEncoding.context.chunked->headerFooterPos = 0;
+ rdg->transferEncoding.context.chunked->state = ChunkStateLenghHeader;
+ rdg->transferEncoding.context.chunked->lenBuffer = (char*)calloc(11, sizeof(char));
}
- if (!rdg_skip_seed_payload(tls, bodyLength, rdg->transferEncoding))
+ if (!rdg_skip_seed_payload(tls, bodyLength, &rdg->transferEncoding))
{
return FALSE;
}
while (readCount < payloadSize)
{
status = rdg_socket_read(rdg->tlsOut->bio, Stream_Pointer(s), payloadSize - readCount,
- rdg->transferEncoding);
+ &rdg->transferEncoding);
if (status <= 0)
{
{
status = rdg_socket_read(rdg->tlsOut->bio, (BYTE*)(&header) + readCount,
(int)sizeof(RdgPacketHeader) - (int)readCount,
- rdg->transferEncoding);
+ &rdg->transferEncoding);
if (status <= 0)
{
{
status =
rdg_socket_read(rdg->tlsOut->bio, (BYTE*)(&rdg->packetRemainingCount) + readCount,
- 2 - (int)readCount, rdg->transferEncoding);
+ 2 - (int)readCount, &rdg->transferEncoding);
if (status < 0)
{
}
readSize = (rdg->packetRemainingCount < size) ? rdg->packetRemainingCount : size;
- status = rdg_socket_read(rdg->tlsOut->bio, buffer, readSize, rdg->transferEncoding);
+ status = rdg_socket_read(rdg->tlsOut->bio, buffer, readSize, &rdg->transferEncoding);
if (status <= 0)
{
BIO_set_data(rdg->frontBio, rdg);
InitializeCriticalSection(&rdg->writeSection);
- rdg->transferEncoding =
- (rdg_http_encoding_context*)calloc(1, sizeof(rdg_http_encoding_context));
-
- rdg->transferEncoding->httpTransferEncoding = TransferEncodingIdentity;
+ rdg->transferEncoding.httpTransferEncoding = TransferEncodingIdentity;
}
return rdg;
DeleteCriticalSection(&rdg->writeSection);
- if (rdg->transferEncoding->httpTransferEncoding == TransferEncodingChunked)
+ if (rdg->transferEncoding.httpTransferEncoding == TransferEncodingChunked)
{
- free(rdg->transferEncoding->context.chunked->lenBuffer);
- free(rdg->transferEncoding->context.chunked);
+ free(rdg->transferEncoding.context.chunked->lenBuffer);
+ free(rdg->transferEncoding.context.chunked);
}
- free(rdg->transferEncoding);
free(rdg);
}