[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
apache6 getaddrinfo problem (pkg/13751)
pkg/13751 で書いたとおり、apache6-1.3.19 は
(実際にはもっと前からだと思いますが)
httpd.conf で ServerName を指定しなかった場合に問題があると思います。
先ほど apache6-1.3.20 を commit した Martti Kuparinen から、
「1.3.20 でも再現するか教えてね」とのメールが届いたので試しましたが、
やはり同じ問題が発生しました。
今さらではありますが、正直なところ getaddrinfo の使い方は
それほどわかっていないので、私のパッチが本当に正しい解か
気になっています。詳しい方、コメントいただければ幸いです。
インデントが変更されて 1.3.19 のパッチはそのままでは当たらないので、
一応 1.3.20 用のパッチを付けておきます。
--
永江 英武 mailto:nagae@tk.airnet.ne.jp
Nagae Hidetake http://www.tk.airnet.ne.jp/nagae/
diff -r -c apache_1.3.20.orig/src/main/util.c apache_1.3.20/src/main/util.c
*** apache_1.3.20.orig/src/main/util.c Tue Oct 9 01:37:06 2001
--- apache_1.3.20/src/main/util.c Tue Oct 9 01:38:50 2001
***************
*** 2088,2104 ****
hints.ai_flags = AI_CANONNAME;
res = NULL;
error = getaddrinfo(str, NULL, &hints, &res);
! if (error == 0)
{
/* Since we found a fdqn, return it with no logged message. */
! if (res)
! freeaddrinfo(res);
return server_hostname;
}
else
{
/* Recovery - return the default servername by IP: */
! server_hostname = ap_pstrdup(a, res->ai_canonname);
/* We will drop through to report the IP-named server */
}
}
--- 2088,2104 ----
hints.ai_flags = AI_CANONNAME;
res = NULL;
error = getaddrinfo(str, NULL, &hints, &res);
! if (error == 0 && res)
{
/* Since we found a fdqn, return it with no logged message. */
! server_hostname = ap_pstrdup(a, res->ai_canonname);
! freeaddrinfo(res);
return server_hostname;
}
else
{
/* Recovery - return the default servername by IP: */
! server_hostname = ap_pstrdup(a, str);
/* We will drop through to report the IP-named server */
}
}