Shiro Kawai
shiro****@lava*****
2003年 5月 4日 (日) 12:25:59 JST
From: Kimura Fuyuki <fuyuk****@hadal*****> Subject: Re: [Gauche-devel-jp] IPv6サポートへ向けて Date: Sun, 04 May 2003 09:09:16 +0900 > At Fri, 02 May 2003 23:26:07 -1000 (HST), > Shiro Kawai <shiro****@lava*****> wrote: > > > > HAVE_IPV6でなくても AF_INET6 の定義はあったりするので、 > > 実はこれをひそかに恐れていました。やっぱりそういう環境がありましたか。 > (if ... define-enum ... ) をさらに if でくくっておきたかったのですが、 > それは今のところできないようなので。 (if "defined(HAVE_IPV6)&&defined(AF_INET6)" (define-enum AF_INET6)) という書き方はできますが、全部のシンボルについてこれを やるのはちょっといやですね。 > > これはなかなか良いと思いますが、v6で通信できるのにv4を明示的に > > 指定したい時ってあるのかな。サーバソケットなんかはどうなんでしょう。 > > たぶんあると思います。が、高レベルインターフェースをあまり複雑にしても > しょうがないので、特定のアドレスを指定したいときには自力で名前解決して > そのアドレスを渡してもらうということで。ただし、make-server-socket に > ついてはこれができません(host引数がないから)。v4 だけで使う場合にも > bindするアドレスは限定できたほうがいいと思うんですけどね。しかしhost引 > 数を追加すると互換性がなくなってしまうので困っています。 なるほどそうか。v4で使う場合でもアドレス:anyにしたくない場合は あるわけですね。 あまり綺麗では無いですが、make-server-socketをポリモルフィックに 振る舞わせることはできると思います。 ;; 現在サポートされている形式 (make-serrer-socket 'unix (path <string>)) (make-server-socket 'inet (port <integer>)) (make-server-socket (port <integer>)) ;; 追加でサポートする形式 (make-server-socket 'inet (host <string>) (port <integer>)) (make-server-socket (addr <sys-sockaddr>)) > > あと、make-hintsという名前はちょっと一般的すぎる気もします。 > > 思います。addrinfo絡みということがわかるような名前が > > あるといいんですが。 > > 同感です。make-addrinfo-hints か make-ai-hints ですかね。 make-addrinfo-hintsにしましょうか。 --shiro