| 654 | } |
| 655 | |
| 656 | static 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 | |
| 676 | static void DoraXrtHttpStreamOnOpen(ptr owner, xnetstream* stream) { |
| 677 | DoraXrtHttpStreamContext* ctx = (DoraXrtHttpStreamContext*)owner; |
no test coverage detected