MCPcopy Create free account
hub / github.com/Moddable-OpenSource/moddable / tcpReceive

Function tcpReceive

modules/io/socket/zephyr/tcp.c:525–569  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

523}
524
525void tcpReceive(struct net_context *context, struct net_pkt *pkt, union net_ip_header *ip_hdr, union net_proto_header *proto_hdr, int status, void *user_data)
526{
527 TCP tcp = user_data;
528 TCPBuffer buffer;
529
530 if ((NULL == pkt) || (status < 0)) {
531 tcp->error = status;
532 removeTCPCallbacks(tcp);
533 tcpTrigger(tcp, kTCPError);
534 return;
535 }
536
537// #ifdef mxDebug
538// if (fxInNetworkDebugLoop(tcp->the))
539// return;
540// #endif
541
542 buffer = c_malloc(sizeof(TCPBufferRecord));
543 if (!buffer) {
544 net_pkt_unref(buffer->pkt);
545 return; //@@ are we toast here?
546 }
547
548 buffer->next = NULL;
549 buffer->pkt = pkt;
550 buffer->bytes = net_pkt_remaining_data(pkt);
551 buffer->total = buffer->bytes;
552
553 modInstrumentationAdjust(NetworkBytesRead, buffer->bytes);
554
555 if (tcp->buffers) {
556 TCPBuffer walker;
557
558 for (walker = tcp->buffers; walker->next; walker = walker->next)
559 ;
560 walker->next = buffer;
561 }
562 else
563 tcp->buffers = buffer;
564
565 net_context_update_recv_wnd(tcp->context, -buffer->total);
566
567 if (tcp->triggerable & kTCPReadable)
568 tcpTrigger(tcp, kTCPReadable);
569}
570
571void tcpSent(struct net_context *context, int status, void *user_data)
572{

Callers

nothing calls this directly

Calls 2

removeTCPCallbacksFunction · 0.70
tcpTriggerFunction · 0.70

Tested by

no test coverage detected