From owner-freebsd-net@FreeBSD.ORG Mon Dec 29 00:35:16 2008 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 64EDE106564A; Mon, 29 Dec 2008 00:35:16 +0000 (UTC) (envelope-from bzeeb-lists@lists.zabbadoz.net) Received: from mail.cksoft.de (mail.cksoft.de [62.111.66.27]) by mx1.freebsd.org (Postfix) with ESMTP id 1F7698FC0C; Mon, 29 Dec 2008 00:35:15 +0000 (UTC) (envelope-from bzeeb-lists@lists.zabbadoz.net) Received: from localhost (amavis.str.cksoft.de [192.168.74.71]) by mail.cksoft.de (Postfix) with ESMTP id D914941C711; Mon, 29 Dec 2008 01:35:12 +0100 (CET) X-Virus-Scanned: amavisd-new at cksoft.de Received: from mail.cksoft.de ([62.111.66.27]) by localhost (amavis.str.cksoft.de [192.168.74.71]) (amavisd-new, port 10024) with ESMTP id g3SeSz0iixCR; Mon, 29 Dec 2008 01:35:12 +0100 (CET) Received: by mail.cksoft.de (Postfix, from userid 66) id 7C62241C710; Mon, 29 Dec 2008 01:35:12 +0100 (CET) Received: from maildrop.int.zabbadoz.net (maildrop.int.zabbadoz.net [10.111.66.10]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.int.zabbadoz.net (Postfix) with ESMTP id AD4F74448D5; Mon, 29 Dec 2008 00:33:59 +0000 (UTC) Date: Mon, 29 Dec 2008 00:33:59 +0000 (UTC) From: "Bjoern A. Zeeb" X-X-Sender: bz@maildrop.int.zabbadoz.net To: Kip Macy In-Reply-To: <20081228234501.F28465@maildrop.int.zabbadoz.net> Message-ID: <20081229003106.G28465@maildrop.int.zabbadoz.net> References: <20081228225956.G28465@maildrop.int.zabbadoz.net> <3c1674c90812281530l52b83404k9822cf6818329f01@mail.gmail.com> <20081228234501.F28465@maildrop.int.zabbadoz.net> X-OpenPGP-Key: 0x14003F198FEFA3E77207EE8D2B58B8F83CCF1842 MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: Qing Li , freebsd-net@freebsd.org Subject: Re: arp-v2 (void *)-1 "hack" X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Dec 2008 00:35:16 -0000 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.