TsgcSTUNServer › Eventos › OnSTUNRequestError
Gerado antes de o servidor enviar uma resposta de erro STUN; permite que o manipulador inspecione ou suprima a resposta.
property OnSTUNRequestError: TsgcSTUNRequestErrorEvent;
// TsgcSTUNRequestErrorEvent = procedure(Sender: TObject; const aSocket: TsgcSocketConnection; const aRequest: TsgcSTUN_Message; const aResponse: TsgcSTUN_Message; var Accept: Boolean) of object
—
Disparado quando o servidor construiu uma Binding Error Response (por exemplo 400 Bad Request, 401 Unauthorized, 420 Unknown Attribute ou 438 Stale Nonce) e está prestes a enviá-la de volta ao cliente. Inspecione aRequest / aResponse — em particular o atributo ERROR-CODE de aResponse — para registrar o motivo da falha. Defina Accept := False para descartar o datagrama e deixar o cliente sem resposta, o que pode ser útil para evitar amplificação quando requisições inválidas repetidas chegam da mesma origem. O handler é executado na thread do listener, a menos que NotifyEvents selecione outro modo.
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;