[enet-cvs] CVS: enet host.c,1.9,1.10 peer.c,1.10,1.11 protocol.c,1.12,1.13
Lee Salzman
enet-discuss@lists.puremagic.com
Tue, 11 Mar 2003 17:51:03 -0700
Update of /home/enet/cvsroot/enet
In directory sferik:/tmp/cvs-serv3954
Modified Files:
host.c peer.c protocol.c
Log Message:
Made MTU handling a bit more explicit, nomenclature-wise, gave it the
Quake-proven default of 1400, and added a nod to possible future support
for explicitly setting host MTU.
Index: host.c
===================================================================
RCS file: /home/enet/cvsroot/enet/host.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- host.c 2003/03/09 02:17:05 1.9
+++ host.c 2003/03/12 00:50:59 1.10
@@ -48,6 +48,7 @@
host -> outgoingBandwidth = outgoingBandwidth;
host -> bandwidthThrottleEpoch = 0;
host -> recalculateBandwidthLimits = 0;
+ host -> mtu = ENET_HOST_DEFAULT_MTU;
host -> peerCount = peerCount;
host -> lastServicedPeer = host -> peers;
host -> commandCount = 0;
@@ -152,7 +153,7 @@
command.header.flags = ENET_PROTOCOL_FLAG_ACKNOWLEDGE;
command.header.commandLength = sizeof (ENetProtocolConnect);
command.connect.outgoingPeerID = ENET_HOST_TO_NET_16 (currentPeer -> incomingPeerID);
- command.connect.packetSize = ENET_HOST_TO_NET_16 (currentPeer -> packetSize);
+ command.connect.mtu = ENET_HOST_TO_NET_16 (currentPeer -> mtu);
command.connect.windowSize = ENET_HOST_TO_NET_32 (currentPeer -> windowSize);
command.connect.channelCount = ENET_HOST_TO_NET_32 (channelCount);
command.connect.incomingBandwidth = ENET_HOST_TO_NET_32 (host -> incomingBandwidth);
Index: peer.c
===================================================================
RCS file: /home/enet/cvsroot/enet/peer.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- peer.c 2003/03/09 02:17:05 1.10
+++ peer.c 2003/03/12 00:50:59 1.11
@@ -108,7 +108,7 @@
if (peer -> state != ENET_PEER_STATE_CONNECTED)
return -1;
- fragmentLength = peer -> packetSize - sizeof (ENetProtocolHeader) - sizeof (ENetProtocolSendFragment);
+ fragmentLength = peer -> mtu - sizeof (ENetProtocolHeader) - sizeof (ENetProtocolSendFragment);
if (packet -> dataLength > fragmentLength)
{
@@ -327,7 +327,7 @@
peer -> bestRoundTripTime = ENET_PEER_DEFAULT_ROUND_TRIP_TIME;
peer -> roundTripTime = ENET_PEER_DEFAULT_ROUND_TRIP_TIME;
peer -> roundTripTimeVariance = 0;
- peer -> packetSize = ENET_PROTOCOL_MINIMUM_PACKET_SIZE;
+ peer -> mtu = peer -> host -> mtu;
peer -> reliableDataInTransit = 0;
peer -> outgoingReliableSequenceNumber = 0;
Index: protocol.c
===================================================================
RCS file: /home/enet/cvsroot/enet/protocol.c,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- protocol.c 2003/03/09 02:17:05 1.12
+++ protocol.c 2003/03/12 00:50:59 1.13
@@ -134,7 +134,7 @@
static ENetPeer *
enet_protocol_handle_connect (ENetHost * host, const ENetProtocolHeader * header, const ENetProtocol * command)
{
- enet_uint16 packetSize;
+ enet_uint16 mtu;
enet_uint32 windowSize;
ENetChannel * channel;
size_t channelCount;
@@ -186,15 +186,15 @@
enet_list_clear (& channel -> incomingUnreliableCommands);
}
- packetSize = ENET_NET_TO_HOST_16 (command -> connect.packetSize);
+ mtu = ENET_NET_TO_HOST_16 (command -> connect.mtu);
- if (packetSize < ENET_PROTOCOL_MINIMUM_PACKET_SIZE)
- packetSize = ENET_PROTOCOL_MINIMUM_PACKET_SIZE;
+ if (mtu < ENET_PROTOCOL_MINIMUM_MTU)
+ mtu = ENET_PROTOCOL_MINIMUM_MTU;
else
- if (packetSize > ENET_PROTOCOL_MAXIMUM_PACKET_SIZE)
- packetSize = ENET_PROTOCOL_MAXIMUM_PACKET_SIZE;
+ if (mtu > ENET_PROTOCOL_MAXIMUM_MTU)
+ mtu = ENET_PROTOCOL_MAXIMUM_MTU;
- currentPeer -> packetSize = packetSize;
+ currentPeer -> mtu = mtu;
windowSize = ENET_NET_TO_HOST_32 (command -> connect.windowSize);
@@ -212,7 +212,7 @@
verifyCommand.header.flags = ENET_PROTOCOL_FLAG_ACKNOWLEDGE;
verifyCommand.header.commandLength = sizeof (ENetProtocolVerifyConnect);
verifyCommand.verifyConnect.outgoingPeerID = ENET_HOST_TO_NET_16 (currentPeer -> incomingPeerID);
- verifyCommand.verifyConnect.packetSize = ENET_HOST_TO_NET_16 (currentPeer -> packetSize);
+ verifyCommand.verifyConnect.mtu = ENET_HOST_TO_NET_16 (currentPeer -> mtu);
verifyCommand.verifyConnect.windowSize = ENET_HOST_TO_NET_32 (currentPeer -> windowSize);
verifyCommand.verifyConnect.channelCount = ENET_HOST_TO_NET_32 (channelCount);
verifyCommand.verifyConnect.incomingBandwidth = ENET_HOST_TO_NET_32 (host -> incomingBandwidth);
@@ -441,7 +441,7 @@
static void
enet_protocol_handle_verify_connect (ENetHost * host, ENetPeer * peer, const ENetProtocol * command)
{
- enet_uint16 packetSize;
+ enet_uint16 mtu;
enet_uint32 windowSize;
if (command -> header.commandLength < sizeof (ENetProtocolVerifyConnect))
@@ -459,16 +459,16 @@
peer -> outgoingPeerID = ENET_NET_TO_HOST_16 (command -> verifyConnect.outgoingPeerID);
- packetSize = ENET_NET_TO_HOST_16 (command -> verifyConnect.packetSize);
+ mtu = ENET_NET_TO_HOST_16 (command -> verifyConnect.mtu);
- if (packetSize < ENET_PROTOCOL_MINIMUM_PACKET_SIZE)
- packetSize = ENET_PROTOCOL_MINIMUM_PACKET_SIZE;
-
- if (packetSize > ENET_PROTOCOL_MAXIMUM_PACKET_SIZE)
- packetSize = ENET_PROTOCOL_MAXIMUM_PACKET_SIZE;
+ if (mtu < ENET_PROTOCOL_MINIMUM_MTU)
+ mtu = ENET_PROTOCOL_MINIMUM_MTU;
+ else
+ if (mtu > ENET_PROTOCOL_MAXIMUM_MTU)
+ mtu = ENET_PROTOCOL_MAXIMUM_MTU;
- if (packetSize < peer -> packetSize)
- peer -> packetSize = packetSize;
+ if (mtu < peer -> mtu)
+ peer -> mtu = mtu;
windowSize = ENET_NET_TO_HOST_32 (command -> verifyConnect.windowSize);
@@ -666,7 +666,7 @@
while (currentAcknowledgement != enet_list_end (& peer -> acknowledgements))
{
if (command >= & host -> commands [sizeof (host -> commands) / sizeof (ENetProtocol)] ||
- peer -> packetSize - host -> packetSize < sizeof (ENetProtocolAcknowledge))
+ peer -> mtu - host -> packetSize < sizeof (ENetProtocolAcknowledge))
break;
acknowledgement = (ENetAcknowledgement *) currentAcknowledgement;
@@ -714,9 +714,9 @@
outgoingCommand = (ENetOutgoingCommand *) currentCommand;
if (command >= & host -> commands [sizeof (host -> commands) / sizeof (ENetProtocol)] ||
- peer -> packetSize - host -> packetSize < outgoingCommand -> command.header.commandLength ||
+ peer -> mtu - host -> packetSize < outgoingCommand -> command.header.commandLength ||
(outgoingCommand -> packet != NULL &&
- peer -> packetSize - host -> packetSize < outgoingCommand -> command.header.commandLength +
+ peer -> mtu - host -> packetSize < outgoingCommand -> command.header.commandLength +
outgoingCommand -> packet -> dataLength))
break;
@@ -840,14 +840,14 @@
outgoingCommand = (ENetOutgoingCommand *) currentCommand;
if (command >= & host -> commands [sizeof (host -> commands) / sizeof (ENetProtocol)] ||
- peer -> packetSize - host -> packetSize < outgoingCommand -> command.header.commandLength)
+ peer -> mtu - host -> packetSize < outgoingCommand -> command.header.commandLength)
break;
currentCommand = enet_list_next (currentCommand);
if (outgoingCommand -> packet != NULL)
{
- if ((enet_uint16) (peer -> packetSize - host -> packetSize) <
+ if ((enet_uint16) (peer -> mtu - host -> packetSize) <
(enet_uint16) (outgoingCommand -> command.header.commandLength +
outgoingCommand -> fragmentLength) ||
peer -> reliableDataInTransit + outgoingCommand -> fragmentLength > peer -> windowSize)
@@ -941,7 +941,7 @@
else
if (enet_list_empty (& currentPeer -> sentReliableCommands) &&
ENET_TIME_DIFFERENCE (timeCurrent, currentPeer -> lastReceiveTime) >= ENET_PEER_PING_INTERVAL &&
- currentPeer -> packetSize - host -> packetSize >= sizeof (ENetProtocolPing))
+ currentPeer -> mtu - host -> packetSize >= sizeof (ENetProtocolPing))
{
enet_peer_ping (currentPeer);
enet_protocol_send_reliable_outgoing_commands (host, currentPeer);