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

Function DoraXrtHttpStreamOnRecv

Source/Http/XrtHttpClient.c:686–716  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

684}
685
686static void DoraXrtHttpStreamOnRecv(ptr owner, xnetstream* stream, xnetchain* chain) {
687 DoraXrtHttpStreamContext* ctx = (DoraXrtHttpStreamContext*)owner;
688 size_t len;
689 char* data;
690 (void)stream;
691 if (!ctx || !chain || __xnetAtomicLoad32(&ctx->closeRequested) != 0) {
692 return;
693 }
694 len = xrtNetChainBytes(chain);
695 if (len == 0u) {
696 return;
697 }
698 data = (char*)malloc(len);
699 if (!data) {
700 DoraXrtHttpStreamCloseWith(ctx, XRT_NET_ERROR);
701 return;
702 }
703 if (xrtNetChainPeek(chain, data, len) != len) {
704 free(data);
705 DoraXrtHttpStreamCloseWith(ctx, XRT_NET_ERROR);
706 return;
707 }
708 xrtNetChainConsume(chain, len);
709 if (!DoraXrtHttpStreamAppend(ctx, data, len)) {
710 free(data);
711 DoraXrtHttpStreamCloseWith(ctx, XRT_NET_ERROR);
712 return;
713 }
714 free(data);
715 (void)DoraXrtHttpStreamProcess(ctx);
716}
717
718static void DoraXrtHttpStreamOnClose(ptr owner, xnetstream* stream, xnet_result reason) {
719 DoraXrtHttpStreamContext* ctx = (DoraXrtHttpStreamContext*)owner;

Callers

nothing calls this directly

Calls 5

mallocFunction · 0.85
DoraXrtHttpStreamAppendFunction · 0.85
DoraXrtHttpStreamProcessFunction · 0.85
freeFunction · 0.50

Tested by

no test coverage detected