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