If you find any bugs or have any updates, please submit them to


Updates since version 0.9.7

Fixed an error when SSL is not available
Corrected the error setting of many functions
Corrected the behaviour of enumerating functions
Fixed issues getting lobby game by name
Finished porting work to win32 (mingw32 and visual studio), and MacOSX
Fixed error querying NAT type
Fixed a STUN race condition
Fixed a timeout on slow but active UDP sockets
Fixed local resolution bug
Worked around a bug in IP MASQUERADE which prevents firewall bypass
Allowed overriding of player name in the lobby
Fixed a crash when connecting via vertain types of half cone NAT


Updates since version 0.9.6

Finally fixed the last part of the broken encryption system for TCP
Added encryption options for the lobby
Added encryption key inspection
Added connection callback to lobby
Updated clients and servers to be able to use multiple callback dispatchers


Updates since version 0.9.5

Added new grapple synchronised variables functionality
Added Grapple Description binary blob into grapple and the lobby
Improved performance of lobby room mutex locking
Improved performance of internal data locking in grapple server and client
Fixed a bug where games were reported more than once to the lobby clients
Fixed a race condition where lobby servers could be informed of a users room
  before a users presence
Tidyup of server code to prevent malicious overruns from clients
Addition of protection keys to server and lobby server
Fixing client UDP connection bug
Fixing UDP resend bugs
Fixing UDP packet splitting via limited relays
Optimised UDP packet splitting to cope with larger packets
Fixing select statements left in the win32 connection routines
Further work on the encryption layer - One remaining known bug, see BOUNTY


Updates since version 0.9.4

Fixed issues compiling without encryption
Fixed crash where asking for default server before servers created
Fixed a deadlock in lobbies
Added functionality for role reversal when connecting via a STUN connection
Implimented TURN functionality for NAT traversal
Reliable UDP will now split packets that are too large to send in one go,
   capable in theory of handling packets up to 2GB, but it isnt advised to use
   such large packets.
Expanded grapple_notify to include server no-notify mode
Added connection callback to allow postprocessing of connections
Finished encrypted connection protocol using self-generated keys.
Fixed broken encryption CA cleanup on invalid CA result
Fixed incorrect size of FIONREAD parameter


Updates since version 0.9.3

Updates for Win32 compatability
Further work on encrypted network layer
Bugfixes for 64 bit


Updates since version 0.9.2

Fully implimented STUN client/server as part of the grapple Nattrav package
Added small changes for compilation on Mac platform
Added small changes for compilation on Win32 platform (will not yet compile)


Updates since version 0.9.1

Implimented speedup of internal local data pipeline
Added custom password handler callback functionality
Fixed a lobby password fail hang
Added interaction level for lobby hosts (GRAPPLE_LOBBYMSG_USER_MSG)
Added callback system for lobby server user messages
Fixed a data transmission error for the lobby game creation with specific IP
Added in dummy game server functionality for network masking
Added in the facility for the server to limit the number of groups
Added the functionality to allow groups to have passwords
Incrimented internal protocol number due to changes in grapple groups protocol
Fixed a bug where local callback events were not dispatched
Fixed a lobby bug where connection hung forever
Added lobby connection refused messages to be passed to the user
Modified lobby room creation notification to always notify of room creation
Added a name policy to, to require either nothing, names, or unique names
Fixed a bug where users half way through connecting counted as connected
When a user already has a name set, it will now be included in the connect msg
Fixed a deadlock in room systems
Changed the lobby to send all messages even if ingame - users choice to ignore
Fixed a bug in game reporting from the lobby, current players was always 0
Fixed a bug that made grapple not threadsafe
Fixed a race condition in the callback dispatcher when the server is closing
Changed some *internal* variable names to make the code more understandable
Added the start of a basic STUN server system for Full Cone NAT traversal
Completely reworked thread handling to reduce deadlocks and allow threads to
  share mutexes for read operations for extra speed
Fixed a number of memory leaks
Fixed a race condition in confirmable messages
Changed UDP client protocol to work through Half-Cone and symmetric NAT

Updates since version 0.9

Improved UDP layer to work through NAT in most situations
Fixed server failover issues
Incrimented internal protocol number due to changes in UDP protocol