Rad Studio
[+] : 지원을 추가했어요: Rad Studio 13.1: 새로운 플랫폼 WinARM64EC가 지원돼요.[+] : 새로운 TsgcWSFirewall 컴포넌트: WebSocket 서버를 위한 완전한 기능의 방화벽이에요. IP 블랙리스트/화이트리스트(CIDR 지원), 자동 차단이 포함된 무차별 대입 공격 보호, SQL 인젝션 탐지, XSS 탐지, 속도 제한, 플러드 보호를 제공해요.
[+] : 서버 방화벽을 위한 새로운 데모: 새로운 방화벽의 주요 기능을 보여주며 폴더 "Demos\04.WebSocket_Other_Samples\13.Firewall"에 있어요.
[+] : HTTP/2 대용량 파일 전송을 위한 새로운 데모: HTTP/2를 통해 1GB 이상 파일 다운로드를 테스트하는 서버 + 클라이언트 데모이며 "Demos\20.HTTP_Protocol\13.HTTP2_LargeFile_Transfer"에 있어요.
[+] : 새로운 HTTP/2 디버그 로깅: sgcVer.inc에서 {$DEFINE SGC_DEBUG}가 활성화되면 프레임 송수신, WINDOW_UPDATE 증가, 스트리밍 청크 읽기가 LoggerPro를 통해 기록돼요.
[+] : MQTT 클라이언트를 개선했어요: 새로운 속성 RcvMsg to get access latest MQTT message received from the server.
[+] : 새로운 TsgcTCPClient 컴포넌트: WebSocket 클라이언트 인프라를 기반으로 한 완전한 기능의 TCP 클라이언트예요. TLS/SSL, 프록시, 워치독, 프로토콜 통합을 지원해요. 프로토콜(MQTT, AMQP, STOMP, WAMP 등)은 이제 Client 속성을 통해 TsgcTCPClient 또는 TsgcWebSocketClient를 사용할 수 있어요.
[+] : 새로운 OAuth2 클라이언트 토큰 취소 지원(RFC 7009): OnBeforeRevokeToken, OnAfterRevokeToken, OnRevokeTokenError 이벤트가 있는 Revoke() 메서드.
[+] : 새로운 OAuth2 클라이언트 토큰 검사 지원(RFC 7662): OnBeforeIntrospectToken, OnAfterIntrospectToken, OnIntrospectTokenError 이벤트가 있는 Introspect() 메서드.
[+] : 새로운 OAuth2 클라이언트 기기 인증 그랜트(RFC 8628): 자동 폴링, OnDeviceCode 및 OnDeviceCodeExpired 이벤트가 있는 auth2DeviceCode 그랜트 타입.
[+] : 새로운 OAuth2 서버 토큰 취소 엔드포인트(RFC 7009): OnOAuth2AfterRevokeToken 이벤트가 있는 /sgc/oauth2/revoke.
[+] : 새로운 OAuth2 서버 토큰 검사 엔드포인트(RFC 7662): OnOAuth2AfterIntrospectToken 이벤트가 있는 /sgc/oauth2/introspect.
[+] : 새로운 OAuth2 서버 기기 인증 엔드포인트(RFC 8628): OnOAuth2DeviceAuthorization 및 OnOAuth2DeviceCodeVerification 이벤트가 있는 /sgc/oauth2/device 및 /sgc/oauth2/device/verify.
[+] : 새로운 OAuth2 서버 리소스 소유자 비밀번호 자격 증명 그랜트 처리(password grant_type).
[+] : 새로운 OAuth2 서버 기기 코드 토큰 교환(urn:ietf:params:oauth:grant-type:device_code grant_type).
[+] : 새로운 OAuth2 클라이언트 DPoP 지원(RFC 9449): ES256/RS256 서명이 있는 DPoPOptions를 통한 발신자 제한 토큰, 자동 DPoP 증명 JWT 생성, JWK 지문 계산(RFC 7638), DPoP-Nonce 재시도 처리.
[+] : 새로운 OAuth2 클라이언트 DPoP 메서드: 리소스 요청을 위한 GetDPoPProof(), 토큰 바인딩 검증을 위한 GetDPoPJWKThumbprint().
[+] : 새로운 OAuth2 서버 DPoP 지원(RFC 9449): DPoP 증명 검증, JWK 지문 토큰 바인딩, token_type DPoP 발급, OnOAuth2ValidateDPoP 이벤트.
[+] : Improved Deflate extension: the speed has been improved specially for small messages. (알려준 Michael 의 수정에 감사드려요.)
[+] : 새로운 TsgcWebView2 컴포넌트: Microsoft Edge WebView2를 위한 시각적 VCL 래퍼예요. 내비게이션, JavaScript(비동기/동기/초기화 스크립트), 쿠키 관리, 다운로드 제어, 프로파일 관리, 인쇄, 오디오/음소거, 인증서 처리, 컨텍스트 메뉴, 파비콘, 가상 호스트 매핑, 스크린샷 캡처 및 20개 이상의 이벤트를 지원해요. Delphi 7부터 Delphi 13까지 지원해요.
[+] : WebView2 브라우저를 위한 새로운 데모: 내비게이션, JavaScript 실행, 쿠키, 인쇄, 음소거, 데이터 지우기, 가상 호스트 매핑, 이벤트 로깅을 보여줘요. "Demos\50.Other\WebView2_Browser"에 있어요.
[+] : 새로운 Gemini API: Google Gemini 통합이에요. 콘텐츠 생성(스트리밍 포함), Vision, 구조화된 JSON 출력, 도구 사용(함수 호출), 토큰 계산, Embeddings 및 모델 목록 조회를 지원해요.
[+] : 새로운 DeepSeek API: DeepSeek 통합이에요. Chat Completions(스트리밍 포함), Vision, 도구 사용(함수 호출), 모델 목록 조회를 지원해요.
[+] : 새로운 Ollama API: Ollama 로컬 LLM 통합이에요. Chat Completions(스트리밍 포함), 모델 관리(표시, 가져오기, 삭제, 태그 목록), Embeddings를 지원해요.
[+] : 새로운 Grok API: xAI Grok 통합이에요. Chat Completions(스트리밍 포함), Vision, 도구 사용(함수 호출), 모델 목록 조회를 지원해요.
[+] : 새로운 Mistral API: Mistral AI 통합이에요. Chat Completions(스트리밍 포함), Vision, 구조화된 JSON 출력, 도구 사용(함수 호출), Embeddings 및 모델 목록 조회를 지원해요.
[*] : 버그 수정 - 대용량 응답에 대한 HTTP/2 서버측 스트리밍: 대용량 파일 서비스 시 메모리 부족 충돌을 제거하고 최대 서버 메모리를 줄였어요.
[*] : 버그 수정 - 대용량 응답 수신 시 HTTP/2 클라이언트측 메모리 재할당: 페이로드 버퍼가 이제 모든 DATA 프레임에서 재할당하는 대신 플랫폼별 상한(Win32에서 128MB, Win64에서 1GB)을 가진 용량 증가 전략을 사용해요.
[*] : 버그 수정 - 대용량 파일 전송 시 HTTP/2 SSL 쓰기 교착 상태: WINDOW_UPDATE가 이제 프레임 처리 중 인라인으로 작성되는 대신 읽기 반복 사이에 큐에 추가되고 플러시되어 클라이언트와 서버 모두 SSL_write에서 동시에 차단되는 것을 방지해요.
[*] : 버그 수정 - 2GB 이상 파일에 대한 HTTP/2 정수 오버플로: FrameLength, Offset, WindowSize, PayLoadCapacity, ReadWindowSize 및 흐름 제어 누적기를 Integer에서 Int64로 변경했어요.
[*] : 버그 수정 - HTTP/2 스트림 상태: 유휴 스트림(스트림 정리 후)에서 수신된 RST_STREAM 프레임이 이제 PROTOCOL_ERROR를 발생시키는 대신 정상적으로 닫힌 상태로 전환돼요.
[*] : 버그 수정 - HPACK 인코더: GetBestMatchingIndex가 이제 정적 테이블 이름 전용 일치를 올바르게 반환하여 HTTP/2 연결의 압축 오류를 방지해요.
[*] : 버그 수정 - HPACK 인코더: Huffman 비트 마스크가 올바른 왼쪽 시프트 연산을 사용해요.
[*] : 버그 수정 - HPACK 디코더: 바이트 수와 사용 가능한 바이트 계산이 이제 버퍼 오프셋을 올바르게 계산해요.
[*] : 버그 수정 - SetBytesFromInteger: 중간 바이트 추출이 이제 $FF로 마스킹되어 WINDOW_UPDATE 증가와 같은 값에서 범위 검사 오류를 방지해요.
[*] : 버그 수정 - "Typed @ operator" 옵션이 활성화된 상태로 컴파일할 때 타입이 지정된 포인터 비호환성 문제를 수정했어요.
[*] : 버그 수정 - JWT RSA 서명: DoSignRSA의 vLength 매개변수가 TIdNativeUInt 대신 Integer로 선언되어 64비트 플랫폼에서 잠재적인 스택 손상을 일으킬 수 있었어요. (알려준 Gabriel에게 감사드려요.)
[*] : 버그 수정 - sgcHTTP_API_OpenAI의 Win64 포인터 잘림: mciSendCommand 호출이 포인터에 Cardinal() 캐스트를 사용했는데 NativeUInt()로 교체했어요.
[*] : 버그 수정 - OAuth2 서버: SetOAuth2Options 메모리 누수를 수정했어요.
[*] : 버그 수정 - AWS Signature V4: 정규 요청에서 쿼리 문자열 매개변수 정렬을 수정했어요.
[*] : 버그 수정 - Bitfinex에서 채널 구독 취소 시 액세스 위반 문제를 수정했어요.
[*] : 버그 수정 - FSpecifications 및 FConnections 필드의 스레드 안전하지 않은 지연 초기화로 인한 Indy 서버의 메모리 누수를 수정했어요. 동시 Indy 워커 스레드가 생성 시 경쟁하여 인스턴스가 고아가 될 수 있었어요.
[/] : The OnMQTTPublishEx event has changed the signature adding a 새로운 매개변수 aMessage of type TsgcWSMQTTMessage.
.NET
[+] : 새로운 TsgcWSFirewall 컴포넌트: WebSocket 서버를 위한 완전한 기능의 방화벽이에요. IP 블랙리스트/화이트리스트(CIDR 지원), 자동 차단이 포함된 무차별 대입 공격 보호, SQL 인젝션 탐지, XSS 탐지, 속도 제한, 플러드 보호를 제공해요.[+] : 서버 방화벽을 위한 새로운 데모: 새로운 방화벽의 주요 기능을 보여주며 폴더 "Demos\04.WebSocket_Other_Samples\13.Firewall"에 있어요.
[+] : HTTP/2 대용량 파일 전송을 위한 새로운 데모: HTTP/2를 통해 1GB 이상 파일 다운로드를 테스트하는 서버 + 클라이언트 데모이며 "Demos\20.HTTP_Protocol\13.HTTP2_LargeFile_Transfer"에 있어요.
[+] : 새로운 OAuth2 클라이언트 토큰 취소 지원(RFC 7009): OnBeforeRevokeToken, OnAfterRevokeToken, OnRevokeTokenError 이벤트가 있는 Revoke() 메서드.
[+] : 새로운 OAuth2 클라이언트 토큰 검사 지원(RFC 7662): OnBeforeIntrospectToken, OnAfterIntrospectToken, OnIntrospectTokenError 이벤트가 있는 Introspect() 메서드.
[+] : 새로운 OAuth2 클라이언트 기기 인증 그랜트(RFC 8628): 자동 폴링, OnDeviceCode 및 OnDeviceCodeExpired 이벤트가 있는 auth2DeviceCode 그랜트 타입.
[+] : 새로운 OAuth2 서버 토큰 취소 엔드포인트(RFC 7009): OnOAuth2AfterRevokeToken 이벤트가 있는 /sgc/oauth2/revoke.
[+] : 새로운 OAuth2 서버 토큰 검사 엔드포인트(RFC 7662): OnOAuth2AfterIntrospectToken 이벤트가 있는 /sgc/oauth2/introspect.
[+] : 새로운 OAuth2 서버 기기 인증 엔드포인트(RFC 8628): OnOAuth2DeviceAuthorization 및 OnOAuth2DeviceCodeVerification 이벤트가 있는 /sgc/oauth2/device 및 /sgc/oauth2/device/verify.
[+] : 새로운 OAuth2 서버 리소스 소유자 비밀번호 자격 증명 그랜트 처리(password grant_type).
[+] : 새로운 OAuth2 서버 기기 코드 토큰 교환(urn:ietf:params:oauth:grant-type:device_code grant_type).
[+] : 새로운 OAuth2 클라이언트 DPoP 지원(RFC 9449): ES256/RS256 서명이 있는 DPoPOptions를 통한 발신자 제한 토큰, 자동 DPoP 증명 JWT 생성, JWK 지문 계산(RFC 7638), DPoP-Nonce 재시도 처리.
[+] : 새로운 OAuth2 클라이언트 DPoP 메서드: 리소스 요청을 위한 GetDPoPProof(), 토큰 바인딩 검증을 위한 GetDPoPJWKThumbprint().
[+] : 새로운 OAuth2 서버 DPoP 지원(RFC 9449): DPoP 증명 검증, JWK 지문 토큰 바인딩, token_type DPoP 발급, OnOAuth2ValidateDPoP 이벤트.
[+] : Improved Deflate extension: the speed has been improved specially for small messages. (알려준 Michael 의 수정에 감사드려요.)
[+] : 새로운 Gemini API: Google Gemini 통합이에요. 콘텐츠 생성(스트리밍 포함), Vision, 구조화된 JSON 출력, 도구 사용(함수 호출), 토큰 계산, Embeddings 및 모델 목록 조회를 지원해요.
[+] : 새로운 DeepSeek API: DeepSeek 통합이에요. Chat Completions(스트리밍 포함), Vision, 도구 사용(함수 호출), 모델 목록 조회를 지원해요.
[+] : 새로운 Ollama API: Ollama 로컬 LLM 통합이에요. Chat Completions(스트리밍 포함), 모델 관리(표시, 가져오기, 삭제, 태그 목록), Embeddings를 지원해요.
[+] : 새로운 Grok API: xAI Grok 통합이에요. Chat Completions(스트리밍 포함), Vision, 도구 사용(함수 호출), 모델 목록 조회를 지원해요.
[+] : 새로운 Mistral API: Mistral AI 통합이에요. Chat Completions(스트리밍 포함), Vision, 구조화된 JSON 출력, 도구 사용(함수 호출), Embeddings 및 모델 목록 조회를 지원해요.
[*] : 버그 수정 - 대용량 응답에 대한 HTTP/2 서버측 스트리밍: 대용량 파일 서비스 시 메모리 부족 충돌을 제거하고 최대 서버 메모리를 줄였어요.
[*] : 버그 수정 - 대용량 응답 수신 시 HTTP/2 클라이언트측 메모리 재할당: 페이로드 버퍼가 이제 모든 DATA 프레임에서 재할당하는 대신 플랫폼별 상한(Win32에서 128MB, Win64에서 1GB)을 가진 용량 증가 전략을 사용해요.
[*] : 버그 수정 - 대용량 파일 전송 시 HTTP/2 SSL 쓰기 교착 상태: WINDOW_UPDATE가 이제 프레임 처리 중 인라인으로 작성되는 대신 읽기 반복 사이에 큐에 추가되고 플러시되어 클라이언트와 서버 모두 SSL_write에서 동시에 차단되는 것을 방지해요.
[*] : 버그 수정 - 2GB 이상 파일에 대한 HTTP/2 정수 오버플로: FrameLength, Offset, WindowSize, PayLoadCapacity, ReadWindowSize 및 흐름 제어 누적기를 Integer에서 Int64로 변경했어요.
[*] : 버그 수정 - HTTP/2 스트림 상태: 유휴 스트림(스트림 정리 후)에서 수신된 RST_STREAM 프레임이 이제 PROTOCOL_ERROR를 발생시키는 대신 정상적으로 닫힌 상태로 전환돼요.
[*] : 버그 수정 - HPACK 인코더: GetBestMatchingIndex가 이제 정적 테이블 이름 전용 일치를 올바르게 반환하여 HTTP/2 연결의 압축 오류를 방지해요.
[*] : 버그 수정 - HPACK 인코더: Huffman 비트 마스크가 올바른 왼쪽 시프트 연산을 사용해요.
[*] : 버그 수정 - HPACK 디코더: 바이트 수와 사용 가능한 바이트 계산이 이제 버퍼 오프셋을 올바르게 계산해요.
[*] : 버그 수정 - SetBytesFromInteger: 중간 바이트 추출이 이제 $FF로 마스킹되어 WINDOW_UPDATE 증가와 같은 값에서 범위 검사 오류를 방지해요.
[*] : 버그 수정 - "Typed @ operator" 옵션이 활성화된 상태로 컴파일할 때 타입이 지정된 포인터 비호환성 문제를 수정했어요.
[*] : 버그 수정 - JWT RSA 서명: DoSignRSA의 vLength 매개변수가 TIdNativeUInt 대신 Integer로 선언되어 64비트 플랫폼에서 잠재적인 스택 손상을 일으킬 수 있었어요. (알려준 Gabriel에게 감사드려요.)
[*] : 버그 수정 - sgcHTTP_API_OpenAI의 Win64 포인터 잘림: mciSendCommand 호출이 포인터에 Cardinal() 캐스트를 사용했는데 NativeUInt()로 교체했어요.
[*] : 버그 수정 - OAuth2 서버: SetOAuth2Options 메모리 누수를 수정했어요.
[*] : 버그 수정 - Bitfinex에서 채널 구독 취소 시 액세스 위반 문제를 수정했어요.
[*] : 버그 수정 - FSpecifications 및 FConnections 필드의 스레드 안전하지 않은 지연 초기화로 인한 Indy 서버의 메모리 누수를 수정했어요. 동시 Indy 워커 스레드가 생성 시 경쟁하여 인스턴스가 고아가 될 수 있었어요.
