Sendmail na IPv4 stroji a connect na IPv6
Dalibor Toman
dtoman na fortech.cz
Neděle Listopad 7 10:12:46 CET 2010
DD,
On Saturday, November 06, 2010 5:15 PM ,
Pavel Kankovsky <peak na argo.troja.mff.cuni.cz> wrote:
> On Wed, 3 Nov 2010, Dalibor Toman wrote:
>
>> problem je ale v tom, ze podle strace se sendmail nejprve pokusi
>> spachat connect pomoci AF_INET6 ten se nepovede a pak jeste
>> opakuje
>> spojeni pomoci AF_INET. Cili 2x se timeouti...
>
> Zkuste v konfiguraci nastavit O ClientPortOptions=Family=inet,něco.
> To by mohlo způsobit, že si mapovaných adres přestane všímat,
Tak tohle vypada jako presne to, co hledam.
Pridal jsem do sendmail.mc
CLIENT_OPTIONS(`Family=inet')dnl
a zda se, ze sendmail prestal INET6 family pouzivat. Koukal jsem vcera
do zdrojaku, ale timhle smerem me nenapadlo se zamerit. Ted jsem do
nich koukal znova a v funkce makeconnection() v damon.c obsahuje kod,
ktery kouka na nastaveni v ClientSettings, kde by se mela projevovat
ta volba co jsi mi poradil.
Zatim jsem ve strace INET6 connect nevidel a z netstatu zmizely se
sendmalem souvisejici radky s ::ffff:x.x.x.x adresami.
Diky moc
D. Toman
---
v daemon.c je (mimo jine)
#if NETINET6
if (addr.sa.sa_family == AF_INET6 &&
IN6_IS_ADDR_V4MAPPED(&addr.sin6.sin6_addr) &&
ClientSettings[AF_INET].d_addr.sa.sa_family != 0)
{
/*
** Ignore mapped IPv4 address since
** there is a ClientPortOptions setting
** for IPv4.
*/
goto nextaddr;
}
#endif /* NETINET6 */
Další informace o konferenci Linux