Harald Welte wrote: > 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. > > Ideally, I think we would > > 1) add new API > 2) release new libnfnetlink and libnetfilter_* (where needed) > 3) convert libnetfilter_* to use new API where reasonable > 4) introduce API change to libnetfilter > 5) adapt remaining handle_packet useres in libnetfilter* to changed api > 6) release all of them together, incompatible with old versions. > > Whcih is still messy. I would actually prefer if we'd not change > existing API but rather only add new API's. Another alternative might > be symbol versioning, though I've never used that before. I think that we can: 1) do the maintenance release without the new libnfnetlink API. 2) commit the patch attached that: a) introduces nfnl_process_packet, that is similar to nfnl_handle_packet but it adds the done flag. b) deprecates nfnl_handle_packet, marks this function as deprecated but keep it there to ensure backward compatibility. Maybe a message via stderr could tell the user that it must update, but I think that it is too much. nfnl_listen and nfnl_talk should also go deprecated as soon as we move the existing libraries to the new API. -- Pablo