Change #239779
Category | rsyslog |
Changed by | Rainer Gerhards <rgerhards | @adiscon.com>
Changed at | Tue 15 Jul 2025 08:25:58 |
Repository | https://github.com/rsyslog/rsyslog.git |
Project | rsyslog |
Branch | master |
Revision | 7225999b77399156bf18db21803c5a5027c473bb |
Comments
refactor: modernize macro definitions to support formatting and clarity This commit performs a broad modernization of widely used rsyslog macros to align with modern C practices and support automated formatting tools like clang-format. The changes focus on improving syntactic regularity, readability, and tooling compatibility — without altering behavior. Macros refactored in this commit now follow a consistent, statement-like form with explicit trailing semicolons. Where applicable, macro blocks that define module interfaces (`queryEtryPt`) have been updated to use simple `if` statements instead of `else if` chains. While this slightly increases evaluation time, the affected functions are only called once per module during load time to register supported interfaces — making the performance cost irrelevant in practice. These improvements serve multiple purposes: - Enable reliable clang-format usage without mangling macro logic - Simplify reasoning about macro-expanded code for human readers - Reduce style drift and merge conflicts - Facilitate development for contributors using assistive tools - Support future formatting pipelines using: 1. `clang-format` 2. a post-fixup normalization script Refactored macros: - MODULE_TYPE_NOKEEP - MODULE_TYPE_KEEP - MODULE_TYPE_INPUT - MODULE_TYPE_OUTPUT - MODULE_TYPE_FUNCTION - MODULE_TYPE_PARSER - MODULE_TYPE_LIB - DEF_IMOD_STATIC_DATA - DEF_OMOD_STATIC_DATA - DEF_PMOD_STATIC_DATA - DEF_FMOD_STATIC_DATA - DEFobjStaticHelpers - SIMP_PROP(...) And all `queryEtryPt()` dispatch macros: - CODEqueryEtryPt_STD_MOD_QUERIES - CODEqueryEtryPt_STD_OMOD_QUERIES - CODEqueryEtryPt_STD_OMODTX_QUERIES - CODEqueryEtryPt_STD_OMOD8_QUERIES - CODEqueryEtryPt_TXIF_OMOD_QUERIES - CODEqueryEtryPt_IsCompatibleWithFeature_IF_OMOD_QUERIES - CODEqueryEtryPt_STD_IMOD_QUERIES - CODEqueryEtryPt_STD_CONF2_QUERIES - CODEqueryEtryPt_STD_CONF2_setModCnf_QUERIES - CODEqueryEtryPt_STD_CONF2_OMOD_QUERIES - CODEqueryEtryPt_STD_CONF2_IMOD_QUERIES - CODEqueryEtryPt_STD_CONF2_PREPRIVDROP_QUERIES - CODEqueryEtryPt_STD_CONF2_CNFNAME_QUERIES - CODEqueryEtryPt_STD_PMOD_QUERIES - CODEqueryEtryPt_STD_PMOD2_QUERIES - CODEqueryEtryPt_STD_FMOD_QUERIES - CODEqueryEtryPt_STD_SMOD_QUERIES - CODEqueryEtryPt_doHUPWrkr - CODEqueryEtryPt_doHUP This general modernization reduces macro misuse, improves DX, and lays the foundation for a robust, automated style normalization system. See also: https://github.com/rsyslog/rsyslog/issues/5747
Changed files
- contrib/ffaup/ffaup.c
- contrib/fmhash/fmhash.c
- contrib/fmunflatten/fmunflatten.c
- contrib/imbatchreport/imbatchreport.c
- contrib/imczmq/imczmq.c
- contrib/imdocker/imdocker.c
- contrib/imhiredis/imhiredis.c
- contrib/imhttp/imhttp.c
- contrib/imkmsg/imkmsg.c
- contrib/impcap/impcap.c
- contrib/improg/improg.c
- contrib/imtuxedoulog/imtuxedoulog.c
- contrib/mmcount/mmcount.c
- contrib/mmdarwin/mmdarwin.c
- contrib/mmgrok/mmgrok.c
- contrib/mmkubernetes/mmkubernetes.c
- contrib/mmrfc5424addhmac/mmrfc5424addhmac.c
- contrib/mmsequence/mmsequence.c
- contrib/mmtaghostname/mmtaghostname.c
- contrib/omamqp1/omamqp1.c
- contrib/omczmq/omczmq.c
- contrib/omfile-hardened/omfile-hardened.c
- contrib/omhiredis/omhiredis.c
- contrib/omhttp/omhttp.c
- contrib/omhttpfs/omhttpfs.c
- contrib/omrabbitmq/omrabbitmq.c
- contrib/omtcl/omtcl.c
- contrib/pmaixforwardedfrom/pmaixforwardedfrom.c
- contrib/pmcisconames/pmcisconames.c
- contrib/pmdb2diag/pmdb2diag.c
- contrib/pmpanngfw/pmpanngfw.c
- contrib/pmsnare/pmsnare.c
- plugins/fmhttp/fmhttp.c
- plugins/im3195/im3195.c
- plugins/imdiag/imdiag.c
- plugins/imdtls/imdtls.c
- plugins/imfile/imfile.c
- plugins/imgssapi/imgssapi.c
- plugins/imjournal/dummy.c
- plugins/imjournal/imjournal.c
- plugins/imkafka/dummy.c
- plugins/imkafka/imkafka.c
- plugins/imklog/imklog.c
- plugins/immark/immark.c
- plugins/impstats/impstats.c
- plugins/imptcp/imptcp.c
- plugins/imrelp/imrelp.c
- plugins/imsolaris/imsolaris.c
- plugins/imtcp/imtcp.c
- plugins/imudp/imudp.c
- plugins/imuxsock/imuxsock.c
- plugins/mmanon/mmanon.c
- plugins/mmaudit/mmaudit.c
- plugins/mmdblookup/dummy.c
- plugins/mmdblookup/mmdblookup.c
- plugins/mmexternal/mmexternal.c
- plugins/mmfields/mmfields.c
- plugins/mmjsonparse/mmjsonparse.c
- plugins/mmnormalize/mmnormalize.c
- plugins/mmpstrucdata/mmpstrucdata.c
- plugins/mmrm1stspace/mmrm1stspace.c
- plugins/mmsnmptrapd/mmsnmptrapd.c
- plugins/mmutf8fix/mmutf8fix.c
- plugins/omazureeventhubs/omazureeventhubs.c
- plugins/omclickhouse/omclickhouse.c
- plugins/omdtls/omdtls.c
- plugins/omelasticsearch/omelasticsearch.c
- plugins/omgssapi/omgssapi.c
- plugins/omhdfs/omhdfs.c
- plugins/omjournal/omjournal.c
- plugins/omkafka/dummy.c
- plugins/omkafka/omkafka.c
- plugins/omlibdbi/dummy.c
- plugins/omlibdbi/omlibdbi.c
- plugins/ommail/ommail.c
- plugins/ommongodb/ommongodb.c
- plugins/ommysql/ommysql.c
- plugins/ompgsql/ompgsql.c
- plugins/omprog/omprog.c
- plugins/omrelp/omrelp.c
- plugins/omruleset/omruleset.c
- plugins/omsendertrack/omsendertrack.c
- plugins/omsnmp/omsnmp.c
- plugins/omstdout/omstdout.c
- plugins/omtesting/omtesting.c
- plugins/omudpspoof/omudpspoof.c
- plugins/omuxsock/omuxsock.c
- plugins/pmciscoios/pmciscoios.c
- plugins/pmlastmsg/pmlastmsg.c
- plugins/pmnormalize/pmnormalize.c
- plugins/pmnull/pmnull.c
- runtime/conf.c
- runtime/datetime.c
- runtime/dnscache.c
- runtime/dynstats.c
- runtime/glbl.c
- runtime/glbl.h
- runtime/gss-misc.c
- runtime/lmcry_gcry.c
- runtime/lmcry_ossl.c
- runtime/lmsig_ksi-ls12.c
- runtime/lookup.c
- runtime/module-template.h
- runtime/modules.c
- runtime/msg.c
- runtime/net.c
- runtime/net_ossl.c
- runtime/netstrm.c
- runtime/netstrms.c
- runtime/nsd_gtls.c
- runtime/nsd_ossl.c
- runtime/nsd_ptcp.c
- runtime/obj.c
- runtime/obj.h
- runtime/parser.c
- runtime/perctile_stats.c
- runtime/prop.c
- runtime/queue.c
- runtime/ratelimit.c
- runtime/regexp.c
- runtime/rsconf.c
- runtime/ruleset.c
- runtime/statsobj.c
- runtime/stream.c
- runtime/strgen.c
- runtime/strms_sess.c
- runtime/tcpclt.c
- runtime/tcps_sess.c
- runtime/tcpsrv.c
- runtime/var.c
- runtime/wti.c
- runtime/wtp.c
- runtime/zlibw.c
- runtime/zstdw.c
- tests/rscript.c
- tests/rt-init.c
- tools/omdiscard.c
- tools/omfile.c
- tools/omfwd.c
- tools/ompipe.c
- tools/omshell.c
- tools/omusrmsg.c
- tools/pmrfc3164.c
- tools/pmrfc5424.c
- tools/smfile.c
- tools/smfwd.c
- tools/smtradfile.c
- tools/smtradfwd.c