TsgcTURNServer › Eventi › OnSTUNRequestError
Generato prima che il server invii una risposta di errore STUN/TURN; consente al gestore di ispezionare o sopprimere la risposta.
property OnSTUNRequestError: TsgcSTUNRequestErrorEvent;
// TsgcSTUNRequestErrorEvent = procedure(Sender: TObject; const aSocket: TsgcSocketConnection; const aRequest: TsgcSTUN_Message; const aResponse: TsgcSTUN_Message; var Accept: Boolean) of object
—
Viene attivato quando il server ha costruito una risposta di errore (ad esempio 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) e sta per inviarla al client. Esamini aRequest / aResponse — in particolare l'attributo ERROR-CODE di aResponse — per registrare il motivo dell'errore. Imposti Accept := False per scartare il datagramma e lasciare il client senza risposta, il che può essere utile per evitare l'amplificazione quando richieste non valide ripetute arrivano dalla stessa sorgente. Il gestore viene eseguito sul thread del listener, salvo che NotifyEvents non selezioni un'altra modalità.
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;