TsgcSTUNServer › Eventi › OnSTUNRequestError
Generato prima che il server invii una risposta di errore STUN; consente al gestore di esaminare 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
—
Generato quando il server ha costruito una Binding Error Response (ad esempio 400 Bad Request, 401 Unauthorized, 420 Unknown Attribute o 438 Stale Nonce) e sta per rinviarla 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, cosa che può essere utile per evitare l'amplificazione quando dalla stessa origine arrivano ripetute richieste non valide. Il gestore viene eseguito nel thread del listener, a meno 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('STUN error for ' + aSocket.PeerIP);
Accept := True;
end;