[pgsql-jp: 27035] Re: usogresの仕様について質問がございます。
Hiroyuki OYAMA
oyama @ crayfish.co.jp
2002年 8月 14日 (水) 16:03:25 JST
クレイフィッシュの小山です。
usogresの仕様と言うよりは、postmasterとusogresが設定したと
おりに動作した結果こうなっています。
On Wed, 14 Aug 2002 11:27:49 +0900
"nakanohideyuki" <hnakano @ fastnet.co.jp> wrote:
> 'psql -h 192.168.1.11 -p 5432' では正常に起動できますが、
>
> 'psql -h localhost -p 5432' では以下のエラーメッセージがでて
> 接続できません。
>
> --------------- エラーメッセージ ------------------------
> %psql -h localhost -p 5432
> psql: could not connect to server: Connection refused
> Is the server running on host localhost and accepting
> TCP/IP connections on port 5432?
> -----------------------------------------------------
>
> usogresを介さない接続ですと、
> 'psql -h 192.168.1.11 -p 5432'
> 'psql -h localhost -p 5432'
> とも正常に接続できます。
>
> 上記の現象は、usogresの仕様なのでしょうか?
恐らくusogresrcで以下のように記述すれば期待する動作をする
と思います。
host = "0.0.0.0"
# 私はusogresを使ったことは有りませんし、usogresのコードも
# 流し読みしただけですので検証してません。
ちなみにpostmasterは明示的にIPアドレスを指定しない場合、
INADDR_ANY(0.0.0.0)にbindして全てのインターフェイスで
clientからの接続を受け付けるようにしています。
libpq/pqconn.c:238
if (family == AF_INET)
{
/* TCP/IP socket */
if (hostName[0] == '\0')
saddr.in.sin_addr.s_addr = htonl(INADDR_ANY);
このため、(設定されない限り)そのマシンに存在する全てのイン
ターフェイスでclientの要求を受け付ける事になります。
そしてusogresはusogresrcで指定されたインターフェイスにbind
するので、結果このような動作の差異が生じます。
# usogres も'host'が未定義の場合はINADDR_ANYにbindするのかな?
この辺について詳しくはSocketに関する文献ををご参照ください。
あとはこのへんとか。
http://www.kt.rim.or.jp/~ksk/sock-faq/unix-socket-faq-ja-4.html#ss4.12
___
ちなみに localhost = 127.0.0.1 ではないホストも有り得るの
で
http://usogres.good-day.net/install.php3
の記述例はちょっぴりアレかもしれませんね。
______________
Hiroyuki OYAMA <oyama @ crayfish.co.jp>
System Operations Dept.
Crayfish Co.,Ltd. <http://Crayfish.CO.JP/>
"PerlとRubyでYahoo!Messenger"
-> http://ymca.infoware.ne.jp/
pgsql-jp メーリングリストの案内