Hi Pablo, On Wed, Feb 14, 2024 at 11:47:30AM +0100, Pablo Neira Ayuso wrote: > Hi Duncan, > > On Wed, Feb 14, 2024 at 08:07:06AM +1100, Duncan Roe wrote: > > And no libnfnetlink headers either. > > Submitted as a single patch because the first change essentially broke > > it until the job was nearly finished. > > This is too large. Can you start with smaller chunks? > > For example, use mnl_attr_get_*(), then pick the next target > incrementally, so there is a chance of evaluating what could break, > because this conversion to libmnl _cannot_ break existing userspace > applications, that's the challenge. > [SNIP} This series is a re-spin of "Convert libnetfilter_queue to use entirely libmnl functions". This time, I managed to convert nfq_open_nfnl(). Existing userspace applications that use nfq_open_nfnl() or any other functions from libnfnetlink should continue to run just fine. However many patches you apply, the library will keep working with the unpatched functions using libnfnetlink. To assist with patch review, these patches don't contain any documentation updates except for the nlif subsystem. I have plenty of documentation updates ready to go but can defer them until you have committed the code. Cheers ... Duncan. Duncan Roe (32): src: Convert nfq_open() to use libmnl src: Convert nfq_open_nfnl() to use libmnl src: Convert nfq_close() to use libmnl src: Convert nfq_create_queue(), nfq_bind_pf() & nfq_unbind_pf() to use libmnl src: Convert nfq_set_queue_flags() & nfq_set_queue_maxlen() to use libmnl src: Convert nfq_handle_packet(), nfq_get_secctx(), nfq_get_payload() and all the nfq_get_ functions to use libmnl src: Convert nfq_set_verdict() and nfq_set_verdict2() to use libmnl if there is no data src: Incorporate nfnl_rcvbufsiz() in libnetfilter_queue src: Convert nfq_fd() to use libmnl src: Convert remaining nfq_* functions to use libmnl src: Fix checkpatch whitespace and block comment warnings src: Copy nlif-related code from libnfnetlink include: Cherry-pick macros and functions that nlif will need doc: Add linux_list.h to the doxygen system doc: Eliminate doxygen warnings from linux_list.h doc: Eliminate doxygen warnings from iftable.c whitespace: remove trailing spaces from iftable.c include: Use libmnl.h instead of libnfnetlink.h src: Convert all nlif_* functions to use libmnl src: Delete rtnl.c build: Remove libnfnetlink from the build include: Remove the last remaining use of a libnfnetlink header doc: Get doxygen to document useful static inline functions doc: SYNOPSIS of linux_list.h nominates libnetfilter_queue/libnetfilter_queue.h doc: Move nlif usage description from libnetfilter_queue.c to iftable.c build: Shave some time off build doc: Resolve most issues with man page generated from linux_list.h build: Get real & user times back to what they were doc: Cater for doxygen variants w.r.t. #define stmts doc: Fix list_empty() doxygen comments src: Use a cast in place of convoluted construct whitespace: Fix more checkpatch errors & warnings Make_global.am | 2 +- configure.ac | 1 - doxygen/Makefile.am | 5 + doxygen/build_man.sh | 44 +- doxygen/doxygen.cfg.in | 11 +- .../libnetfilter_queue/libnetfilter_queue.h | 39 +- include/libnetfilter_queue/linux_list.h | 192 +++++++ .../linux_nfnetlink_queue.h | 3 +- libnetfilter_queue.pc.in | 2 - src/Makefile.am | 3 +- src/iftable.c | 376 +++++++++++++ src/libnetfilter_queue.c | 515 +++++++++++------- 12 files changed, 987 insertions(+), 206 deletions(-) create mode 100644 include/libnetfilter_queue/linux_list.h create mode 100644 src/iftable.c -- 2.35.8