SYNAPSE - Synchronous TCP/IP Library for Delphi and Kylix
Other related information can be found at http://www.ararat.cz/synapse/

History:

Description:
+ added property
- removed property
* modification
# bug fix

SYNAPSE library core

Version 8.3.7 released 2005-01-23
# false exception on closing of TCP cocket (when raiseexcept is true)
* on closing of TCP SSL socket do only unidirectional shutdown

Version 8.3.5 released 2004-09-18
# SSL errors
# loading CA-budle file

Version 8.3.4 released 2004-08-23
+ Tag property
+ TSynaClient holds Username and Password property
* new code for address resolving.
+ StopFlag propety for easy stoppong of data transfers.
* Sendbuffer splitting large datas before sending.
+ new SendInteger, SendStreamRaw and SendStreamIndy.
+ new RecvInteger, RecvStreamRaw, RecvStreamSize and RecvStreamIndy.
+ SSLverifycert for client too. (it verifying server certificate on SSLDoConnect)
# Fixed shutdown of SSL socket

Version 7.9.1 released 2003-07-21
+ FPC compatibility
+ New OnStatus event HR_Error
* TSynaSin is replaced by TVarSin
+ byte counters for received and sended bytes.
+ AbortSocket function
+ RecvBlock and SendBlock functions
+ RecvStream and SendStream functions
+ Purge function
+ SSLGetPeerName function
+ SSLGetCertInfo function
+ SSLGetCiphername function
+ SSLGetCipherBits function
+ SSLGetCipherAlgBits function
+ SSLGetVerifyCert function
+ SSLType for specify SSL/TLS protocol version.
+ SSLLoaded property
+ HTTPTunnelTimeout
+ New TDgramBlockSocket class with implememntation of datagram communication style instead stream based style.
+ TICMPBlockSocket is now based on datagram communication.
# RaiseExcept allways fill LastErrorDesc property
# Waitingdata fix for avoid 'Out of memory' errors
# ResolvePort
+ Timeout for SOCKS
# Fixed SOCKS4 code
# UDP on SOCKS5 authenticification
* Better error handling on SSL connect
# Correct SSL shudown sequence

Version 7.2.14 released 2003-03-24
* Better support for C++Builder
- weakpackageunit
+ Constatnt SynapseRelease with idetifier of current release
+ Support for IPv6
+ Hook called after Socket creation
+ Support for Socks4 and Socks4a
* If available new socket API, then use it! (improve performance!)
* can swith timeout from 'interpacket' to 'overall'
+ CreateSocketByname
+ GetSinLocal
+ GetSinRemote
- property protocol. Use getSocketprotocol function instead!
+ Lot of stuff for IPv6 support!
* Minimize calls of Synsock.select in RecvPacket
+ ResolveIPToName
* Optimised work with TFDSet
* Call GetSins after assigning new value to Socket property
+ StrToIP6 and IP6ToStr
# decoding port number from SOCKS response
+ IPv6 support in SOCKS5
# Call SSLDoShutdown properly inside CloseSocket (from Destroy too)
# Do proper shutdown of TCP socket
# resolve symbolic port names in HTTP tunnel requests
+ support for IPv6 URLs inside HTTP tunnel requests

Version 6.6.1 released 2003-01-01
* Socket interface is initialised only once per application by default
+ new Event 'wait' if sending or receiving is stopped by bandwidth limitation
+ Can filter readed or sended data
+ RecvBufferStr
+ can set TTL
+ can set TTL for multicasts packets
+ can set multicast loop
# name resolving functions is thread safe. (on some system s is problems with this!)
* Optimised RecvBufferEx.
# do not call explicit socket shutdown.
# RecvPacket call error when connection terminates.
# recvterminated working correctly when Convertlineend is true and packets is splited inside line terminator.
# SOCKS5 handshake working correctly with splitted packets.
# SOCKS5 UDP support working correctly with unbinded socket

Version 6.1.4 released 2002-08-20
+ Property LastErrorDesc with human readable description of lastError
+ Limiting of bandwidth for both, reading and sending
+ ConvertLineEbnd property for RecvString with any line terminator
+ SSLLastError and SSLLastErrorDesc
+ handling of verify client SSL certificate
+ TSynaClient class as parent of any other client protocol classes
# Recvpacket not allocate huge memory in some cases
# SocksDecode
# setting SSL certificate password
# WaitigData working properly in SSL mode
+ Error checking of SSL code
# RecvBuffer and SendBuffer in SSL mode

Version 5.7.0 released 2002-05-05
+ AutoCreate socket capability. If you call Bind or Connect on non-created socket, then is socket created
+ Support for setting keys and certificates for SSL/TLS
+ Support for setting ciphers for SSL/TLS
+ Support for SSL/TLS server mode
# Fixed LimitBandwidth
* Optimized RecvPacket
* RecvByte now using LineBuffer
* Optimized RecvTerminated
# Fixed HTTP tunnel mode

Version 5.2.0 released 2002-02-10
+ WaitingDataEx
+ CanReadEx
+ TCP HTTP Tunneling support
+ TCP SSL/TLS support

Version 4.4.0 released 2001-12-10
+ Limited support for non-blocking mode.
+ Can limit outgoing bandwidth.
+ RecvTerminated for receiving string with defined terminator.
+ Local address bind can be reused.
+ Can limit maximum length of received string.
+ Support for UDP multicast.
# UDP now support status monitoring.
# TCP under SOCKS5 now works fine with all SOCKS5 servers.

Version 4.0.0 released 2001-09-24
+ Support for SOCKS5 proxy on TCP and UDP sockets.
+ RecvPacket
+ ResolveName
+ ResolvePort
+ SetRemoteSin
+ SetSendTimeout
+ SetRecvTimeout
* all send methods use internally SendBuffer - you may use all send method for sending datagrams.
# UDP not working on all systems
* Response UDP may income from different IP then where previously UDP is sended.

Version 3.3.0 released 2001-08-27
# Dynamic loading of Winsock (under Windows) is now thread safe!
* Default is used static mapping of Winsock.
# Winsock is correctly closed on destructor.
+ OnStatus event for monitoring status od socket or for monitoring how much data is reading or sending.

Version 3.2.0 released 2001-07-23
+ merged with blcksck2.pas unit.
* optimalizations.
+ SetTimeout method for setting timeout on Winsock2 or Linux systems.
+ GroupCanRead method is as CanRead method on set of sockets.
* GetErrorDesc is nor class function.
# CloseSocket on TCP socket do graceful disconnect.

Version 3.1.0 released 2001-05-13
# Fixed RecvString for bug in Win2000
* RecvString now correctly strip CRLF sequence under Linux

Version 3.0.0 released 2001-05-13
+ Compatibility with Kylix
+ New constructor CreateAlternate. It allows under Windows use another DLL then wsock32.dll
+ method ResolveNameToIP for resolve computer name to set of their IPs.

Version 2.1.1 released 2001-04-07
# fixed result on RecvBufferEx.

Version 2.1.0 released 2001-03-12
+ RecvBuffEx for very powerful receive any size of data. Only this function may be freely combined with RecvString!
# improved compatibily with C++ Builder.
+ SizerecvBuff and SizeSendBuff Property for control winsock buffers. Usable for performance tuning.

Version 2.0.1 released 2001-02-10
* Recvstring uses better dynamic buffer for better performance and robust solution when you try reading binary data.
+ Property LineBuffer contains prebufferred data after Recvstring. it usefull when you need swith between line and binary mode.

Version 2.0.0 released 2000-09-18
+ optional exception handling
* SendBuffer is now function
* SendBufferTo is now function
* all times is now in millisecond!

Version 1.1.1 released 2000-03-17
# reading by RecvBuffer from unconnected socket cause WSAENOTCONN error.

Version 1.1.0 released 2000-02-14
# name resolving work OK on Delphi 4 and more.
+ support for broadcast on UDP socket.

Version 1.0.2 released 1999-11-08
# method RecvString - fixed reading from unconnected socket.

Version 1.0.1 released 1999-10-16
* only any descriptions.

Version 1.0.0 released 1999-09-19
+ Class TBlockSocket wrapping Winsock socket.
+ Class TUDPBlockSocket (ancestor of TBlockSocket) implementing UDP protocol.
+ Class TTCPBlockSocket (ancestor of TBlockSocket) implementing TCP protocol.