[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[freewnn:00238] check socklen_t



 元木です。

In [freewnn : No.00236]
  Tatsuo Furukawa <frkwtto@osk3.3web.ne.jp> wrote:
| 古川竜雄です。

元木さん>  new_env内で sticky も初期化していなので、calloc が 0 で初期
元木さん>  化してくれるのを見込んで、なにもしていないのかも知れません
元木さん>  が、明示的でないのは非常にイヤだったのでパッチを投げておき
元木さん>  ます。

| ありがとうございますm(_"_)m。当てておきます。

 どもです。 ついでといっては何ですが configure.in 内の 
 socklen_t の検出が怪しかったので報告です。

# すでに誰かが報告してそうですが.....

 FreeWnn-1.1.1-a013 において、glibc 2.1.2 な環境では 
 socklen_t は bits/socket.h で定義されているので、
 AC_CHECK_TYPE だと検出に失敗します。

>- Macro: AC_CHECK_TYPE (TYPE, DEFAULT)
>     If the type TYPE is not defined in `sys/types.h', or `stdlib.h' or
>     `stddef.h' if they exist, define it to be the C (or C++) builtin
>     type DEFAULT; e.g., `short' or `unsigned'.

 他の OS ではどうなっているかが分からないのですが、ちょっと
 調べた限りでは OpenBSD, NetBSD, FreeBSD あたりでも 
 sys/socket.h を調べないと検出できないようです。
 (ほんとうにちょっとしか調べてないので実際に使ってる方に教え
  ていただきたいです。)

 とりあえず、AC_CHECK_TYPE で検出できないのなら、

AC_MSG_CHECKING(for socklen_t)
AC_EGREP_CPP(socklen_t, [#include <sys/socket.h>], AC_MSG_RESULT(yes), 
[ 
AC_DEFINE(socklen_t, int)
AC_MSG_RESULT(no)
])

 あたりでどうでしょうか?

sin.