[RFC][LIBNFNETLINK 3/3] API changes
azez at ufomechanic.net
Mon Feb 13 16:44:05 CET 2006
Harald Welte wrote:
> On Sun, Feb 12, 2006 at 10:39:54PM +0100, Pablo Neira Ayuso wrote:
>>This patch introduces the following changes:
>>a) nfnl_handle_msg: this function completes the message iterator API.
> looks nice to me.
>>b) nfnl_handle_packet: This function is simpler interface to handle a
>>netfilter netlink message. It loops over every message contained in a
>>packet but, in this case, the programmer has no control on the looping
>>process. Moreover, this function now has a done flag that is set under
>>the same circunstances exposed above.
> this change looks also fine to me, but since it changes an existing
> function, it introduces library incompatibility between the users
> (libnetfilter_*) and libnfnetlink.
> So how do we proceed?
> I think at the moment, a new release of [most of] the libraries is
> needed due to accumulated bugfixes anyway. So I'd rather make a
> maintainance release with what we've got now than to introduce API
> changes. Addidional API (nfnl_communicate, nfnl_handle_msg) is not a
> problem at all.
> As for the only API change (nfnl_handle_packet), I would like to know if
> there is an urgent need for the 'done' flag in any of the users.
AFAIR, done is not required unless we are trying to copy someone else
3 types of return values were permitted, <0, 0 and >0, by the function
which now has "done" added. 0 meant continue, either <0 or >0 meant
"stop now" and the other meant "stop after all messages in the currently
read packet", it's hard to see how this doesn't provide what done
provided; even with 2 values.
Although I submitted that patch that provided the return behaviour, I'm
not fighting a case, just pointing out that I think this is adequate for
the time beng.
More information about the netfilter-devel