xdomaind

Flashアプリケーションがサーバーと通信する際には crossdomain というファイルを取得します。
そして xdomaind は、crossdomain ファイルを返すためのサーバープログラムです。

設定ファイル

xdomaind はカレントディレクトリの xdomaind.cf という設定ファイルを読み込みます。 存在しない場合は、xdomaind.cf を作成してプログラムを終了します。

xdomaind.cf は、"名前 = 値" という形で一行に一つずつ設定を書きます。

例えば、

  port                 = 843

は、port を 843 に指定します。

なお、空白とタブは無視されます。また、# 以降の内容は無視されます。

設定項目は以下のものがあります:

port
サーバーの bind/listen するポート番号を指定します。
デフォルトは 843 です。
num_communicators
サーバーの同時接続数を指定します。
crossdomain プロトコルはすぐに切断するので、それほど大量に指定する必要はありません。
デフォルトは 100 です。
user
プログラムの実行ユーザーIDです。詳しくは「実行ユーザーID」の節を参照してください。
デフォルトは nobody です。
group
プログラムの実行グループIDです。詳しくは「実行ユーザーID」の節を参照してください。
デフォルトは nogroup です。
filename
flashクライアントへ返却する crossdomain ファイルを指定します。
ファイルの内容は起動時にメモリに読み込み、以後はそのメモリの内容を返します。
デフォルトは crossdomain.xml です。

実行ユーザーID

crossdomain サービスのデフォルトポートは 843 です。 UNIX系OSでこのポート番号を使う為には、スーパーユーザー権限を必要とします。

セキュリティの観点から、xdomaind は不要なところでは実効ユーザーをスーパーユーザー以外にします。

具体的には以下のように遷移します:

  1. 起動時: 実ユーザーIDを使います。
    この間に行われる処理は:
  2. bind/listen 時: スーパーユーザーを使います。
  3. bind/listen 以降: 設定ファイルに書かれた user/group を使います。

実行ユーザーID の切り替えは、一般ユーザーで起動した場合及び Windows では無視されます。