Control (broadcast) data received by the NetServer...
| 424 | msg = mergeMessageList(sup->m_splitUrgent); |
| 425 | sup->m_splitUrgent = nullptr; |
| 426 | } |
| 427 | else |
| 428 | { // another message-part => remember it! |
| 429 | if (!sup->m_splitUrgent) |
| 430 | { |
| 431 | sup->m_splitUrgent = msg; |
| 432 | } |
| 433 | else |
| 434 | { |
| 435 | sup->m_lastSplitUrgent->next = msg; |
| 436 | } |
| 437 | (sup->m_lastSplitUrgent = msg)->next = nullptr; |
| 438 | _server->leaveRcv(); |
| 439 | return nsNoMoreCallbacks; |
| 440 | } |
| 441 | } |
| 442 | else if (closing) |
| 443 | { // the last message-part to be merged.. |
| 444 | if (!sup->m_split || !sup->m_lastSplit) |
| 445 | { // closing fragment with no opener — drop it, don't deref null |
| 446 | _server->leaveRcv(); |
| 447 | return nsNoMoreCallbacks; |
| 448 | } |
| 449 | sup->m_lastSplit->next = msg; |
| 450 | msg->next = nullptr; |
| 451 | msg = mergeMessageList(sup->m_split); |
| 452 | sup->m_split = nullptr; |
| 453 | } |
| 454 | else |
| 455 | { // another message-part => remember it! |
| 456 | if (!sup->m_split) |
| 457 | { |
| 458 | sup->m_split = msg; |
| 459 | } |
| 460 | else |
| 461 | { |
| 462 | sup->m_lastSplit->next = msg; |
| 463 | } |
| 464 | (sup->m_lastSplit = msg)->next = nullptr; |
| 465 | _server->leaveRcv(); |
| 466 | return nsNoMoreCallbacks; |
| 467 | } |
| 468 | #ifdef NET_LOG_MERGE |
| 469 | #ifdef NET_LOG_BRIEF |
| 470 | NetLog("Pe(%u):rMerS(%u,%u,%x,%x)", getServerPeer()->getPeerId(), msg->getLength(), msg->getSerial(), |
| 471 | (unsigned)msg->getFlags(), msg->id); |
| 472 | #else |
| 473 | NetLog("Peer(%u)::serverReceive: merging user message (len=%3u, serial=%4u, flags=%04x, ID=%x)", |
| 474 | getServerPeer()->getPeerId(), msg->getLength(), msg->getSerial(), (unsigned)msg->getFlags(), msg->id); |
| 475 | #endif |
| 476 | #endif |
| 477 | } |
| 478 | |
| 479 | _server->insertReceived(msg); |
| 480 | |
| 481 | _server->leaveRcv(); |
| 482 | |
| 483 | return nsNoMoreCallbacks; |
nothing calls this directly
no test coverage detected