Главная страница


ru.unix.bsd

 
 - RU.UNIX.BSD ------------------------------------------------------------------
 From : Gleb Smirnoff                        2:5020/400     14 May 2004  18:32:01
 To : Eugene Grosbein
 Subject : Re: RIPv2 на P2P
 -------------------------------------------------------------------------------- 
 
 Eugene Grosbein <Eugene.Grosbein@f1.n5006.z2.fidonet.org> wrote:
 
 EG> Вот с этим патчем у меня завелся RIPv2 на gif наконец-то.
 EG> Hо патч грязный, потому то абсолютно неоптимальный (жутко тормозной),
 EG> а кроме того вполне вероятно, что некорректный (не уверен,
 EG> что in_ifaddrhmask всегда равен длине массива in_ifaddrhashtbl минус 1).
 
 EG> Как пройтись по списку интерфейсов хотя бы линейно?
 
 А можете хоть в двух словах описать суть проблемы. Глядя в патч я не понимаю
 для чего он. Чего зебре не хватает от ядра?
 
 EG> - --- sys/netinet/in_var.h.orig Sat Dec 15 03:09:34 2001
 EG> +++ sys/netinet/in_var.h        Fri May 14 20:42:09 2004
 EG> @@ -117,6 +117,24 @@
 EG>         (ifp) = (ia == NULL) ? NULL : ia->ia_ifp; \
 EG>  }
 EG>  
 EG> +#define INADDR_TO_IFP_P2P(addr, ifp) \
 EG> +       /* struct in_addr addr; */ \
 EG> +       /* struct ifnet *ifp; */ \
 EG> +{ \
 EG> +       struct in_ifaddr *ia; \
 EG> +       int ifah_ind; \
 EG> +       int f = 1; \
 EG> +\
 EG> +       for (ifah_ind = 0; f && ifah_ind <= in_ifaddrhmask; ifah_ind++) \
 EG> +               LIST_FOREACH(ia, &in_ifaddrhashtbl[ifah_ind], ia_hash) \
 EG> +               if ((ia->ia_ifp->if_flags & IFF_POINTOPOINT) && \
 EG> +                       IA_DSTSIN(ia)->sin_addr.s_addr == (addr).s_addr) { \
 EG> +                               f = 0; \
 EG> +                               break; \
 EG> +               } \
 EG> +       (ifp) = (ia == NULL) ? NULL : ia->ia_ifp; \
 EG> +}
 EG> +
 EG>  /*
 EG>   * Macro for finding the internet address structure (in_ifaddr)
 EG> corresponding  * to a given interface (ifnet structure). - ---
 EG> sys/netinet/ip_output.c.orig      Fri May 14 18:51:35 2004 +++
 EG> sys/netinet/ip_output.c     Fri May 14 20:40:49 2004 @@ -1785,6 +1785,9 @@  
 EG> *ifindexp = ifindex;        } else {                INADDR_TO_IFP(*a, ifp); 
 EG> +               if (ifp == NULL) { +                      
 EG> INADDR_TO_IFP_P2P(*a, ifp); +               }        }        return ifp; }
 
 EG> Eugene
 
 -- 
 Totus tuus, Glebius.
 GLEBIUS-RIPN GLEB-RIPE
 --- ifmail v.2.15dev5.3
  * Origin: Demos online service (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: RIPv2 на P2P   Gleb Smirnoff   14 May 2004 18:32:01 
 RIPv2 на P2P   Alex Semenyaka   15 May 2004 01:17:08 
Архивное /ru.unix.bsd/6577cdca97ce.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional