TsgcTURNServer › Events › OnSTUNRequestError
Sunucu bir STUN/TURN hata yanıtı göndermeden önce tetiklenir; işleyicinin yanıtı incelemesine veya bastırmasına olanak tanır.
property OnSTUNRequestError: TsgcSTUNRequestErrorEvent;
// TsgcSTUNRequestErrorEvent = procedure(Sender: TObject; const aSocket: TsgcSocketConnection; const aRequest: TsgcSTUN_Message; const aResponse: TsgcSTUN_Message; var Accept: Boolean) of object
—
Sunucu bir hata yanıtı oluşturduğunda (örneğin 400 Bad Request, 401 Unauthorized, 403 Forbidden, 437 Allocation Mismatch, 438 Stale Nonce, 441 Wrong Credentials, 442 Unsupported Transport Protocol, 486 Allocation Quota Reached, 508 Insufficient Capacity) ve bunu istemciye geri göndermek üzereyken tetiklenir. Başarısızlık nedenini günlüğe kaydetmek için aRequest / aResponse'u — özellikle aResponse'un ERROR-CODE özniteliğini — inceleyin. Datagramı düşürmek ve istemciyi yanıtsız bırakmak için Accept := False olarak ayarlayın; bu, aynı kaynaktan tekrarlanan geçersiz istekler geldiğinde amplifikasyondan kaçınmak için yararlı olabilir. NotifyEvents başka bir mod seçmedikçe işleyici dinleyici iş parçacığında çalışır.
procedure TForm1.OnSTUNRequestError(Sender: TObject;
const aSocket: TsgcSocketConnection; const aRequest: TsgcSTUN_Message;
const aResponse: TsgcSTUN_Message; var Accept: Boolean);
begin
Memo1.Lines.Add('TURN error for ' + aSocket.PeerIP);
Accept := True;
end;