TsgcSTUNServer › イベント › OnSTUNRequestError
サーバーが STUN エラーレスポンスを送信する前に発生します。ハンドラーがレスポンスを検査または抑制できます。
property OnSTUNRequestError: TsgcSTUNRequestErrorEvent;
// TsgcSTUNRequestErrorEvent = procedure(Sender: TObject; const aSocket: TsgcSocketConnection; const aRequest: TsgcSTUN_Message; const aResponse: TsgcSTUN_Message; var Accept: Boolean) of object
—
サーバーがバインディングエラーレスポンス(例: 400 Bad Request、401 Unauthorized、420 Unknown Attribute、438 Stale Nonce)を構築し、クライアントに送信しようとしているときに発生します。aRequest/aResponse(特に aResponse の ERROR-CODE 属性)を検査して失敗の理由をログします。Accept := False に設定するとデータグラムをドロップしてクライアントへの応答なしにします。同じソースから繰り返し無効なリクエストが届く場合の増幅を防ぐのに便利です。NotifyEvents が別のモードを選択しない限り、ハンドラーはリスナースレッドで実行されます。
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;