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 は不要なところでは実効ユーザーをスーパーユーザー以外にします。
具体的には以下のように遷移します:
- 起動時: 実ユーザーIDを使います。
この間に行われる処理は:
- ログファイルの作成
- 設定ファイルの読み込み
- 設定ファイルの書き出し
- crossdomain ファイルの読み込み
- bind/listen 時: スーパーユーザーを使います。
- bind/listen 以降: 設定ファイルに書かれた user/group を使います。
実行ユーザーID の切り替えは、一般ユーザーで起動した場合及び Windows では無視されます。