TsgcTURNServer › Gebeurtenissen › OnSTUNRequestError
Wordt aangeroepen voordat de server een STUN/TURN-foutrespons verzendt; laat de handler toe om het antwoord te inspecteren of te onderdrukken.
property OnSTUNRequestError: TsgcSTUNRequestErrorEvent;
// TsgcSTUNRequestErrorEvent = procedure(Sender: TObject; const aSocket: TsgcSocketConnection; const aRequest: TsgcSTUN_Message; const aResponse: TsgcSTUN_Message; var Accept: Boolean) of object
—
Wordt geactiveerd wanneer de server een foutrespons heeft opgebouwd (bijvoorbeeld 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) en deze op het punt staat terug te sturen naar de client. Inspecteer aRequest / aResponse — met name het ERROR-CODE-attribuut van aResponse — om de reden van de fout te loggen. Stel Accept := False in om het datagram te verwijderen en de client zonder antwoord te laten, wat nuttig kan zijn om amplificatie te voorkomen wanneer herhaaldelijk ongeldige verzoeken binnenkomen van dezelfde bron. De handler wordt uitgevoerd op de listenerthread, tenzij NotifyEvents een andere modus selecteert.
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;