| 83 | } |
| 84 | |
| 85 | void NetConnection::eventPacketDropped(PacketNotify *notify) |
| 86 | { |
| 87 | NetEventNote *walk = notify->eventList; |
| 88 | NetEventNote **insertList = &mSendEventQueueHead; |
| 89 | NetEventNote *temp; |
| 90 | |
| 91 | while(walk) |
| 92 | { |
| 93 | switch(walk->mEvent->mGuaranteeType) |
| 94 | { |
| 95 | // It was a guaranteed ordered packet, reinsert it back into |
| 96 | // mSendEventQueueHead in the right place (based on seq numbers) |
| 97 | case NetEvent::GuaranteedOrdered: |
| 98 | |
| 99 | //Con::printf("EVT %d: DROP - %d", getId(), walk->mSeqCount); |
| 100 | |
| 101 | while(*insertList && (*insertList)->mSeqCount < walk->mSeqCount) |
| 102 | insertList = &((*insertList)->mNextEvent); |
| 103 | |
| 104 | temp = walk->mNextEvent; |
| 105 | walk->mNextEvent = *insertList; |
| 106 | if(!walk->mNextEvent) |
| 107 | mSendEventQueueTail = walk; |
| 108 | *insertList = walk; |
| 109 | insertList = &(walk->mNextEvent); |
| 110 | walk = temp; |
| 111 | break; |
| 112 | |
| 113 | // It was a guaranteed packet, put it at the top of |
| 114 | // mUnorderedSendEventQueueHead. |
| 115 | case NetEvent::Guaranteed: |
| 116 | temp = walk->mNextEvent; |
| 117 | walk->mNextEvent = mUnorderedSendEventQueueHead; |
| 118 | mUnorderedSendEventQueueHead = walk; |
| 119 | if(!walk->mNextEvent) |
| 120 | mUnorderedSendEventQueueTail = walk; |
| 121 | walk = temp; |
| 122 | break; |
| 123 | |
| 124 | // Or else it was an unguaranteed packet, notify that |
| 125 | // it was _not_ delivered and blast it. |
| 126 | case NetEvent::Unguaranteed: |
| 127 | walk->mEvent->notifyDelivered(this, false); |
| 128 | walk->mEvent->decRef(); |
| 129 | temp = walk->mNextEvent; |
| 130 | mEventNoteChunker.free(walk); |
| 131 | walk = temp; |
| 132 | } |
| 133 | } |
| 134 | } |
| 135 | |
| 136 | void NetConnection::eventPacketReceived(PacketNotify *notify) |
| 137 | { |
nothing calls this directly
no test coverage detected