TsgcSTUNServer › Événements › OnSTUNRequestSuccess
Déclenché avant que le serveur n'envoie une réponse de liaison réussie afin que le gestionnaire puisse inspecter ou opposer son veto à la réponse.
property OnSTUNRequestSuccess: TsgcSTUNRequestSuccessEvent;
// TsgcSTUNRequestSuccessEvent = procedure(Sender: TObject; const aSocket: TsgcSocketConnection; const aRequest, aResponse: TsgcSTUN_Message; var Accept: Boolean) of object
—
Déclenché après que le serveur a traité une requête Binding avec succès et construit la réponse portant l'adresse publique (mappée) du client, mais avant l'envoi du datagramme. aRequest expose le message STUN original (identifiant de transaction, attributs, point de terminaison source) et aResponse expose la réponse Binding qui est sur le point d'être transmise ; les deux peuvent être inspectés à des fins de journalisation ou d'audit. Définissez Accept := False pour rejeter silencieusement la réponse, par exemple pour implémenter une limitation de débit personnalisée ou une liste noire par client. Le gestionnaire s'exécute sur le thread d'écoute sauf si NotifyEvents le redirige.
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;