Rad Studio
[+] : Unterstützung für Rad Studio 13.1 hinzugefügt: die neue Plattform WinARM64EC wird unterstützt.[+] : Neue TsgcWSFirewall-Komponente: voll funktionsfähige Firewall für WebSocket-Server mit IP-Blacklist/-Whitelist (CIDR-Unterstützung), Brute-Force-Schutz mit Auto-Ban, SQL-Injection-Erkennung, XSS-Erkennung, Rate-Limiting und Flood-Schutz.
[+] : Neue Demo für Server-Firewall: zeigt die wichtigsten Funktionen der neuen Firewall, im Ordner "Demos\04.WebSocket_Other_Samples\13.Firewall".
[+] : Neue Demo für HTTP/2 Large File Transfer: Server- und Client-Demo zum Testen von Datei-Downloads über 1 GB via HTTP/2, im Ordner "Demos\20.HTTP_Protocol\13.HTTP2_LargeFile_Transfer".
[+] : Neues HTTP/2-Debug-Logging: Frame Send/Receive, WINDOW_UPDATE-Inkremente und Streaming-Chunk-Reads werden über LoggerPro geloggt, wenn {$DEFINE SGC_DEBUG} in sgcVer.inc aktiviert ist.
[+] : MQTT-Client verbessert: neue Eigenschaft RcvMsg für den Zugriff auf die zuletzt vom Server empfangene MQTT-Nachricht.
[+] : Neue TsgcTCPClient-Komponente: voll funktionsfähiger TCP-Client, basierend auf der WebSocket-Client-Infrastruktur, mit Unterstützung für TLS/SSL, Proxy, Watchdog und Protokoll-Integration. Protokolle (MQTT, AMQP, STOMP, WAMP usw.) können jetzt über ihre Client-Eigenschaft entweder TsgcTCPClient oder TsgcWebSocketClient verwenden.
[+] : Neue OAuth2-Client-Token-Revocation-Unterstützung (RFC 7009): Revoke()-Methode mit den Ereignissen OnBeforeRevokeToken, OnAfterRevokeToken und OnRevokeTokenError.
[+] : Neue OAuth2-Client-Token-Introspection-Unterstützung (RFC 7662): Introspect()-Methode mit den Ereignissen OnBeforeIntrospectToken, OnAfterIntrospectToken und OnIntrospectTokenError.
[+] : Neuer OAuth2-Client Device Authorization Grant (RFC 8628): auth2DeviceCode-Grant-Typ mit automatischem Polling, OnDeviceCode- und OnDeviceCodeExpired-Ereignissen.
[+] : Neuer OAuth2-Server-Token-Revocation-Endpoint (RFC 7009): /sgc/oauth2/revoke mit dem OnOAuth2AfterRevokeToken-Ereignis.
[+] : Neuer OAuth2-Server-Token-Introspection-Endpoint (RFC 7662): /sgc/oauth2/introspect mit dem OnOAuth2AfterIntrospectToken-Ereignis.
[+] : Neuer OAuth2-Server Device-Authorization-Endpoint (RFC 8628): /sgc/oauth2/device und /sgc/oauth2/device/verify mit den Ereignissen OnOAuth2DeviceAuthorization und OnOAuth2DeviceCodeVerification.
[+] : Neue OAuth2-Server-Verarbeitung des Resource-Owner-Password-Credentials-Grant (password grant_type).
[+] : Neuer OAuth2-Server-Device-Code-Token-Exchange (urn:ietf:params:oauth:grant-type:device_code grant_type).
[+] : Neue OAuth2-Client-DPoP-Unterstützung (RFC 9449): sender-gebundene Tokens über DPoPOptions mit ES256/RS256-Signierung, automatische DPoP-Proof-JWT-Generierung, JWK-Thumbprint-Berechnung (RFC 7638) und Behandlung von DPoP-Nonce-Retries.
[+] : Neue OAuth2-Client-DPoP-Methoden: GetDPoPProof() für Resource-Anfragen, GetDPoPJWKThumbprint() zur Verifizierung des Token-Bindings.
[+] : Neue OAuth2-Server-DPoP-Unterstützung (RFC 9449): DPoP-Proof-Validierung, JWK-Thumbprint-Token-Binding, Token-Typ-DPoP-Ausgabe und OnOAuth2ValidateDPoP-Ereignis.
[+] : Deflate-Erweiterung verbessert: die Geschwindigkeit wurde besonders für kleine Nachrichten verbessert. (Danke an Michael für die Behebung).
[+] : Neue TsgcWebView2-Komponente: visueller VCL-Wrapper für Microsoft Edge WebView2 mit Navigation, JavaScript (Async/Sync/Init-Scripts), Cookie-Management, Download-Steuerung, Profil-Verwaltung, Druck, Audio/Mute, Zertifikatsbehandlung, Kontextmenüs, Favicon, Virtual-Host-Mapping, Screenshot-Aufnahme und mehr als 20 Ereignissen. Unterstützt Delphi 7 bis Delphi 13.
[+] : Neue Demo für WebView2-Browser: zeigt Navigation, JavaScript-Ausführung, Cookies, Druck, Mute, Daten löschen, Virtual-Host-Mapping und Event-Logging. Im Ordner "Demos\50.Other\WebView2_Browser".
[+] : Neue Gemini-API: Google-Gemini-Integration mit Content Generation (mit Streaming), Vision, strukturierter JSON-Ausgabe, Tool Use (Function Calling), Token Counting, Embeddings und Model-Listing.
[+] : Neue DeepSeek-API: DeepSeek-Integration mit Chat Completions (mit Streaming), Vision, Tool Use (Function Calling) und Model-Listing.
[+] : Neue Ollama-API: Ollama-Local-LLM-Integration mit Chat Completions (mit Streaming), Model Management (show, pull, delete, list tags) und Embeddings.
[+] : Neue Grok-API: xAI-Grok-Integration mit Chat Completions (mit Streaming), Vision, Tool Use (Function Calling) und Model-Listing.
[+] : Neue Mistral-API: Mistral-AI-Integration mit Chat Completions (mit Streaming), Vision, strukturierter JSON-Ausgabe, Tool Use (Function Calling), Embeddings und Model-Listing.
[*] : HTTP/2 Server-side-Streaming für große Antworten behoben: verhindert Out-of-Memory-Abstürze beim Ausliefern großer Dateien und reduziert den Spitzenspeicherbedarf des Servers.
[*] : HTTP/2 Client-side-Memory-Reallocation beim Empfang großer Antworten behoben: der Payload-Buffer nutzt jetzt eine Kapazitäts-Wachstumsstrategie mit plattformspezifischen Obergrenzen (128 MB unter Win32, 1 GB unter Win64), statt bei jedem DATA-Frame neu zu allokieren.
[*] : HTTP/2-SSL-Write-Deadlock bei großen Datei-Transfers behoben: WINDOW_UPDATEs werden jetzt zwischen Read-Iterationen gequeuet und geflusht, statt während der Frame-Verarbeitung inline geschrieben zu werden; dadurch blockieren Client und Server nicht mehr gleichzeitig auf SSL_write.
[*] : HTTP/2-Integer-Overflow bei Dateien über 2 GB behoben: FrameLength, Offset, WindowSize, PayLoadCapacity, ReadWindowSize und die Flow-Control-Akkumulatoren von Integer auf Int64 umgestellt.
[*] : HTTP/2-Stream-State behoben: RST_STREAM-Frames, die auf Idle-Streams (nach Stream-Cleanup) empfangen werden, gehen jetzt sauber in den Status closed über, statt einen PROTOCOL_ERROR auszulösen.
[*] : HPACK-Encoder behoben: GetBestMatchingIndex liefert jetzt korrekt Static-Table-Name-only-Matches und verhindert so Kompressionsfehler bei HTTP/2-Verbindungen.
[*] : HPACK-Encoder behoben: die Huffman-Bitmaske verwendet jetzt die korrekte Shift-Left-Operation.
[*] : HPACK-Decoder behoben: Byte-Count- und Available-Bytes-Berechnungen berücksichtigen jetzt den Buffer-Offset korrekt.
[*] : SetBytesFromInteger behoben: Zwischen-Byte-Extraktionen werden jetzt mit $FF maskiert, um Range-Check-Fehler bei Werten wie WINDOW_UPDATE-Inkrementen zu verhindern.
[*] : Behoben: Inkompatibilitäten bei typisierten Zeigern, wenn die Option "Typed @ operator" aktiv ist.
[*] : JWT-RSA-Signierung behoben: der vLength-Parameter in DoSignRSA war als Integer statt TIdNativeUInt deklariert, was auf 64-Bit-Plattformen zu potenzieller Stack-Korruption führte. (Danke an Gabriel für die Behebung).
[*] : Win64-Pointer-Truncation in sgcHTTP_API_OpenAI behoben: mciSendCommand-Aufrufe nutzten einen Cardinal()-Cast auf Pointer; durch NativeUInt() ersetzt.
[*] : OAuth2-Server behoben: SetOAuth2Options-Speicherleck behoben.
[*] : AWS Signature V4 behoben: Sortierung der Query-String-Parameter in der Canonical Request korrigiert.
[*] : Bitfinex-Access-Violation beim Unsubscribe von einem Channel behoben.
[*] : Speicherlecks in Indy-Servern behoben, verursacht durch thread-unsichere Lazy-Initialisierung der Felder FSpecifications und FConnections. Gleichzeitig laufende Indy-Worker-Threads konnten beim Anlegen kollidieren und Instanzen verwaisen lassen.
[/] : Das OnMQTTPublishEx-Ereignis hat eine neue Signatur erhalten: zusätzlicher Parameter aMessage vom Typ TsgcWSMQTTMessage.
.NET
[+] : Neue TsgcWSFirewall-Komponente: voll funktionsfähige Firewall für WebSocket-Server mit IP-Blacklist/-Whitelist (CIDR-Unterstützung), Brute-Force-Schutz mit Auto-Ban, SQL-Injection-Erkennung, XSS-Erkennung, Rate-Limiting und Flood-Schutz.[+] : Neue Demo für Server-Firewall: zeigt die wichtigsten Funktionen der neuen Firewall, im Ordner "Demos\04.WebSocket_Other_Samples\13.Firewall".
[+] : Neue Demo für HTTP/2 Large File Transfer: Server- und Client-Demo zum Testen von Datei-Downloads über 1 GB via HTTP/2, im Ordner "Demos\20.HTTP_Protocol\13.HTTP2_LargeFile_Transfer".
[+] : Neue OAuth2-Client-Token-Revocation-Unterstützung (RFC 7009): Revoke()-Methode mit den Ereignissen OnBeforeRevokeToken, OnAfterRevokeToken und OnRevokeTokenError.
[+] : Neue OAuth2-Client-Token-Introspection-Unterstützung (RFC 7662): Introspect()-Methode mit den Ereignissen OnBeforeIntrospectToken, OnAfterIntrospectToken und OnIntrospectTokenError.
[+] : Neuer OAuth2-Client Device Authorization Grant (RFC 8628): auth2DeviceCode-Grant-Typ mit automatischem Polling, OnDeviceCode- und OnDeviceCodeExpired-Ereignissen.
[+] : Neuer OAuth2-Server-Token-Revocation-Endpoint (RFC 7009): /sgc/oauth2/revoke mit dem OnOAuth2AfterRevokeToken-Ereignis.
[+] : Neuer OAuth2-Server-Token-Introspection-Endpoint (RFC 7662): /sgc/oauth2/introspect mit dem OnOAuth2AfterIntrospectToken-Ereignis.
[+] : Neuer OAuth2-Server Device-Authorization-Endpoint (RFC 8628): /sgc/oauth2/device und /sgc/oauth2/device/verify mit den Ereignissen OnOAuth2DeviceAuthorization und OnOAuth2DeviceCodeVerification.
[+] : Neue OAuth2-Server-Verarbeitung des Resource-Owner-Password-Credentials-Grant (password grant_type).
[+] : Neuer OAuth2-Server-Device-Code-Token-Exchange (urn:ietf:params:oauth:grant-type:device_code grant_type).
[+] : Neue OAuth2-Client-DPoP-Unterstützung (RFC 9449): sender-gebundene Tokens über DPoPOptions mit ES256/RS256-Signierung, automatische DPoP-Proof-JWT-Generierung, JWK-Thumbprint-Berechnung (RFC 7638) und Behandlung von DPoP-Nonce-Retries.
[+] : Neue OAuth2-Client-DPoP-Methoden: GetDPoPProof() für Resource-Anfragen, GetDPoPJWKThumbprint() zur Verifizierung des Token-Bindings.
[+] : Neue OAuth2-Server-DPoP-Unterstützung (RFC 9449): DPoP-Proof-Validierung, JWK-Thumbprint-Token-Binding, Token-Typ-DPoP-Ausgabe und OnOAuth2ValidateDPoP-Ereignis.
[+] : Deflate-Erweiterung verbessert: die Geschwindigkeit wurde besonders für kleine Nachrichten verbessert. (Danke an Michael für die Behebung).
[+] : Neue Gemini-API: Google-Gemini-Integration mit Content Generation (mit Streaming), Vision, strukturierter JSON-Ausgabe, Tool Use (Function Calling), Token Counting, Embeddings und Model-Listing.
[+] : Neue DeepSeek-API: DeepSeek-Integration mit Chat Completions (mit Streaming), Vision, Tool Use (Function Calling) und Model-Listing.
[+] : Neue Ollama-API: Ollama-Local-LLM-Integration mit Chat Completions (mit Streaming), Model Management (show, pull, delete, list tags) und Embeddings.
[+] : Neue Grok-API: xAI-Grok-Integration mit Chat Completions (mit Streaming), Vision, Tool Use (Function Calling) und Model-Listing.
[+] : Neue Mistral-API: Mistral-AI-Integration mit Chat Completions (mit Streaming), Vision, strukturierter JSON-Ausgabe, Tool Use (Function Calling), Embeddings und Model-Listing.
[*] : HTTP/2 Server-side-Streaming für große Antworten behoben: verhindert Out-of-Memory-Abstürze beim Ausliefern großer Dateien und reduziert den Spitzenspeicherbedarf des Servers.
[*] : HTTP/2 Client-side-Memory-Reallocation beim Empfang großer Antworten behoben: der Payload-Buffer nutzt jetzt eine Kapazitäts-Wachstumsstrategie mit plattformspezifischen Obergrenzen (128 MB unter Win32, 1 GB unter Win64), statt bei jedem DATA-Frame neu zu allokieren.
[*] : HTTP/2-SSL-Write-Deadlock bei großen Datei-Transfers behoben: WINDOW_UPDATEs werden jetzt zwischen Read-Iterationen gequeuet und geflusht, statt während der Frame-Verarbeitung inline geschrieben zu werden; dadurch blockieren Client und Server nicht mehr gleichzeitig auf SSL_write.
[*] : HTTP/2-Integer-Overflow bei Dateien über 2 GB behoben: FrameLength, Offset, WindowSize, PayLoadCapacity, ReadWindowSize und die Flow-Control-Akkumulatoren von Integer auf Int64 umgestellt.
[*] : HTTP/2-Stream-State behoben: RST_STREAM-Frames, die auf Idle-Streams (nach Stream-Cleanup) empfangen werden, gehen jetzt sauber in den Status closed über, statt einen PROTOCOL_ERROR auszulösen.
[*] : HPACK-Encoder behoben: GetBestMatchingIndex liefert jetzt korrekt Static-Table-Name-only-Matches und verhindert so Kompressionsfehler bei HTTP/2-Verbindungen.
[*] : HPACK-Encoder behoben: die Huffman-Bitmaske verwendet jetzt die korrekte Shift-Left-Operation.
[*] : HPACK-Decoder behoben: Byte-Count- und Available-Bytes-Berechnungen berücksichtigen jetzt den Buffer-Offset korrekt.
[*] : SetBytesFromInteger behoben: Zwischen-Byte-Extraktionen werden jetzt mit $FF maskiert, um Range-Check-Fehler bei Werten wie WINDOW_UPDATE-Inkrementen zu verhindern.
[*] : Behoben: Inkompatibilitäten bei typisierten Zeigern, wenn die Option "Typed @ operator" aktiv ist.
[*] : JWT-RSA-Signierung behoben: der vLength-Parameter in DoSignRSA war als Integer statt TIdNativeUInt deklariert, was auf 64-Bit-Plattformen zu potenzieller Stack-Korruption führte. (Danke an Gabriel für die Behebung).
[*] : Win64-Pointer-Truncation in sgcHTTP_API_OpenAI behoben: mciSendCommand-Aufrufe nutzten einen Cardinal()-Cast auf Pointer; durch NativeUInt() ersetzt.
[*] : OAuth2-Server behoben: SetOAuth2Options-Speicherleck behoben.
[*] : Bitfinex-Access-Violation beim Unsubscribe von einem Channel behoben.
[*] : Speicherlecks in Indy-Servern behoben, verursacht durch thread-unsichere Lazy-Initialisierung der Felder FSpecifications und FConnections. Gleichzeitig laufende Indy-Worker-Threads konnten beim Anlegen kollidieren und Instanzen verwaisen lassen.
