diff --git a/ChangeLog b/ChangeLog index 8520432..1117b2f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ ENet 1.2.2 (May 13, 2010): +* added totalSentData, totalSentPackets, totalReceivedData, and +totalReceivedPackets counters inside ENetHost for getting usage +statistics * added enet_host_channel_limit() for limiting the maximum number of channels allowed by connected peers * now uses dispatch queues for event dispatch rather than potentially diff --git a/host.c b/host.c index 9edceb2..67accd9 100644 --- a/host.c +++ b/host.c @@ -79,6 +79,11 @@ enet_host_create (const ENetAddress * address, size_t peerCount, enet_uint32 inc host -> receivedAddress.port = 0; host -> receivedDataLength = 0; + host -> totalSentData = 0; + host -> totalSentPackets = 0; + host -> totalReceivedData = 0; + host -> totalReceivedPackets = 0; + enet_list_clear (& host -> dispatchQueue); for (currentPeer = host -> peers; diff --git a/include/enet/enet.h b/include/enet/enet.h index 04b416e..7d4ac33 100644 --- a/include/enet/enet.h +++ b/include/enet/enet.h @@ -322,6 +322,10 @@ typedef struct _ENetHost ENetAddress receivedAddress; enet_uint8 receivedData [ENET_PROTOCOL_MAXIMUM_MTU]; size_t receivedDataLength; + enet_uint32 totalSentData; /**< total data sent, user should reset to 0 as needed to prevent overflow */ + enet_uint32 totalSentPackets; /**< total UDP packets sent, user should reset to 0 as needed to prevent overflow */ + enet_uint32 totalReceivedData; /**< total data received, user should reset to 0 as needed to prevent overflow */ + enet_uint32 totalReceivedPackets; /**< total UDP packets received, user should reset to 0 as needed to prevent overflow */ } ENetHost; /** diff --git a/protocol.c b/protocol.c index 1362179..21460b1 100644 --- a/protocol.c +++ b/protocol.c @@ -1005,7 +1005,10 @@ enet_protocol_receive_incoming_commands (ENetHost * host, ENetEvent * event) return 0; host -> receivedDataLength = receivedLength; - + + host -> totalReceivedData += receivedLength; + host -> totalReceivedPackets ++; + switch (enet_protocol_handle_incoming_commands (host, event)) { case 1: @@ -1424,6 +1427,9 @@ enet_protocol_send_outgoing_commands (ENetHost * host, ENetEvent * event, int ch if (sentLength < 0) return -1; + + host -> totalSentData += sentLength; + host -> totalSentPackets ++; } return 0;