at_yasu's blog

ロード的なことを

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 自体は良い物だと思います。ただ、セキュリティ面ではいかがな物か・・・