postfix + libinet6
Artur Frysiak
wiget w pld.org.pl
Wto, 28 Sie 2001, 10:50:19 CEST
On Fri, Aug 24, 2001 at 09:53:23AM +0200, Jakub Bogusz wrote:
> On Thu, Aug 23, 2001 at 07:47:26PM +0200, Arkadiusz Miskiewicz wrote:
> > Jakub Bogusz <qboosh w prioris.mini.pw.edu.pl> writes:
> > > Problem w tym, że funkcja ta dodaje zarówno 0.0.0.0 jak
> > > i 127.0.0.1 (w przypadku braku v6 w jajku) lub :: jak i 0.0.0.0
> > > (a może i jeszcze 127.0.0.1) (w przypadku obecności v6);
> > > potem przy bindowaniu lista adresów != 0 i wtedy usiłuje podbindować
> > > wszystkie adresy z listy jednocześnie.
> > Cóż. Takie to są kwiatki... jakoś to musisz rozwiązać :)
>
> Ale dlaczego ja? Ja nie wrzuciłem postfiksa z zepsutym patchem v6 na
> ftp ;>
>
> Jakieś propozycje?
> Właściwie do czego jest potrzebne wildcard_inet_addr_init()?
> Czy są sytuacje, kiedy nie wystarczy jeden "wildcard" (czyli "::"
> w przypadku działającego IPv6 lub "0.0.0.0" w przypadku braku v6)?
> A jeżeli jednak funkcja jest potrzebna - to jak najprościej wykryć
> który adres zawiera się w innym?
> W praktyce zauważyłem, że getaddrinfo() zwraca adresy w kolejności
> ::, 0.0.0.0, 127.0.0.1 - ale czy można tak zakładać?
> Jeżeli tak, to można traktować EADDRINUSE w przypadku >=2. bindowania
> jako non-fatal.
wildcard_inet_addr_init() jest potrzebny aby ustalić do jakich adresów
należy się bindować.
Rozpatrzmy tylko Linuksa:
+------------------------+--------------------+
| Typ jądra | Wildcard |
+------------------------+--------------------+
| z IPv6, bez USAGI | :: |
| bez IPv6, bez USAGI | 0.0.0.0 |
| z IPv6, z USAGI | ::, 0.0.0.0 |
| bez IPv6, z USAGI | 0.0.0.0 |
+------------------------+--------------------+
Poza tym myśle, że EADDRINUSE nie powinno być traktowane jako fatal a
jedynie jako warning.
Jeśli chodzi o używanie libinet6 to można z tego zrezygnować pod warunkiem
wyodrębnienia getifaddrs() do osobnego pliku i dołączeniu go do źródeł
postfixa.
Pozdrawiam
-
Artur Frysiak
http://www.pld.org.pl/
Więcej informacji o liście dyskusyjnej pld-devel-pl