TsgcSTUNServer › Olaylar › OnSTUNRequestError
Sunucu bir STUN 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 Binding Error Response (örneğin 400 Bad Request, 401 Unauthorized, 420 Unknown Attribute veya 438 Stale Nonce) oluşturduğunda 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 da aynı kaynaktan tekrar tekrar geçersiz istekler geldiğinde amplifikasyonu önlemek için yararlı olabilir. İşleyici, NotifyEvents başka bir mod seçmedikçe dinleyici thread'inde ç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('STUN error for ' + aSocket.PeerIP);
Accept := True;
end;