Here is the comprehensive list of new features and bug fixes included in sgcWebSockets 4.4.5:
[+] : New Component TsgcHTTP_OAuth2_Server, server implementation of OAuth2 protocol, allows to Authorize and Issue Access Tokens to OAuth2 clients.
[+] : New Demo which shows how enable OAuth2 on Server Components (is located in folder Demos\20.HTTP_Protocol\02.OAuth2_Authentication).
[+] : Improved Azure IoT MQTT Client, now DeviceToCloud allows to send Properties in the Message (are key-value pairs).
[+] : New Property HTTPClientOptions in TsgcHTTP_OAuth2_Client, allows to customize the HTTP Client when requests a new token.
[+] : New Property BindingOptions in HTTP.SYS Server, allows to customize if server Configures the SSL Certificate when starts (requires admin rights) or not. By default is enabled.
[+] : New Event "OnBeforeBinding" in HTTP.SYS Server, allows to customize the URLs will be reserved by Server.
[+] : Improved TsgcWebSocketClient_WinHTTP, new property Options.FragmentedMessages which works like TsgcWebSocketClient.
[+] : Improved TsgcWebSocketClient_WinHTTP, new event OnFragmented.
[+] : New Property ConnectHeaders in TsgcWSPClient_STOMP, allows to send custom headers on connect method.
[*] : Fixed Bug Invalid Pointer when NotifyEvents = neAsynchronous and CheckSynchronize was called while the event was processing. (Thanks to Dirk to let me know)
[*] : Fixed Bug Processing Fragmented Messages, first fragmented was overwrited when second fragment arrived. (Thanks to Patrik to let me know)
[*] : Fixed Bug TsgcWebSocketClient when there was a disconnection, internal threads were stopped, but this method was called several times in some cases.
[*] : FIxed Bug potential Thread-Lock when NotifyEvents = neAsynchronous, connection was disconnected and there were messages pending to be processed.
[*] : Fixed Bug Access Violation error executing method "Start" when Client/Server was already destroyed.
[*] : Fixed Bug TsgHTTP_OAuth2, after receiving authorization code, state value was not compared against value send, now if is not equal returns an error.
[*] : Fixed Bug Telegram Client, the read thread didn't start after connect to telegram servers.
[*] : Fixed Bug Telegram Client, the Title of the chat message wasn't properly decoded. (Thanks to Hyeonwoo to let me know).
[*] : Fixed Warnings compiling from Rad Studio XE8 to 10.1 Berlin
[*] : Fixed Bug Indy Servers, if connection was already closed but Buffer had still data to process, the thread never ends and make use of full cpu.
[*] : Fixed Bug HTTP.SYS Server, if OnHTTPRequest event wasn't set, there wasn't any response from server, now returns a 404 error.
[*] : Fixed Bug HTTP.SYS Server decoding HTTP methods, only GET and POST were supported.
[*] : Fixed Bug HTTP.SYS Server, memory leak when destroying a connection in TsgcWSMSG object.
[*] : Fixed Bug HTTP.SYS Server, invalid pointer exception trying to free an object while disconnecting.
[*] : Fixed Bug HTTP.SYS Server, when there was an error starting the server, the real error message wasn't raised to user.
[*] : Fixed Bug in TsgcWSAPI_SocketIO component when initializing connection and ioAPI0 is selected as API (Thanks to Jean to let me know).
[*] : Fixed Bug connecting when WriteTimeOut > 0 on none Windows OS, now this property only applies to Windows.
[/] : TsgHTTP_OAuth2 component renamed to TsgcHTTP_OAuth2_Client.
[/] : Unit sgcHTTP_OAuth.pas renamed to sgcHTTP_OAuth_Client.pas
[/] : Unit sgcHTTP_OAuth2.pas renamed to sgcHTTP_OAuth2_Client.pas