Network/ENet: Separate Connect event into OutgoingConnect and IncomingConnect
This commit is contained in:
parent
1d44adf23a
commit
3ca179b954
|
|
@ -87,7 +87,7 @@ namespace Nz
|
||||||
|
|
||||||
int ReceiveIncomingCommands(ENetEvent* event);
|
int ReceiveIncomingCommands(ENetEvent* event);
|
||||||
|
|
||||||
void NotifyConnect(ENetPeer* peer, ENetEvent* event);
|
void NotifyConnect(ENetPeer* peer, ENetEvent* event, bool incoming);
|
||||||
void NotifyDisconnect(ENetPeer*, ENetEvent* event);
|
void NotifyDisconnect(ENetPeer*, ENetEvent* event);
|
||||||
|
|
||||||
void SendAcknowledgements(ENetPeer* peer);
|
void SendAcknowledgements(ENetPeer* peer);
|
||||||
|
|
|
||||||
|
|
@ -118,11 +118,6 @@ namespace Nz
|
||||||
/** no event occurred within the specified time limit */
|
/** no event occurred within the specified time limit */
|
||||||
None,
|
None,
|
||||||
|
|
||||||
/** a connection request initiated by enet_host_connect has completed.
|
|
||||||
* The peer field contains the peer which successfully connected.
|
|
||||||
*/
|
|
||||||
Connect,
|
|
||||||
|
|
||||||
/** a peer has disconnected. This event is generated on a successful
|
/** a peer has disconnected. This event is generated on a successful
|
||||||
* completion of a disconnect initiated by enet_peer_disconnect, if
|
* completion of a disconnect initiated by enet_peer_disconnect, if
|
||||||
* a peer has timed out, or if a connection request initialized by
|
* a peer has timed out, or if a connection request initialized by
|
||||||
|
|
@ -132,11 +127,20 @@ namespace Nz
|
||||||
*/
|
*/
|
||||||
Disconnect,
|
Disconnect,
|
||||||
|
|
||||||
|
/** a connection request initiated by enet_host_connect from this host has completed.
|
||||||
|
* The peer field contains the peer which successfully connected.
|
||||||
|
*/
|
||||||
|
OutgoingConnect,
|
||||||
|
|
||||||
|
/** a connection request initiated by enet_host_connect from another host has completed.
|
||||||
|
* The peer field contains the peer which successfully connected.
|
||||||
|
*/
|
||||||
|
IncomingConnect,
|
||||||
|
|
||||||
/** a packet has been received from a peer. The peer field specifies the
|
/** a packet has been received from a peer. The peer field specifies the
|
||||||
* peer which sent the packet. The channelID field specifies the channel
|
* peer which sent the packet. The channelID field specifies the channel
|
||||||
* number upon which the packet was received. The packet field contains
|
* number upon which the packet was received. The packet field contains
|
||||||
* the packet that was received; this packet must be destroyed with
|
* the packet that was received;
|
||||||
* enet_packet_destroy after use.
|
|
||||||
*/
|
*/
|
||||||
Receive
|
Receive
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -352,10 +352,17 @@ namespace Nz
|
||||||
switch (peer.GetState())
|
switch (peer.GetState())
|
||||||
{
|
{
|
||||||
case ENetPeerState::ConnectionPending:
|
case ENetPeerState::ConnectionPending:
|
||||||
|
peer.ChangeState(ENetPeerState::Connected);
|
||||||
|
|
||||||
|
event->type = ENetEventType::IncomingConnect;
|
||||||
|
event->peer = &peer;
|
||||||
|
event->data = peer.m_eventData;
|
||||||
|
return true;
|
||||||
|
|
||||||
case ENetPeerState::ConnectionSucceeded:
|
case ENetPeerState::ConnectionSucceeded:
|
||||||
peer.ChangeState(ENetPeerState::Connected);
|
peer.ChangeState(ENetPeerState::Connected);
|
||||||
|
|
||||||
event->type = ENetEventType::Connect;
|
event->type = ENetEventType::OutgoingConnect;
|
||||||
event->peer = &peer;
|
event->peer = &peer;
|
||||||
event->data = peer.m_eventData;
|
event->data = peer.m_eventData;
|
||||||
return true;
|
return true;
|
||||||
|
|
@ -728,7 +735,7 @@ namespace Nz
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ENetHost::NotifyConnect(ENetPeer* peer, ENetEvent* event)
|
void ENetHost::NotifyConnect(ENetPeer* peer, ENetEvent* event, bool incoming)
|
||||||
{
|
{
|
||||||
m_recalculateBandwidthLimits = true;
|
m_recalculateBandwidthLimits = true;
|
||||||
|
|
||||||
|
|
@ -736,12 +743,12 @@ namespace Nz
|
||||||
{
|
{
|
||||||
peer->ChangeState(ENetPeerState::Connected);
|
peer->ChangeState(ENetPeerState::Connected);
|
||||||
|
|
||||||
event->type = ENetEventType::Connect;
|
event->type = (incoming) ? ENetEventType::IncomingConnect : ENetEventType::OutgoingConnect;
|
||||||
event->peer = peer;
|
event->peer = peer;
|
||||||
event->data = peer->m_eventData;
|
event->data = peer->m_eventData;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
peer->DispatchState(peer->GetState() == ENetPeerState::Connecting ? ENetPeerState::ConnectionSucceeded : ENetPeerState::ConnectionPending);
|
peer->DispatchState((peer->GetState() == ENetPeerState::Connecting) ? ENetPeerState::ConnectionSucceeded : ENetPeerState::ConnectionPending);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ENetHost::NotifyDisconnect(ENetPeer* peer, ENetEvent* event)
|
void ENetHost::NotifyDisconnect(ENetPeer* peer, ENetEvent* event)
|
||||||
|
|
|
||||||
|
|
@ -501,7 +501,7 @@ namespace Nz
|
||||||
if (commandNumber != ENetProtocolCommand_VerifyConnect)
|
if (commandNumber != ENetProtocolCommand_VerifyConnect)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
m_host->NotifyConnect(this, event);
|
m_host->NotifyConnect(this, event, true);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ENetPeerState::Disconnecting:
|
case ENetPeerState::Disconnecting:
|
||||||
|
|
@ -891,7 +891,7 @@ namespace Nz
|
||||||
m_incomingBandwidth = NetToHost(command->verifyConnect.incomingBandwidth);
|
m_incomingBandwidth = NetToHost(command->verifyConnect.incomingBandwidth);
|
||||||
m_outgoingBandwidth = NetToHost(command->verifyConnect.outgoingBandwidth);
|
m_outgoingBandwidth = NetToHost(command->verifyConnect.outgoingBandwidth);
|
||||||
|
|
||||||
m_host->NotifyConnect(this, event);
|
m_host->NotifyConnect(this, event, false);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue