arp-v2 (void *)-1 "hack"

Bjoern A. Zeeb bzeeb-lists at lists.zabbadoz.net
Mon Dec 29 00:35:16 UTC 2008


On Sun, 28 Dec 2008, Bjoern A. Zeeb wrote:

Hi,

> On Sun, 28 Dec 2008, Kip Macy wrote:
>
> Hi,
>
>>> What do you think wrt to adding the (possibly optional) int *error and
>>> returning the errno rather than a (void *)-1?  If you'd be ok, I'd can
>>> prepare the patch. I'd rather break the API now than in a few months.
>> 
>> I would greatly prefer having a dedicated new function that calls in
>> to it. There are a lot of calls to lla_lookup that would have to be
>> changed needlessly. In other words:
>
> Right, there are 14 or so of them and at least 2 will need to be
> touched.
>
>> 1) lla_lookup_internal - a static function which takes all 3 args
>> 2) lla_delete - which returns an errno
>> 3) lla_lookup - which maintains the current interface
>
> I wonder if it's worth adding two more functions for about a dozen calls
> from basically 2 files; especially considering that we will need to modify
> the internal API (llt_lookup function pointer in struct lltable and 
> in_lltable_lookup()/in6_lltable_lookup()) anyway.
>
> That's why I thought adding the int *error now consistently would be
> easier and cleaner.
>
> Most of the callers, currently not caring could just pass in NULL, if
> they don't care and we keep the argument optional.


Just as a follow-up. I talked to Qing and the summary is:

* we agree that this should be changed - one way or the other.

* we'll wait a bit for things to settle more and possibly (though
   hopefully not) collect another few cases and fix them all at once
   should they show up.

/bz

-- 
Bjoern A. Zeeb                      The greatest risk is not taking one.


More information about the freebsd-net mailing list