https://bugs.gentoo.org/show_bug.cgi?id=307489 http://homenet.beeline.ru/index.php?showtopic=192551&st=0&p=1063626345&#entry1063626345 --- xl2tpd.c 2010-05-10 22:35:43.000000000 +0200 +++ xl2tpd.c 2010-08-15 22:02:14.000000000 +0200 @@ -587,9 +587,33 @@ hp = gethostbyname (host); if (!hp) { - l2tp_log (LOG_WARNING, "Host name lookup failed for %s.\n", - host); - return NULL; + if ( lac->redial ) + { + int imax=lac->rmax; + if ( lac->rmax == 0 ) + imax = 1; + while ( imax > 0 ) + { + hp = gethostbyname ( host ); + if ( hp ) + break; + l2tp_log ( LOG_WARNING, "Y: Host name lookup failed for %s. Trying to look again in %d seconds.\n", host, lac->rtimeout ); + if ( lac->rtimeout > 0 ) + sleep ( lac->rtimeout ); + if ( lac->rmax > 0 ) + imax--; + } + if ( ( imax == 0 ) && ( lac->rmax > 0 ) ) + { + l2tp_log ( LOG_WARNING, "Y: Host name lookup failed for %s after %d tries. Lookup stops now.\n", host, lac->rmax ); + return NULL; + } + } + else + { + l2tp_log (LOG_WARNING, "Host name lookup failed for %s.\n", host); + return NULL; + } } bcopy (hp->h_addr, &addr, hp->h_length); /* Force creation of a new tunnel