Rad Studio
[+] : Ondersteuning toegevoegd voor Rad Studio 13.1: het nieuwe platform WinARM64EC wordt ondersteund.[+] : Nieuw TsgcWSFirewall-component: volwaardige firewall voor WebSocket-servers met IP-blacklist/whitelist (CIDR-ondersteuning), brute force-bescherming met auto-ban, SQL injection-detectie, XSS-detectie, rate limiting en flood-bescherming.
[+] : Nieuwe demo voor Server Firewall: laat de belangrijkste functies van de nieuwe firewall zien, te vinden in de map: "Demos\04.WebSocket_Other_Samples\13.Firewall".
[+] : Nieuwe demo voor HTTP/2 Large File Transfer: server- + client-demo voor het testen van downloads van 1GB+ bestanden via HTTP/2, in "Demos\20.HTTP_Protocol\13.HTTP2_LargeFile_Transfer".
[+] : Nieuwe HTTP/2 debug-logging: het versturen/ontvangen van frames, WINDOW_UPDATE-incrementen en streaming chunk-reads worden gelogd via LoggerPro wanneer {$DEFINE SGC_DEBUG} is ingeschakeld in sgcVer.inc.
[+] : Verbeterde MQTT-client: nieuwe eigenschap RcvMsg om toegang te krijgen tot het laatste MQTT-bericht dat van de server is ontvangen.
[+] : Nieuw TsgcTCPClient-component: volwaardige TCP-client gebaseerd op de WebSocket client-infrastructuur, met ondersteuning voor TLS/SSL, proxy, watchdog en protocol-integratie. Protocollen (MQTT, AMQP, STOMP, WAMP, enz.) kunnen nu via hun Client-eigenschap zowel TsgcTCPClient als TsgcWebSocketClient gebruiken.
[+] : Nieuwe OAuth2 Client Token Revocation-ondersteuning (RFC 7009): Revoke()-methode met OnBeforeRevokeToken, OnAfterRevokeToken en OnRevokeTokenError events.
[+] : Nieuwe OAuth2 Client Token Introspection-ondersteuning (RFC 7662): Introspect()-methode met OnBeforeIntrospectToken, OnAfterIntrospectToken en OnIntrospectTokenError events.
[+] : Nieuwe OAuth2 Client Device Authorization Grant (RFC 8628): grant type auth2DeviceCode met automatische polling, OnDeviceCode- en OnDeviceCodeExpired-events.
[+] : Nieuw OAuth2 Server Token Revocation-endpoint (RFC 7009): /sgc/oauth2/revoke met event OnOAuth2AfterRevokeToken.
[+] : Nieuw OAuth2 Server Token Introspection-endpoint (RFC 7662): /sgc/oauth2/introspect met event OnOAuth2AfterIntrospectToken.
[+] : Nieuw OAuth2 Server Device Authorization-endpoint (RFC 8628): /sgc/oauth2/device en /sgc/oauth2/device/verify met events OnOAuth2DeviceAuthorization en OnOAuth2DeviceCodeVerification.
[+] : Nieuwe OAuth2 Server-afhandeling voor Resource Owner Password Credentials grant (password grant_type).
[+] : Nieuwe OAuth2 Server Device Code token exchange (urn:ietf:params:oauth:grant-type:device_code grant_type).
[+] : Nieuwe OAuth2 Client DPoP-ondersteuning (RFC 9449): sender-constrained tokens via DPoPOptions met ES256/RS256-signing, automatische DPoP proof JWT-generatie, JWK thumbprint-berekening (RFC 7638) en DPoP-Nonce retry-afhandeling.
[+] : Nieuwe OAuth2 Client DPoP-methoden: GetDPoPProof() voor resource-verzoeken, GetDPoPJWKThumbprint() voor verificatie van token binding.
[+] : Nieuwe OAuth2 Server DPoP-ondersteuning (RFC 9449): DPoP proof-validatie, JWK thumbprint token binding, token_type DPoP-uitgifte en event OnOAuth2ValidateDPoP.
[+] : Verbeterde Deflate-extensie: de snelheid is verbeterd, met name voor kleine berichten. (Dank aan Michael voor de fix).
[+] : Nieuw TsgcWebView2-component: visuele VCL-wrapper voor Microsoft Edge WebView2 met navigatie, JavaScript (async/sync/init-scripts), cookie-beheer, downloadbeheer, profielbeheer, printen, audio/mute, certificaatafhandeling, contextmenu's, favicon, virtual host mapping, screenshot capture en 20+ events. Ondersteunt Delphi 7 tot en met Delphi 13.
[+] : Nieuwe demo voor WebView2 Browser: laat navigatie, JavaScript-uitvoering, cookies, printen, mute, clear data, virtual host mapping en event-logging zien. Te vinden in "Demos\50.Other\WebView2_Browser".
[+] : Nieuwe Gemini API: Google Gemini-integratie met Content Generation (met streaming), Vision, Structured JSON Output, Tool Use (function calling), Token Counting, Embeddings en Model listing.
[+] : Nieuwe DeepSeek API: DeepSeek-integratie met Chat Completions (met streaming), Vision, Tool Use (function calling) en Model listing.
[+] : Nieuwe Ollama API: integratie met Ollama lokale LLM met Chat Completions (met streaming), Model Management (show, pull, delete, list tags) en Embeddings.
[+] : Nieuwe Grok API: xAI Grok-integratie met Chat Completions (met streaming), Vision, Tool Use (function calling) en Model listing.
[+] : Nieuwe Mistral API: Mistral AI-integratie met Chat Completions (met streaming), Vision, Structured JSON Output, Tool Use (function calling), Embeddings en Model listing.
[*] : HTTP/2 server-side streaming voor grote responses opgelost: voorkomt out-of-memory-crashes bij het serveren van grote bestanden en verlaagt het maximale servergeheugen.
[*] : HTTP/2 client-side memory reallocation bij grote responses opgelost: payload-buffer gebruikt nu een capacity growth-strategie met platformspecifieke maxima (128 MB op Win32, 1 GB op Win64) in plaats van bij elk DATA-frame opnieuw te alloceren.
[*] : HTTP/2 SSL write deadlock bij grote file transfers opgelost: WINDOW_UPDATEs worden nu in de wachtrij geplaatst en geflusht tussen read-iteraties in plaats van inline geschreven te worden tijdens frame-verwerking, wat voorkomt dat zowel client als server tegelijkertijd blokkeren op SSL_write.
[*] : HTTP/2 Integer overflow voor bestanden groter dan 2 GB opgelost: FrameLength, Offset, WindowSize, PayLoadCapacity, ReadWindowSize en flow-control accumulators zijn gewijzigd van Integer naar Int64.
[*] : HTTP/2 stream-state opgelost: RST_STREAM-frames die op idle streams worden ontvangen (na stream cleanup) gaan nu netjes naar closed in plaats van een PROTOCOL_ERROR te genereren.
[*] : HPACK-encoder opgelost: GetBestMatchingIndex retourneert nu correct static table name-only matches, wat compressiefouten op HTTP/2-verbindingen voorkomt.
[*] : HPACK-encoder opgelost: Huffman-bitmask gebruikt de juiste shift-left-operatie.
[*] : HPACK-decoder opgelost: byte count- en available bytes-berekeningen houden nu correct rekening met de buffer-offset.
[*] : SetBytesFromInteger opgelost: tussenliggende byte-extracties worden nu gemaskeerd met $FF om range check errors te voorkomen op waarden zoals WINDOW_UPDATE-incrementen.
[*] : Typed pointer-incompatibiliteiten opgelost bij compileren met de optie "Typed @ operator" actief.
[*] : JWT RSA-signing opgelost: de parameter vLength in DoSignRSA was gedeclareerd als Integer in plaats van TIdNativeUInt, wat potentiële stack corruption op 64-bits platforms veroorzaakte. (Dank aan Gabriel voor de fix).
[*] : Win64 pointer-truncatie in sgcHTTP_API_OpenAI opgelost: mciSendCommand-aanroepen gebruikten een Cardinal()-cast op pointers, vervangen door NativeUInt().
[*] : OAuth2-server opgelost: SetOAuth2Options-geheugenlek hersteld.
[*] : AWS Signature V4 opgelost: querystring-parameter-sortering in canonical request hersteld.
[*] : Bitfinex access violation bij unsubscribe van een kanaal opgelost.
[*] : Geheugenlekken in Indy-servers opgelost veroorzaakt door thread-unsafe lazy initialization van de velden FSpecifications en FConnections. Concurrente Indy worker-threads konden racen bij het aanmaken en instanties achterlaten.
[/] : De OnMQTTPublishEx-event heeft een gewijzigde handtekening met een nieuwe parameter aMessage van het type TsgcWSMQTTMessage.
.NET
[+] : Nieuw TsgcWSFirewall-component: volwaardige firewall voor WebSocket-servers met IP-blacklist/whitelist (CIDR-ondersteuning), brute force-bescherming met auto-ban, SQL injection-detectie, XSS-detectie, rate limiting en flood-bescherming.[+] : Nieuwe demo voor Server Firewall: laat de belangrijkste functies van de nieuwe firewall zien, te vinden in de map: "Demos\04.WebSocket_Other_Samples\13.Firewall".
[+] : Nieuwe demo voor HTTP/2 Large File Transfer: server- + client-demo voor het testen van downloads van 1GB+ bestanden via HTTP/2, in "Demos\20.HTTP_Protocol\13.HTTP2_LargeFile_Transfer".
[+] : Nieuwe OAuth2 Client Token Revocation-ondersteuning (RFC 7009): Revoke()-methode met OnBeforeRevokeToken, OnAfterRevokeToken en OnRevokeTokenError events.
[+] : Nieuwe OAuth2 Client Token Introspection-ondersteuning (RFC 7662): Introspect()-methode met OnBeforeIntrospectToken, OnAfterIntrospectToken en OnIntrospectTokenError events.
[+] : Nieuwe OAuth2 Client Device Authorization Grant (RFC 8628): grant type auth2DeviceCode met automatische polling, OnDeviceCode- en OnDeviceCodeExpired-events.
[+] : Nieuw OAuth2 Server Token Revocation-endpoint (RFC 7009): /sgc/oauth2/revoke met event OnOAuth2AfterRevokeToken.
[+] : Nieuw OAuth2 Server Token Introspection-endpoint (RFC 7662): /sgc/oauth2/introspect met event OnOAuth2AfterIntrospectToken.
[+] : Nieuw OAuth2 Server Device Authorization-endpoint (RFC 8628): /sgc/oauth2/device en /sgc/oauth2/device/verify met events OnOAuth2DeviceAuthorization en OnOAuth2DeviceCodeVerification.
[+] : Nieuwe OAuth2 Server-afhandeling voor Resource Owner Password Credentials grant (password grant_type).
[+] : Nieuwe OAuth2 Server Device Code token exchange (urn:ietf:params:oauth:grant-type:device_code grant_type).
[+] : Nieuwe OAuth2 Client DPoP-ondersteuning (RFC 9449): sender-constrained tokens via DPoPOptions met ES256/RS256-signing, automatische DPoP proof JWT-generatie, JWK thumbprint-berekening (RFC 7638) en DPoP-Nonce retry-afhandeling.
[+] : Nieuwe OAuth2 Client DPoP-methoden: GetDPoPProof() voor resource-verzoeken, GetDPoPJWKThumbprint() voor verificatie van token binding.
[+] : Nieuwe OAuth2 Server DPoP-ondersteuning (RFC 9449): DPoP proof-validatie, JWK thumbprint token binding, token_type DPoP-uitgifte en event OnOAuth2ValidateDPoP.
[+] : Verbeterde Deflate-extensie: de snelheid is verbeterd, met name voor kleine berichten. (Dank aan Michael voor de fix).
[+] : Nieuwe Gemini API: Google Gemini-integratie met Content Generation (met streaming), Vision, Structured JSON Output, Tool Use (function calling), Token Counting, Embeddings en Model listing.
[+] : Nieuwe DeepSeek API: DeepSeek-integratie met Chat Completions (met streaming), Vision, Tool Use (function calling) en Model listing.
[+] : Nieuwe Ollama API: integratie met Ollama lokale LLM met Chat Completions (met streaming), Model Management (show, pull, delete, list tags) en Embeddings.
[+] : Nieuwe Grok API: xAI Grok-integratie met Chat Completions (met streaming), Vision, Tool Use (function calling) en Model listing.
[+] : Nieuwe Mistral API: Mistral AI-integratie met Chat Completions (met streaming), Vision, Structured JSON Output, Tool Use (function calling), Embeddings en Model listing.
[*] : HTTP/2 server-side streaming voor grote responses opgelost: voorkomt out-of-memory-crashes bij het serveren van grote bestanden en verlaagt het maximale servergeheugen.
[*] : HTTP/2 client-side memory reallocation bij grote responses opgelost: payload-buffer gebruikt nu een capacity growth-strategie met platformspecifieke maxima (128 MB op Win32, 1 GB op Win64) in plaats van bij elk DATA-frame opnieuw te alloceren.
[*] : HTTP/2 SSL write deadlock bij grote file transfers opgelost: WINDOW_UPDATEs worden nu in de wachtrij geplaatst en geflusht tussen read-iteraties in plaats van inline geschreven te worden tijdens frame-verwerking, wat voorkomt dat zowel client als server tegelijkertijd blokkeren op SSL_write.
[*] : HTTP/2 Integer overflow voor bestanden groter dan 2 GB opgelost: FrameLength, Offset, WindowSize, PayLoadCapacity, ReadWindowSize en flow-control accumulators zijn gewijzigd van Integer naar Int64.
[*] : HTTP/2 stream-state opgelost: RST_STREAM-frames die op idle streams worden ontvangen (na stream cleanup) gaan nu netjes naar closed in plaats van een PROTOCOL_ERROR te genereren.
[*] : HPACK-encoder opgelost: GetBestMatchingIndex retourneert nu correct static table name-only matches, wat compressiefouten op HTTP/2-verbindingen voorkomt.
[*] : HPACK-encoder opgelost: Huffman-bitmask gebruikt de juiste shift-left-operatie.
[*] : HPACK-decoder opgelost: byte count- en available bytes-berekeningen houden nu correct rekening met de buffer-offset.
[*] : SetBytesFromInteger opgelost: tussenliggende byte-extracties worden nu gemaskeerd met $FF om range check errors te voorkomen op waarden zoals WINDOW_UPDATE-incrementen.
[*] : Typed pointer-incompatibiliteiten opgelost bij compileren met de optie "Typed @ operator" actief.
[*] : JWT RSA-signing opgelost: de parameter vLength in DoSignRSA was gedeclareerd als Integer in plaats van TIdNativeUInt, wat potentiële stack corruption op 64-bits platforms veroorzaakte. (Dank aan Gabriel voor de fix).
[*] : Win64 pointer-truncatie in sgcHTTP_API_OpenAI opgelost: mciSendCommand-aanroepen gebruikten een Cardinal()-cast op pointers, vervangen door NativeUInt().
[*] : OAuth2-server opgelost: SetOAuth2Options-geheugenlek hersteld.
[*] : Bitfinex access violation bij unsubscribe van een kanaal opgelost.
[*] : Geheugenlekken in Indy-servers opgelost veroorzaakt door thread-unsafe lazy initialization van de velden FSpecifications en FConnections. Concurrente Indy worker-threads konden racen bij het aanmaken en instanties achterlaten.
