On Tue, Jul 14, 2015 at 07:57:32PM +0200, Martin Pieuchot wrote:
> On 07/07/15(Tue) 18:02, Martin Pieuchot wrote:
> > Maybe not yet but at least I'd like to do the ARP request a bit later.
> > 
> > We create a RTF_LOCAL route entry for every configured address.  So
> > use this information to emit a "who-has" for the configured address.
> > 
> > This also has the advantage of *not* sending an ARP request if 
> > something wrong happens between the SIOCSIFADDR ioctl and the
> > RTF_LOCAL route creation.
> 
> Anybody?
> 

OK claudio@

> > Ok?
> > 
> > Index: netinet/if_ether.c
> > ===================================================================
> > RCS file: /cvs/src/sys/netinet/if_ether.c,v
> > retrieving revision 1.157
> > diff -u -p -r1.157 if_ether.c
> > --- netinet/if_ether.c      7 Jul 2015 14:22:25 -0000       1.157
> > +++ netinet/if_ether.c      7 Jul 2015 15:56:15 -0000
> > @@ -196,8 +196,11 @@ arp_rtrequest(int req, struct rtentry *r
> >                     if ((rt->rt_flags & RTF_CLONING) != 0)
> >                             break;
> >             }
> > -           /* Announce a new entry if requested. */
> > -           if (rt->rt_flags & RTF_ANNOUNCE)
> > +           /*
> > +            * Announce a new entry if requested or warn the user
> > +            * if another station has this IP address.
> > +            */
> > +           if (rt->rt_flags & (RTF_ANNOUNCE|RTF_LOCAL))
> >                     arprequest(ifp,
> >                         &satosin(rt_key(rt))->sin_addr.s_addr,
> >                         &satosin(rt_key(rt))->sin_addr.s_addr,
> > @@ -850,12 +853,6 @@ arpproxy(struct in_addr in, u_int rdomai
> >  void
> >  arp_ifinit(struct arpcom *ac, struct ifaddr *ifa)
> >  {
> > -
> > -   /* Warn the user if another station has this IP address. */
> > -   arprequest(&ac->ac_if,
> > -       &satosin(ifa->ifa_addr)->sin_addr.s_addr,
> > -       &satosin(ifa->ifa_addr)->sin_addr.s_addr,
> > -       ac->ac_enaddr);
> >     ifa->ifa_rtrequest = arp_rtrequest;
> >  }
> >  
> > 
> 

-- 
:wq Claudio

Reply via email to