TsgcSTUNServer › Zdarzenia › OnSTUNRequestError
Wywoływane przed wysłaniem przez serwer odpowiedzi błędu STUN; umożliwia procedurze obsługi zbadanie lub pominięcie odpowiedzi.
property OnSTUNRequestError: TsgcSTUNRequestErrorEvent;
// TsgcSTUNRequestErrorEvent = procedure(Sender: TObject; const aSocket: TsgcSocketConnection; const aRequest: TsgcSTUN_Message; const aResponse: TsgcSTUN_Message; var Accept: Boolean) of object
—
Wywoływane, gdy serwer zbudował odpowiedź błędu powiązania (na przykład 400 Bad Request, 401 Unauthorized, 420 Unknown Attribute lub 438 Stale Nonce) i zamierza ją odesłać klientowi. Należy sprawdzić aRequest / aResponse — w szczególności atrybut ERROR-CODE w aResponse — aby zarejestrować przyczynę błędu. Ustawienie Accept := False powoduje odrzucenie datagramu i pozostawienie klienta bez odpowiedzi, co może być przydatne do zapobiegania amplifikacji w przypadku powtarzających się nieprawidłowych żądań z tego samego źródła. Procedura obsługi działa w wątku nasłuchującym, chyba że NotifyEvents wybierze inny tryb.
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;