postgres と Bonjour
PostgreSQL が 8.2系統が出ていたので、興味本位でインスト。その時に、'--with-bonjour'とあり、調べてみた。
MacOSX には Bonjour という機能がある。Bonjour - Apple サポート 公式サイト
こいつは、要はブロードキャストを送って、反応のあるやつにサービスを提供するという品物。そんな品物だから、PostgreSQL にどう応用しているのか少し気にはなります。
早速、'cd src && find . | xargs grep bonjour' とコマンドをうって、必要そうな所を見ると・・・
src/backend/postmaster/postmaster.c:#ifdef USE_BONJOUR src/backend/postmaster/postmaster.c:char *bonjour_name; src/backend/postmaster/postmaster.c:#ifdef USE_BONJOUR src/backend/postmaster/postmaster.c:#ifdef USE_BONJOUR src/backend/postmaster/postmaster.c: /* Register for Bonjour only if we opened TCP socket(s) */ src/backend/postmaster/postmaster.c: if (ListenSocket[0] != -1 && bonjour_name != NULL) src/backend/postmaster/postmaster.c: DNSServiceRegistrationCreate(bonjour_name, src/backend/postmaster/postmaster.c:#ifdef USE_BONJOUR src/backend/postmaster/postmaster.c:#endif /* USE_BONJOUR */ src/backend/utils/misc/guc.c: {"bonjour_name", PGC_POSTMASTER, CONN_AUTH_SETTINGS, src/backend/utils/misc/guc.c: gettext_noop("Sets the Bonjour broadcast service name."), src/backend/utils/misc/guc.c: &bonjour_name, src/backend/utils/misc/postgresql.conf.sample:#bonjour_name = '' # defaults to the computer name
見ていただいたらおわかりになると思いますが、postmaster が bonjour を使ってます。そして、utils の方では何かの設定を行っている。これは、Bonjour でのコンピュータ名を決める為にあり、空白の場合はコンピュータ名になるそうです。
ここ(postgresqlのドキュメントの索引)や、GOOGLEの検索結果などを見る限りの判断で、実際使った訳ではいなんですが、ネットワーク上にある Postgresql サーバに接続する際に簡単にする為に使う気配。
インストール先が Mac の場合だと推奨だそうで、実際 Bonjour 自体は良い物だと思います。ただ、セキュリティ面ではいかがな物か・・・