TsgcSTUNServer › Eventi › OnSTUNRequestSuccess
Viene generato prima che il server invii una risposta Binding Response corretta, in modo che il gestore possa ispezionare o respingere la risposta.
property OnSTUNRequestSuccess: TsgcSTUNRequestSuccessEvent;
// TsgcSTUNRequestSuccessEvent = procedure(Sender: TObject; const aSocket: TsgcSocketConnection; const aRequest, aResponse: TsgcSTUN_Message; var Accept: Boolean) of object
—
Si attiva dopo che il server ha elaborato con successo una Binding Request e ha costruito la risposta contenente l'indirizzo pubblico (mappato) del client, ma prima che il datagramma venga inviato. aRequest espone il messaggio STUN originale (id transazione, attributi, endpoint sorgente) e aResponse espone la Binding Response che sta per essere trasmessa; entrambi possono essere ispezionati per la registrazione o l'auditing. Impostare Accept := False per scartare la risposta in modo silenzioso, ad esempio per implementare una limitazione della frequenza personalizzata o una lista nera per client. Il gestore viene eseguito sul thread di ascolto a meno che NotifyEvents non lo reindirizzi.
procedure TForm1.OnSTUNRequestSuccess(Sender: TObject;
const aSocket: TsgcSocketConnection; const aRequest, aResponse: TsgcSTUN_Message;
var Accept: Boolean);
begin
Memo1.Lines.Add('Binding OK from ' + aSocket.PeerIP + ':' + IntToStr(aSocket.PeerPort));
Accept := True;
end;