[pgsql-jp: 30258] Re: PostgreSQL用コネクションプールサーバ pgpool

Tatsuo Ishii t-ishii @ sra.co.jp
2003年 6月 28日 (土) 16:43:02 JST


石井です.

> こんにちは。石田@苫小牧市です。
> おもしろそうなので飛びついてしまいました。

是非遊んでみてください.

> となってしまったので、pgpool -n -d してみたところ、
> 
> ERROR: accept() failed. reason: Bad address
> となっていました。
> 
> accept() の man を見てみたところ、
> http://www.jp.freebsd.org/cgi/mroff.cgi?subdir=man&lc=1&cmd=&man=
> accept&dir=jpman-5.1.0%2Fman&sect=0
> | addrlen は、値と結果の引数です。これは最初は addr が指す空間のサイズ
> | を含んでいなければなりません。
> となっていたので、
> 
> $ diff -u child.c.org child.c
> --- child.c.org Fri Jun 27 17:30:36 2003
> +++ child.c     Sat Jun 28 14:14:13 2003
> @@ -320,6 +320,7 @@
>          * Note that some SysV systems do not work here. For those
>          * systems, we need some locking mechanism for the fd.
>          */
> +       addrlen = sizeof(addr);
>         afd = accept(fd, &addr, &addrlen);
>         if (afd < 0)
>         {
> 
> としてみたところ、一応つながるようになりました。

う,すみません.addrlenはNULLでもOKなので,たまたま私のテストした環境
では動いてしまっていたようです.NULLに修正してもよいのですが,将来接続
してきたクライアントの情報を取りたくなるとも限らないので,石田さんのパッ
チを採用させていただきます.ありがとうございました.
--
Tatsuo Ishii



pgsql-jp メーリングリストの案内