[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);