TsgcSTUNServer › Events › OnSTUNRequestSuccess
Wordt geactiveerd voordat de server een succesvolle Binding Response stuurt, zodat de handler het antwoord kan inspecteren of vetoën.
property OnSTUNRequestSuccess: TsgcSTUNRequestSuccessEvent;
// TsgcSTUNRequestSuccessEvent = procedure(Sender: TObject; const aSocket: TsgcSocketConnection; const aRequest, aResponse: TsgcSTUN_Message; var Accept: Boolean) of object
—
Wordt geactiveerd nadat de server een Binding Request met succes heeft verwerkt en het antwoord heeft opgebouwd dat het publieke (gemapte) adres van de client bevat, maar voordat het datagram wordt verzonden. aRequest stelt het oorspronkelijke STUN-bericht bloot (transaction id, attributen, bronendpunt) en aResponse stelt het Binding Response bloot dat op het punt staat te worden verzonden; beide kunnen worden geïnspecteerd voor logging of auditing. Stel Accept := False in om het antwoord stilzwijgend te verwerpen, bijvoorbeeld om aangepaste rate limiting of zwarte-lijsten per client te implementeren. De handler draait op de listenerthread, tenzij NotifyEvents deze omleidt.
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;