TsgcTURNServer › Zdarzenia › OnSTUNRequestError
Wywoływane przed wysłaniem przez serwer odpowiedzi błędu STUN/TURN; umożliwia procedurze obsługi sprawdzenie 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 (na przykład 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) i zamierza ją odesłać do klienta. Należy sprawdzić aRequest / aResponse, a w szczególności atrybut ERROR-CODE w aResponse, aby zarejestrować przyczynę błędu. Ustawienie Accept := False powoduje odrzucenie datagramu bez wysyłania odpowiedzi do klienta, co może być przydatne w celu uniknięcia wzmocnienia przy wielokrotnych nieprawidłowych żądaniach z tego samego źródła. Procedura obsługi jest wykonywana w wątku nasłuchiwania, chyba że NotifyEvents wybiera 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('TURN error for ' + aSocket.PeerIP);
Accept := True;
end;