[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.