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

Function DoraXrtHttpStreamProcess

Source/Http/XrtHttpClient.c:656–674  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

654}
655
656static int DoraXrtHttpStreamProcess(DoraXrtHttpStreamContext* ctx) {
657 if (!DoraXrtHttpParseHeaders(ctx)) {
658 DoraXrtHttpStreamCloseWith(ctx, XRT_NET_ERROR);
659 return 0;
660 }
661 if (!ctx->headerParsed || ctx->noBody || __xnetAtomicLoad32(&ctx->closeRequested) != 0) {
662 return 1;
663 }
664 if (ctx->bodyMode == DORA_XRT_HTTP_BODY_CHUNKED) {
665 return DoraXrtHttpProcessChunkedBody(ctx);
666 }
667 if (ctx->bodyMode == DORA_XRT_HTTP_BODY_CONTENT_LENGTH) {
668 return DoraXrtHttpProcessFixedBody(ctx);
669 }
670 if (ctx->bodyMode == DORA_XRT_HTTP_BODY_CLOSE_DELIMITED) {
671 return DoraXrtHttpProcessCloseDelimitedBody(ctx);
672 }
673 return 1;
674}
675
676static void DoraXrtHttpStreamOnOpen(ptr owner, xnetstream* stream) {
677 DoraXrtHttpStreamContext* ctx = (DoraXrtHttpStreamContext*)owner;

Callers 2

DoraXrtHttpStreamOnRecvFunction · 0.85
DoraXrtHttpStreamOnCloseFunction · 0.85

Tested by

no test coverage detected