MCPcopy Create free account
hub / github.com/IppClub/Dora-SSR / DoraXrtHttpProcessChunkedTrailers

Function DoraXrtHttpProcessChunkedTrailers

Source/Http/XrtHttpClient.c:570–592  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

568}
569
570static int DoraXrtHttpProcessChunkedTrailers(DoraXrtHttpStreamContext* ctx) {
571 size_t trailerEnd;
572 if (ctx->pendingLen >= 2u && ctx->pending[0] == '\r' && ctx->pending[1] == '\n') {
573 DoraXrtHttpStreamConsume(ctx, 2u);
574 DoraXrtHttpStreamCloseWith(ctx, XRT_NET_OK);
575 return 1;
576 }
577 trailerEnd = DoraXrtHttpFindBytes(ctx->pending, ctx->pendingLen, "\r\n\r\n", 4u);
578 if (trailerEnd != (size_t)-1) {
579 if (trailerEnd + 4u > DORA_XRT_HTTP_MAX_HEADER_BYTES) {
580 DoraXrtHttpStreamCloseWith(ctx, XRT_NET_ERROR);
581 return 0;
582 }
583 DoraXrtHttpStreamConsume(ctx, trailerEnd + 4u);
584 DoraXrtHttpStreamCloseWith(ctx, XRT_NET_OK);
585 return 1;
586 }
587 if (ctx->pendingLen > DORA_XRT_HTTP_MAX_HEADER_BYTES) {
588 DoraXrtHttpStreamCloseWith(ctx, XRT_NET_ERROR);
589 return 0;
590 }
591 return 1;
592}
593
594static int DoraXrtHttpProcessChunkedBody(DoraXrtHttpStreamContext* ctx) {
595 for (;;) {

Callers 1

Calls 3

DoraXrtHttpStreamConsumeFunction · 0.85
DoraXrtHttpFindBytesFunction · 0.85

Tested by

no test coverage detected