netfilter-devel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH ulogd2 v2 v2 00/34] Refactor of the DB output plug-ins
@ 2022-11-29 21:47 Jeremy Sowden
  2022-11-29 21:47 ` [PATCH ulogd2 v2 v2 01/34] ulogd: fix parse-error check Jeremy Sowden
                   ` (34 more replies)
  0 siblings, 35 replies; 40+ messages in thread
From: Jeremy Sowden @ 2022-11-29 21:47 UTC (permalink / raw)
  To: Netfilter Devel

In his feedback to my last series of clean-up patches at the beginning
of the year, Pablo suggested consolidating some parallel implementations
of the same functionality in the SQL output plug-ins.  I already had
some patches in the works aimed at tidying up the DB API.  This
patch-set is the result.  In addition to the suggested de-duping and
other tidy-ups, I have added prep & exec support in order to convert the
sqlite3 plug-in to the DB API, and updated the MySQL and PostgreSQL 
plug-ins to use it as well (DBI doesn't do prep & exec).

This patch-set is structured as follows.

  * Patches 1-4 are bug-fixes.
  * Patches 5-13 are miscellaneous tidying.
  * Patch 14 does the consolidation Pablo suggested.
  * Patches 15-26 refactor and clean up the common DB API.
  * Patches 27-28 add prep & exec support to the common DB API.
  * Patch 29 converts the MySQL plug-in to use prep & exec.
  * Patch 30-33 tidy up and convert the PostgreSQL plug-in to use prep &
    exec.
  * Patch 34 converts the SQLite plug-in to use the common DB API.

Changes since v1:

  * The bug-fix in patch 2 was incomplete (cf.
    https://bugzilla.netfilter.org/show_bug.cgi?id=890)

Jeremy Sowden (34):
  ulogd: fix parse-error check
  filter: fix buffer sizes in filter plug-ins
  output: JSON: remove incorrect config value check
  db: fix back-log capacity checks
  build: add checks to configure.ac
  src: remove some trailing white space
  src: remove zero-valued config-key fields
  src: parenthesize config-entry macro arguments
  src: define constructors and destructors consistently
  src: remove `TIME_ERR` macro
  src: remove superfluous casts
  conffile: replace malloc+strcpy with strdup
  output: remove zero-initialized `struct ulogd_plugin` members
  output: de-duplicate allocation of input keys
  db: reorganize source
  db: use consistent integer return values to indicate errors
  db: change return type of two functions to `void`
  db: open-code `_loop_reconnect_db`
  db: improve calculation of sql statement length
  db: refactor configuration
  db: refactor ring-buffer initialization
  db: refactor ring-buffer
  db: refactor backlog
  db: use `struct db_stmt` objects more widely
  db: synchronize access to ring-buffer
  db: avoid cancelling ring-buffer thread
  db, IP2BIN: defer formatting of raw strings
  db: add prep & exec support
  output: mysql: add prep & exec support
  output: pgsql: remove a couple of struct members
  output: pgsql: remove variable-length arrays
  output: pgsql: tidy up `open_db_pgsql` and fix memory leak
  output: pgsql: add prep & exec support
  output: sqlite3: reimplement using the common DB API

 cftest/cftest.c                           |    2 +-
 configure.ac                              |   47 +-
 filter/raw2packet/ulogd_raw2packet_BASE.c |    4 +-
 filter/ulogd_filter_HWHDR.c               |    8 +-
 filter/ulogd_filter_IFINDEX.c             |    4 +-
 filter/ulogd_filter_IP2BIN.c              |   75 +-
 filter/ulogd_filter_IP2HBIN.c             |    6 +-
 filter/ulogd_filter_IP2STR.c              |   10 +-
 filter/ulogd_filter_MARK.c                |    7 +-
 filter/ulogd_filter_PRINTFLOW.c           |    4 +-
 filter/ulogd_filter_PRINTPKT.c            |    4 +-
 filter/ulogd_filter_PWSNIFF.c             |    2 +-
 include/ulogd/db.h                        |  121 +-
 input/flow/ulogd_inpflow_NFCT.c           |   37 +-
 input/packet/ulogd_inppkt_NFLOG.c         |   47 +-
 input/packet/ulogd_inppkt_ULOG.c          |   55 +-
 input/packet/ulogd_inppkt_UNIXSOCK.c      |    5 -
 input/sum/ulogd_inpflow_NFACCT.c          |   15 +-
 libipulog/libipulog.c                     |    2 +-
 libipulog/ulog_test.c                     |    2 +-
 output/dbi/ulogd_output_DBI.c             |  132 +--
 output/ipfix/ulogd_output_IPFIX.c         |   38 +-
 output/mysql/ulogd_output_MYSQL.c         |  257 +++--
 output/pcap/ulogd_output_PCAP.c           |   30 +-
 output/pgsql/ulogd_output_PGSQL.c         |  426 ++++---
 output/sqlite3/ulogd_output_SQLITE3.c     |  480 +++-----
 output/ulogd_output_GPRINT.c              |    7 +-
 output/ulogd_output_GRAPHITE.c            |    9 +-
 output/ulogd_output_JSON.c                |   29 +-
 output/ulogd_output_LOGEMU.c              |    2 -
 output/ulogd_output_NACCT.c               |    5 +-
 output/ulogd_output_OPRINT.c              |    5 +-
 output/ulogd_output_SYSLOG.c              |   16 +-
 output/ulogd_output_XML.c                 |    5 -
 src/conffile.c                            |    4 +-
 src/hash.c                                |    4 +-
 src/ulogd.c                               |   80 +-
 util/db.c                                 | 1244 ++++++++++++++-------
 38 files changed, 1836 insertions(+), 1394 deletions(-)

-- 
2.35.1


^ permalink raw reply	[flat|nested] 40+ messages in thread

end of thread, other threads:[~2022-11-30 16:03 UTC | newest]

Thread overview: 40+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-11-29 21:47 [PATCH ulogd2 v2 v2 00/34] Refactor of the DB output plug-ins Jeremy Sowden
2022-11-29 21:47 ` [PATCH ulogd2 v2 v2 01/34] ulogd: fix parse-error check Jeremy Sowden
2022-11-29 21:47 ` [PATCH ulogd2 v2 v2 02/34] filter: fix buffer sizes in filter plug-ins Jeremy Sowden
2022-11-29 21:47 ` [PATCH ulogd2 v2 v2 03/34] output: JSON: remove incorrect config value check Jeremy Sowden
2022-11-29 21:47 ` [PATCH ulogd2 v2 v2 04/34] db: fix back-log capacity checks Jeremy Sowden
2022-11-29 21:47 ` [PATCH ulogd2 v2 v2 05/34] build: add checks to configure.ac Jeremy Sowden
2022-11-30 10:04   ` Jan Engelhardt
2022-11-29 21:47 ` [PATCH ulogd2 v2 v2 06/34] src: remove some trailing white space Jeremy Sowden
2022-11-29 21:47 ` [PATCH ulogd2 v2 v2 07/34] src: remove zero-valued config-key fields Jeremy Sowden
2022-11-30 10:21   ` Jan Engelhardt
2022-11-29 21:47 ` [PATCH ulogd2 v2 v2 08/34] src: parenthesize config-entry macro arguments Jeremy Sowden
2022-11-29 21:47 ` [PATCH ulogd2 v2 v2 09/34] src: define constructors and destructors consistently Jeremy Sowden
2022-11-29 21:47 ` [PATCH ulogd2 v2 v2 10/34] src: remove `TIME_ERR` macro Jeremy Sowden
2022-11-29 21:47 ` [PATCH ulogd2 v2 v2 11/34] src: remove superfluous casts Jeremy Sowden
2022-11-29 21:47 ` [PATCH ulogd2 v2 v2 12/34] conffile: replace malloc+strcpy with strdup Jeremy Sowden
2022-11-29 21:47 ` [PATCH ulogd2 v2 v2 13/34] output: remove zero-initialized `struct ulogd_plugin` members Jeremy Sowden
2022-11-30 10:26   ` Jan Engelhardt
2022-11-29 21:47 ` [PATCH ulogd2 v2 v2 14/34] output: de-duplicate allocation of input keys Jeremy Sowden
2022-11-29 21:47 ` [PATCH ulogd2 v2 v2 15/34] db: reorganize source Jeremy Sowden
2022-11-29 21:47 ` [PATCH ulogd2 v2 v2 16/34] db: use consistent integer return values to indicate errors Jeremy Sowden
2022-11-29 21:47 ` [PATCH ulogd2 v2 v2 17/34] db: change return type of two functions to `void` Jeremy Sowden
2022-11-29 21:47 ` [PATCH ulogd2 v2 v2 18/34] db: open-code `_loop_reconnect_db` Jeremy Sowden
2022-11-29 21:47 ` [PATCH ulogd2 v2 v2 19/34] db: improve calculation of sql statement length Jeremy Sowden
2022-11-29 21:47 ` [PATCH ulogd2 v2 v2 20/34] db: refactor configuration Jeremy Sowden
2022-11-29 21:47 ` [PATCH ulogd2 v2 v2 21/34] db: refactor ring-buffer initialization Jeremy Sowden
2022-11-29 21:47 ` [PATCH ulogd2 v2 v2 22/34] db: refactor ring-buffer Jeremy Sowden
2022-11-29 21:47 ` [PATCH ulogd2 v2 v2 23/34] db: refactor backlog Jeremy Sowden
2022-11-29 21:47 ` [PATCH ulogd2 v2 v2 24/34] db: use `struct db_stmt` objects more widely Jeremy Sowden
2022-11-29 21:47 ` [PATCH ulogd2 v2 v2 25/34] db: synchronize access to ring-buffer Jeremy Sowden
2022-11-29 21:47 ` [PATCH ulogd2 v2 v2 26/34] db: avoid cancelling ring-buffer thread Jeremy Sowden
2022-11-29 21:47 ` [PATCH ulogd2 v2 v2 27/34] db, IP2BIN: defer formatting of raw strings Jeremy Sowden
2022-11-29 21:47 ` [PATCH ulogd2 v2 v2 28/34] db: add prep & exec support Jeremy Sowden
2022-11-29 21:47 ` [PATCH ulogd2 v2 v2 29/34] output: mysql: " Jeremy Sowden
2022-11-29 21:47 ` [PATCH ulogd2 v2 v2 30/34] output: pgsql: remove a couple of struct members Jeremy Sowden
2022-11-29 21:47 ` [PATCH ulogd2 v2 v2 31/34] output: pgsql: remove variable-length arrays Jeremy Sowden
2022-11-29 21:47 ` [PATCH ulogd2 v2 v2 32/34] output: pgsql: tidy up `open_db_pgsql` and fix memory leak Jeremy Sowden
2022-11-29 21:47 ` [PATCH ulogd2 v2 v2 33/34] output: pgsql: add prep & exec support Jeremy Sowden
2022-11-29 21:47 ` [PATCH ulogd2 v2 v2 34/34] output: sqlite3: reimplement using the common DB API Jeremy Sowden
2022-11-30 10:27 ` [PATCH ulogd2 v2 v2 00/34] Refactor of the DB output plug-ins Pablo Neira Ayuso
2022-11-30 16:03   ` Jeremy Sowden

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).