From ed7a0102885b01b6bb4f9f5d6240574aa8c777ef Mon Sep 17 00:00:00 2001
From: eabdullin
Date: Wed, 14 May 2025 15:32:23 +0000
Subject: [PATCH] import UBI rsyslog-8.2412.0-1.el10
---
.gitignore | 6 +-
.rsyslog.metadata | 3 -
SOURCES/propagate-gnutlsPriorityString.patch | 11 -
....0-rhbz1659898-imjournal-default-tag.patch | 93 -
...syslog-8.2102.0-imtcp-param-refactor.patch | 908 ---------
...syslog-8.2102.0-nsd_ossl-better-logs.patch | 124 --
...syslog-8.2102.0-nsd_ossl-memory-leak.patch | 25 -
...-8.2102.0-rhbz1832368-prioritize-SAN.patch | 11 -
...2102.0-rhbz1866877-unexpected-length.patch | 14 -
...0-rhbz1886400-reduce-default-timeout.patch | 21 -
...-8.2102.0-rhbz1909639-statefiles-doc.patch | 47 -
...-8.2102.0-rhbz1909639-statefiles-fix.patch | 162 --
...8.2102.0-rhbz1960536-fdleak-on-fsync.patch | 20 -
...8.2102.0-rhbz1962318-errfile-maxsize.patch | 190 --
...9-remove-abort-on-id-resolution-fail.patch | 102 -
...102.0-rhbz1984616-imuxsock-ratelimit.patch | 26 -
...158-correct-custom-ciphers-behaviour.patch | 354 ----
...rhbz2046158-gnutls-broken-connection.patch | 215 --
...102.0-rhbz2124934-extra-ca-files-doc.patch | 23 -
...-8.2102.0-rhbz2124934-extra-ca-files.patch | 134 --
.../rsyslog-8.2102.0-rhbz2157658-imklog.patch | 20 -
...rsyslog-8.2102.0-rhbz2157804-cstrlen.patch | 72 -
.../rsyslog-8.2102.0-rhbz2192955-es-0.patch | 37 -
.../rsyslog-8.2102.0-rhbz2192955-es-1.patch | 54 -
.../rsyslog-8.2102.0-rhbz2192955-es-2.patch | 43 -
.../rsyslog-8.2102.0-rhbz2192955-es-3.patch | 148 --
.../rsyslog-8.2102.0-rhbz2192955-es-4.patch | 118 --
.../rsyslog-8.2102.0-rhbz2192955-es-5.patch | 40 -
.../rsyslog-8.2102.0-rhbz2192955-es-6.patch | 53 -
.../rsyslog-8.2102.0-rhbz2192955-es-doc.patch | 32 -
...og-8.37.0-rhbz2081396-CVE-2022-24903.patch | 30 -
SPECS/rsyslog.spec | 848 --------
disable-openssl-engine.patch | 60 +
SOURCES/rsyslog.conf => rsyslog.conf | 38 +-
SOURCES/rsyslog.log => rsyslog.log | 2 +-
SOURCES/rsyslog.service => rsyslog.service | 1 +
rsyslog.spec | 1780 +++++++++++++++++
.../rsyslog.sysconfig => rsyslog.sysconfig | 0
sources | 3 +
39 files changed, 1868 insertions(+), 4000 deletions(-)
delete mode 100644 .rsyslog.metadata
delete mode 100644 SOURCES/propagate-gnutlsPriorityString.patch
delete mode 100644 SOURCES/rsyslog-8.1911.0-rhbz1659898-imjournal-default-tag.patch
delete mode 100644 SOURCES/rsyslog-8.2102.0-imtcp-param-refactor.patch
delete mode 100644 SOURCES/rsyslog-8.2102.0-nsd_ossl-better-logs.patch
delete mode 100644 SOURCES/rsyslog-8.2102.0-nsd_ossl-memory-leak.patch
delete mode 100644 SOURCES/rsyslog-8.2102.0-rhbz1832368-prioritize-SAN.patch
delete mode 100644 SOURCES/rsyslog-8.2102.0-rhbz1866877-unexpected-length.patch
delete mode 100644 SOURCES/rsyslog-8.2102.0-rhbz1886400-reduce-default-timeout.patch
delete mode 100644 SOURCES/rsyslog-8.2102.0-rhbz1909639-statefiles-doc.patch
delete mode 100644 SOURCES/rsyslog-8.2102.0-rhbz1909639-statefiles-fix.patch
delete mode 100644 SOURCES/rsyslog-8.2102.0-rhbz1960536-fdleak-on-fsync.patch
delete mode 100644 SOURCES/rsyslog-8.2102.0-rhbz1962318-errfile-maxsize.patch
delete mode 100644 SOURCES/rsyslog-8.2102.0-rhbz1984489-remove-abort-on-id-resolution-fail.patch
delete mode 100644 SOURCES/rsyslog-8.2102.0-rhbz1984616-imuxsock-ratelimit.patch
delete mode 100644 SOURCES/rsyslog-8.2102.0-rhbz2046158-correct-custom-ciphers-behaviour.patch
delete mode 100644 SOURCES/rsyslog-8.2102.0-rhbz2046158-gnutls-broken-connection.patch
delete mode 100644 SOURCES/rsyslog-8.2102.0-rhbz2124934-extra-ca-files-doc.patch
delete mode 100644 SOURCES/rsyslog-8.2102.0-rhbz2124934-extra-ca-files.patch
delete mode 100644 SOURCES/rsyslog-8.2102.0-rhbz2157658-imklog.patch
delete mode 100644 SOURCES/rsyslog-8.2102.0-rhbz2157804-cstrlen.patch
delete mode 100644 SOURCES/rsyslog-8.2102.0-rhbz2192955-es-0.patch
delete mode 100644 SOURCES/rsyslog-8.2102.0-rhbz2192955-es-1.patch
delete mode 100644 SOURCES/rsyslog-8.2102.0-rhbz2192955-es-2.patch
delete mode 100644 SOURCES/rsyslog-8.2102.0-rhbz2192955-es-3.patch
delete mode 100644 SOURCES/rsyslog-8.2102.0-rhbz2192955-es-4.patch
delete mode 100644 SOURCES/rsyslog-8.2102.0-rhbz2192955-es-5.patch
delete mode 100644 SOURCES/rsyslog-8.2102.0-rhbz2192955-es-6.patch
delete mode 100644 SOURCES/rsyslog-8.2102.0-rhbz2192955-es-doc.patch
delete mode 100644 SOURCES/rsyslog-8.37.0-rhbz2081396-CVE-2022-24903.patch
delete mode 100644 SPECS/rsyslog.spec
create mode 100644 disable-openssl-engine.patch
rename SOURCES/rsyslog.conf => rsyslog.conf (83%)
rename SOURCES/rsyslog.log => rsyslog.log (65%)
rename SOURCES/rsyslog.service => rsyslog.service (96%)
create mode 100644 rsyslog.spec
rename SOURCES/rsyslog.sysconfig => rsyslog.sysconfig (100%)
create mode 100644 sources
diff --git a/.gitignore b/.gitignore
index 8a200b6..dab93ed 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,3 @@
-SOURCES/qpid-proton-0.34.0.tar.gz
-SOURCES/rsyslog-8.2102.0.tar.gz
-SOURCES/rsyslog-doc-8.2102.0.tar.gz
+qpid-proton-0.39.0.tar.gz
+rsyslog-8.2412.0.tar.gz
+rsyslog-doc-8.2412.0.tar.gz
diff --git a/.rsyslog.metadata b/.rsyslog.metadata
deleted file mode 100644
index e0fc0e7..0000000
--- a/.rsyslog.metadata
+++ /dev/null
@@ -1,3 +0,0 @@
-390e5cb87a6331cf0ce451d7f6552e2c0d97f706 SOURCES/qpid-proton-0.34.0.tar.gz
-fdda78ed808e7a0dca03ead9227a0a5d913a050f SOURCES/rsyslog-8.2102.0.tar.gz
-9c2188d435cb5f79c1c35749003bd2a61e7f2d07 SOURCES/rsyslog-doc-8.2102.0.tar.gz
diff --git a/SOURCES/propagate-gnutlsPriorityString.patch b/SOURCES/propagate-gnutlsPriorityString.patch
deleted file mode 100644
index 7005c65..0000000
--- a/SOURCES/propagate-gnutlsPriorityString.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up rsyslog-8.2102.0/runtime/nsd_ossl.c.orig rsyslog-8.2102.0/runtime/nsd_ossl.c
---- rsyslog-8.2102.0/runtime/nsd_ossl.c.orig 2024-08-26 15:27:50.528691153 +0200
-+++ rsyslog-8.2102.0/runtime/nsd_ossl.c 2024-08-26 15:28:06.950855632 +0200
-@@ -1544,6 +1544,7 @@ AcceptConnReq(nsd_t *pNsd, nsd_t **ppNew
- pNew->permitExpiredCerts = pThis->permitExpiredCerts;
- pNew->pPermPeers = pThis->pPermPeers;
- pNew->DrvrVerifyDepth = pThis->DrvrVerifyDepth;
-+ pNew->gnutlsPriorityString = pThis->gnutlsPriorityString;
- CHKiRet(osslInitSession(pNew, osslServer));
-
- /* Store nsd_ossl_t* reference in SSL obj */
diff --git a/SOURCES/rsyslog-8.1911.0-rhbz1659898-imjournal-default-tag.patch b/SOURCES/rsyslog-8.1911.0-rhbz1659898-imjournal-default-tag.patch
deleted file mode 100644
index e9a188d..0000000
--- a/SOURCES/rsyslog-8.1911.0-rhbz1659898-imjournal-default-tag.patch
+++ /dev/null
@@ -1,93 +0,0 @@
-diff -up ./plugins/imjournal/imjournal.c.default-tag ./plugins/imjournal/imjournal.c
---- ./plugins/imjournal/imjournal.c.default-tag 2018-05-17 08:50:11.416418022 -0400
-+++ ./plugins/imjournal/imjournal.c 2018-05-17 08:53:02.884418022 -0400
-@@ -78,6 +78,7 @@ static struct configSettings_s {
- int bWorkAroundJournalBug; /* deprecated, left for backwards compatibility only */
- int bFsync;
- int bRemote;
-+ char *dfltTag;
- } cs;
-
- static rsRetVal facilityHdlr(uchar **pp, void *pVal);
-@@ -93,7 +94,8 @@ static struct cnfparamdescr modpdescr[]
- { "usepid", eCmdHdlrString, 0 },
- { "workaroundjournalbug", eCmdHdlrBinary, 0 },
- { "fsync", eCmdHdlrBinary, 0 },
-- { "remote", eCmdHdlrBinary, 0 }
-+ { "remote", eCmdHdlrBinary, 0 },
-+ { "defaulttag", eCmdHdlrGetWord, 0 }
- };
- static struct cnfparamblk modpblk =
- { CNFPARAMBLK_VERSION,
-@@ -104,6 +106,7 @@ static struct cnfparamblk modpblk =
- #define DFLT_persiststateinterval 10
- #define DFLT_SEVERITY pri2sev(LOG_NOTICE)
- #define DFLT_FACILITY pri2fac(LOG_USER)
-+#define DFLT_TAG "journal"
-
- static int bLegacyCnfModGlobalsPermitted = 1;/* are legacy module-global config parameters permitted? */
-
-@@ -268,7 +271,7 @@ readjournal(void)
-
- /* Information from messages */
- char *message = NULL;
-- char *sys_iden;
-+ char *sys_iden = NULL;
- char *sys_iden_help = NULL;
-
- const void *get;
-@@ -331,7 +334,7 @@ readjournal(void)
- if (journalGetData("SYSLOG_IDENTIFIER", &get, &length) >= 0) {
- CHKiRet(sanitizeValue(((const char *)get) + 18, length - 18, &sys_iden));
- } else {
-- CHKmalloc(sys_iden = strdup("journal"));
-+ CHKmalloc(sys_iden = strdup(cs.dfltTag));
- }
-
- /* trying to get PID, default is "SYSLOG_PID" property */
-@@ -654,6 +657,11 @@ CODESTARTrunInput
- "\"usepidfromsystem\" is depricated, use \"usepid\" instead");
- }
-
-+ if (cs.dfltTag == NULL) {
-+ cs.dfltTag = strdup(DFLT_TAG);
-+ }
-+
-+
- if (cs.usePid && (strcmp(cs.usePid, "system") == 0)) {
- pidFieldName = "_PID";
- bPidFallBack = 0;
-@@ -732,6 +740,7 @@ CODESTARTbeginCnfLoad
- cs.bWorkAroundJournalBug = 1;
- cs.bFsync = 0;
- cs.bRemote = 0;
-+ cs.dfltTag = NULL;
- ENDbeginCnfLoad
-
-
-@@ -754,6 +763,7 @@ BEGINfreeCnf
- CODESTARTfreeCnf
- free(cs.stateFile);
- free(cs.usePid);
-+ free(cs.dfltTag);
- free(journalContext.cursor);
- statsobj.Destruct(&(statsCounter.stats));
- ENDfreeCnf
-@@ -832,6 +842,8 @@ CODESTARTsetModCnf
- cs.bFsync = (int) pvals[i].val.d.n;
- } else if (!strcmp(modpblk.descr[i].name, "remote")) {
- cs.bRemote = (int) pvals[i].val.d.n;
-+ } else if (!strcmp(modpblk.descr[i].name, "defaulttag")) {
-+ cs.dfltTag = (char *)es_str2cstr(pvals[i].val.d.estr, NULL);
- } else {
- dbgprintf("imjournal: program error, non-handled "
- "param '%s' in beginCnfLoad\n", modpblk.descr[i].name);
-@@ -799,6 +820,8 @@ CODEmodInit_QueryRegCFSLineHdlr
- facilityHdlr, &cs.iDfltFacility, STD_LOADABLE_MODULE_ID));
- CHKiRet(omsdRegCFSLineHdlr((uchar *)"imjournalusepidfromsystem", 0, eCmdHdlrBinary,
- NULL, &cs.bUseJnlPID, STD_LOADABLE_MODULE_ID));
-+ CHKiRet(omsdRegCFSLineHdlr((uchar *)"imjournaldefaulttag", 0, eCmdHdlrGetWord,
-+ NULL, &cs.dfltTag, STD_LOADABLE_MODULE_ID));
- ENDmodInit
- /* vim:set ai:
- */
diff --git a/SOURCES/rsyslog-8.2102.0-imtcp-param-refactor.patch b/SOURCES/rsyslog-8.2102.0-imtcp-param-refactor.patch
deleted file mode 100644
index 224533e..0000000
--- a/SOURCES/rsyslog-8.2102.0-imtcp-param-refactor.patch
+++ /dev/null
@@ -1,908 +0,0 @@
-diff --git a/plugins/imdiag/imdiag.c b/plugins/imdiag/imdiag.c
-index 3e27ee4d36..d57dd5661c 100644
---- a/plugins/imdiag/imdiag.c
-+++ b/plugins/imdiag/imdiag.c
-@@ -566,28 +566,33 @@ setInjectDelayMode(void __attribute__((unused)) *pVal, uchar *const pszMode)
- }
-
-
--static rsRetVal addTCPListener(void __attribute__((unused)) *pVal, uchar *pNewVal)
-+static rsRetVal
-+addTCPListener(void __attribute__((unused)) *pVal, uchar *pNewVal)
- {
-+ tcpLstnParams_t *cnf_params = NULL;
- DEFiRet;
-
-- if(pOurTcpsrv == NULL) {
-- CHKiRet(tcpsrv.Construct(&pOurTcpsrv));
-- CHKiRet(tcpsrv.SetSessMax(pOurTcpsrv, iTCPSessMax));
-- CHKiRet(tcpsrv.SetCBIsPermittedHost(pOurTcpsrv, isPermittedHost));
-- CHKiRet(tcpsrv.SetCBRcvData(pOurTcpsrv, doRcvData));
-- CHKiRet(tcpsrv.SetCBOpenLstnSocks(pOurTcpsrv, doOpenLstnSocks));
-- CHKiRet(tcpsrv.SetCBOnRegularClose(pOurTcpsrv, onRegularClose));
-- CHKiRet(tcpsrv.SetCBOnErrClose(pOurTcpsrv, onErrClose));
-- CHKiRet(tcpsrv.SetDrvrMode(pOurTcpsrv, iStrmDrvrMode));
-- CHKiRet(tcpsrv.SetOnMsgReceive(pOurTcpsrv, OnMsgReceived));
-- CHKiRet(tcpsrv.SetLstnPortFileName(pOurTcpsrv, pszLstnPortFileName));
-- /* now set optional params, but only if they were actually configured */
-- if(pszStrmDrvrAuthMode != NULL) {
-- CHKiRet(tcpsrv.SetDrvrAuthMode(pOurTcpsrv, pszStrmDrvrAuthMode));
-- }
-- if(pPermPeersRoot != NULL) {
-- CHKiRet(tcpsrv.SetDrvrPermPeers(pOurTcpsrv, pPermPeersRoot));
-- }
-+ if(pOurTcpsrv != NULL) {
-+ LogError(0, NO_ERRCODE, "imdiag: only a single listener is supported, "
-+ "trying to add a second");
-+ ABORT_FINALIZE(RS_RET_ERR);
-+ }
-+ CHKmalloc(cnf_params = (tcpLstnParams_t*) calloc(1, sizeof(tcpLstnParams_t)));
-+ CHKiRet(tcpsrv.Construct(&pOurTcpsrv));
-+ CHKiRet(tcpsrv.SetSessMax(pOurTcpsrv, iTCPSessMax));
-+ CHKiRet(tcpsrv.SetCBIsPermittedHost(pOurTcpsrv, isPermittedHost));
-+ CHKiRet(tcpsrv.SetCBRcvData(pOurTcpsrv, doRcvData));
-+ CHKiRet(tcpsrv.SetCBOpenLstnSocks(pOurTcpsrv, doOpenLstnSocks));
-+ CHKiRet(tcpsrv.SetCBOnRegularClose(pOurTcpsrv, onRegularClose));
-+ CHKiRet(tcpsrv.SetCBOnErrClose(pOurTcpsrv, onErrClose));
-+ CHKiRet(tcpsrv.SetDrvrMode(pOurTcpsrv, iStrmDrvrMode));
-+ CHKiRet(tcpsrv.SetOnMsgReceive(pOurTcpsrv, OnMsgReceived));
-+ /* now set optional params, but only if they were actually configured */
-+ if(pszStrmDrvrAuthMode != NULL) {
-+ CHKiRet(tcpsrv.SetDrvrAuthMode(pOurTcpsrv, pszStrmDrvrAuthMode));
-+ }
-+ if(pPermPeersRoot != NULL) {
-+ CHKiRet(tcpsrv.SetDrvrPermPeers(pOurTcpsrv, pPermPeersRoot));
- }
-
- /* initialized, now add socket */
-@@ -595,7 +600,11 @@ static rsRetVal addTCPListener(void __attribute__((unused)) *pVal, uchar *pNewVa
- UCHAR_CONSTANT("imdiag") : pszInputName));
- CHKiRet(tcpsrv.SetOrigin(pOurTcpsrv, (uchar*)"imdiag"));
- /* we support octect-counted frame (constant 1 below) */
-- tcpsrv.configureTCPListen(pOurTcpsrv, pNewVal, 1, NULL, pszLstnPortFileName);
-+ cnf_params->pszPort = pNewVal;
-+ cnf_params->bSuppOctetFram = 1;
-+ CHKmalloc(cnf_params->pszLstnPortFileName = (const uchar*) strdup((const char*)pszLstnPortFileName));
-+ tcpsrv.configureTCPListen(pOurTcpsrv, cnf_params);
-+ cnf_params = NULL;
-
- finalize_it:
- if(iRet != RS_RET_OK) {
-@@ -603,7 +612,7 @@ static rsRetVal addTCPListener(void __attribute__((unused)) *pVal, uchar *pNewVa
- if(pOurTcpsrv != NULL)
- tcpsrv.Destruct(&pOurTcpsrv);
- }
-- free(pNewVal);
-+ free(cnf_params);
- RETiRet;
- }
-
-@@ -760,6 +769,7 @@ CODESTARTmodExit
-
- /* free some globals to keep valgrind happy */
- free(pszInputName);
-+fprintf(stderr, "FINAL FREE %p\n", pszLstnPortFileName);
- free(pszLstnPortFileName);
- free(pszStrmDrvrAuthMode);
-
-diff --git a/plugins/imgssapi/imgssapi.c b/plugins/imgssapi/imgssapi.c
-index e0cab01664..4041e88b14 100644
---- a/plugins/imgssapi/imgssapi.c
-+++ b/plugins/imgssapi/imgssapi.c
-@@ -334,34 +334,38 @@ static rsRetVal
- actGSSListener(uchar *port)
- {
- DEFiRet;
-+ tcpLstnParams_t *cnf_params = NULL;
- gsssrv_t *pGSrv = NULL;
-
-- if(pOurTcpsrv == NULL) {
-- /* first create/init the gsssrv "object" */
-- if((pGSrv = calloc(1, sizeof(gsssrv_t))) == NULL)
-- ABORT_FINALIZE(RS_RET_OUT_OF_MEMORY);
--
-- pGSrv->allowedMethods = ALLOWEDMETHOD_GSS;
-- if(bPermitPlainTcp)
-- pGSrv->allowedMethods |= ALLOWEDMETHOD_TCP;
-- /* gsssrv initialized */
--
-- CHKiRet(tcpsrv.Construct(&pOurTcpsrv));
-- CHKiRet(tcpsrv.SetUsrP(pOurTcpsrv, pGSrv));
-- CHKiRet(tcpsrv.SetCBOnSessConstructFinalize(pOurTcpsrv, OnSessConstructFinalize));
-- CHKiRet(tcpsrv.SetCBOnSessDestruct(pOurTcpsrv, OnSessDestruct));
-- CHKiRet(tcpsrv.SetCBIsPermittedHost(pOurTcpsrv, isPermittedHost));
-- CHKiRet(tcpsrv.SetCBRcvData(pOurTcpsrv, doRcvData));
-- CHKiRet(tcpsrv.SetCBOpenLstnSocks(pOurTcpsrv, doOpenLstnSocks));
-- CHKiRet(tcpsrv.SetCBOnSessAccept(pOurTcpsrv, onSessAccept));
-- CHKiRet(tcpsrv.SetCBOnRegularClose(pOurTcpsrv, onRegularClose));
-- CHKiRet(tcpsrv.SetCBOnErrClose(pOurTcpsrv, onErrClose));
-- CHKiRet(tcpsrv.SetInputName(pOurTcpsrv, UCHAR_CONSTANT("imgssapi")));
-- CHKiRet(tcpsrv.SetKeepAlive(pOurTcpsrv, bKeepAlive));
-- CHKiRet(tcpsrv.SetOrigin(pOurTcpsrv, UCHAR_CONSTANT("imgssapi")));
-- tcpsrv.configureTCPListen(pOurTcpsrv, port, 1, NULL, NULL);
-- CHKiRet(tcpsrv.ConstructFinalize(pOurTcpsrv));
-- }
-+ assert(pOurTcpsrv == NULL);
-+ CHKmalloc(cnf_params = (tcpLstnParams_t*) calloc(1, sizeof(tcpLstnParams_t)));
-+ /* first create/init the gsssrv "object" */
-+ if((pGSrv = calloc(1, sizeof(gsssrv_t))) == NULL)
-+ ABORT_FINALIZE(RS_RET_OUT_OF_MEMORY);
-+
-+ pGSrv->allowedMethods = ALLOWEDMETHOD_GSS;
-+ if(bPermitPlainTcp)
-+ pGSrv->allowedMethods |= ALLOWEDMETHOD_TCP;
-+ /* gsssrv initialized */
-+
-+ CHKiRet(tcpsrv.Construct(&pOurTcpsrv));
-+ CHKiRet(tcpsrv.SetUsrP(pOurTcpsrv, pGSrv));
-+ CHKiRet(tcpsrv.SetCBOnSessConstructFinalize(pOurTcpsrv, OnSessConstructFinalize));
-+ CHKiRet(tcpsrv.SetCBOnSessDestruct(pOurTcpsrv, OnSessDestruct));
-+ CHKiRet(tcpsrv.SetCBIsPermittedHost(pOurTcpsrv, isPermittedHost));
-+ CHKiRet(tcpsrv.SetCBRcvData(pOurTcpsrv, doRcvData));
-+ CHKiRet(tcpsrv.SetCBOpenLstnSocks(pOurTcpsrv, doOpenLstnSocks));
-+ CHKiRet(tcpsrv.SetCBOnSessAccept(pOurTcpsrv, onSessAccept));
-+ CHKiRet(tcpsrv.SetCBOnRegularClose(pOurTcpsrv, onRegularClose));
-+ CHKiRet(tcpsrv.SetCBOnErrClose(pOurTcpsrv, onErrClose));
-+ CHKiRet(tcpsrv.SetInputName(pOurTcpsrv, UCHAR_CONSTANT("imgssapi")));
-+ CHKiRet(tcpsrv.SetKeepAlive(pOurTcpsrv, bKeepAlive));
-+ CHKiRet(tcpsrv.SetOrigin(pOurTcpsrv, UCHAR_CONSTANT("imgssapi")));
-+ cnf_params->pszPort = port;
-+ cnf_params->bSuppOctetFram = 1;
-+ tcpsrv.configureTCPListen(pOurTcpsrv, cnf_params);
-+ CHKiRet(tcpsrv.ConstructFinalize(pOurTcpsrv));
-+ cnf_params = NULL;
-
- finalize_it:
- if(iRet != RS_RET_OK) {
-@@ -370,6 +374,7 @@ actGSSListener(uchar *port)
- tcpsrv.Destruct(&pOurTcpsrv);
- free(pGSrv);
- }
-+ free(cnf_params);
- RETiRet;
- }
-
-diff --git a/plugins/imtcp/imtcp.c b/plugins/imtcp/imtcp.c
-index cf74d4c616..c336e6c24d 100644
---- a/plugins/imtcp/imtcp.c
-+++ b/plugins/imtcp/imtcp.c
-@@ -4,7 +4,7 @@
- * File begun on 2007-12-21 by RGerhards (extracted from syslogd.c,
- * which at the time of the rsyslog fork was BSD-licensed)
- *
-- * Copyright 2007-2017 Adiscon GmbH.
-+ * Copyright 2007-2020 Adiscon GmbH.
- *
- * This file is part of rsyslog.
- *
-@@ -112,9 +112,7 @@ static struct configSettings_s {
- } cs;
-
- struct instanceConf_s {
-- uchar *pszBindPort; /* port to bind to */
-- uchar *pszLstnPortFileName; /* file dynamic port is written to */
-- uchar *pszBindAddr; /* IP to bind socket to */
-+ tcpLstnParams_t *cnf_params; /**< listener config parameters */
- uchar *pszBindRuleset; /* name of ruleset to bind to */
- ruleset_t *pBindRuleset; /* ruleset to bind listener to (use system default if unspecified) */
- uchar *pszInputName; /* value for inputname property, NULL is OK and handled by core engine */
-@@ -122,7 +120,6 @@ struct instanceConf_s {
- sbool bSPFramingFix;
- unsigned int ratelimitInterval;
- unsigned int ratelimitBurst;
-- int bSuppOctetFram;
- struct instanceConf_s *next;
- };
-
-@@ -288,19 +285,20 @@ setPermittedPeer(void __attribute__((unused)) *pVal, uchar *pszID)
- static rsRetVal
- createInstance(instanceConf_t **pinst)
- {
-- instanceConf_t *inst;
-+ instanceConf_t *inst = NULL;
-+
- DEFiRet;
- CHKmalloc(inst = malloc(sizeof(instanceConf_t)));
-+ CHKmalloc(inst->cnf_params = (tcpLstnParams_t*) calloc(1, sizeof(tcpLstnParams_t)));
- inst->next = NULL;
- inst->pszBindRuleset = NULL;
- inst->pszInputName = NULL;
-- inst->pszBindAddr = NULL;
- inst->dfltTZ = NULL;
-- inst->bSuppOctetFram = -1; /* unset */
-+ inst->cnf_params->bSuppOctetFram = -1; /* unset */
- inst->bSPFramingFix = 0;
- inst->ratelimitInterval = 0;
- inst->ratelimitBurst = 10000;
-- inst->pszLstnPortFileName = NULL;
-+ inst->cnf_params->pszLstnPortFileName = NULL;
-
- /* node created, let's add to config */
- if(loadModConf->tail == NULL) {
-@@ -312,6 +310,9 @@ createInstance(instanceConf_t **pinst)
-
- *pinst = inst;
- finalize_it:
-+ if(iRet != RS_RET_OK) {
-+ free(inst);
-+ }
- RETiRet;
- }
-
-@@ -328,7 +329,7 @@ static rsRetVal addInstance(void __attribute__((unused)) *pVal, uchar *pNewVal)
-
- CHKiRet(createInstance(&inst));
-
-- CHKmalloc(inst->pszBindPort = ustrdup((pNewVal == NULL || *pNewVal == '\0')
-+ CHKmalloc(inst->cnf_params->pszPort = ustrdup((pNewVal == NULL || *pNewVal == '\0')
- ? (uchar*) "10514" : pNewVal));
- if((cs.pszBindRuleset == NULL) || (cs.pszBindRuleset[0] == '\0')) {
- inst->pszBindRuleset = NULL;
-@@ -336,14 +337,14 @@ static rsRetVal addInstance(void __attribute__((unused)) *pVal, uchar *pNewVal)
- CHKmalloc(inst->pszBindRuleset = ustrdup(cs.pszBindRuleset));
- }
- if((cs.lstnIP == NULL) || (cs.lstnIP[0] == '\0')) {
-- inst->pszBindAddr = NULL;
-+ inst->cnf_params->pszAddr = NULL;
- } else {
-- CHKmalloc(inst->pszBindAddr = ustrdup(cs.lstnIP));
-+ CHKmalloc(inst->cnf_params->pszAddr = ustrdup(cs.lstnIP));
- }
- if((cs.lstnPortFile == NULL) || (cs.lstnPortFile[0] == '\0')) {
-- inst->pszBindAddr = NULL;
-+ inst->cnf_params->pszAddr = NULL;
- } else {
-- CHKmalloc(inst->pszLstnPortFileName = ustrdup(cs.lstnPortFile));
-+ CHKmalloc(inst->cnf_params->pszLstnPortFileName = ustrdup(cs.lstnPortFile));
- }
-
- if((cs.pszInputName == NULL) || (cs.pszInputName[0] == '\0')) {
-@@ -351,7 +352,7 @@ static rsRetVal addInstance(void __attribute__((unused)) *pVal, uchar *pNewVal)
- } else {
- CHKmalloc(inst->pszInputName = ustrdup(cs.pszInputName));
- }
-- inst->bSuppOctetFram = cs.bSuppOctetFram;
-+ inst->cnf_params->bSuppOctetFram = cs.bSuppOctetFram;
-
- finalize_it:
- free(pNewVal);
-@@ -407,7 +408,7 @@ addListner(modConfData_t *modConf, instanceConf_t *inst)
- }
-
- /* initialized, now add socket and listener params */
-- DBGPRINTF("imtcp: trying to add port *:%s\n", inst->pszBindPort);
-+ DBGPRINTF("imtcp: trying to add port *:%s\n", inst->cnf_params->pszPort);
- CHKiRet(tcpsrv.SetRuleset(pOurTcpsrv, inst->pBindRuleset));
- CHKiRet(tcpsrv.SetInputName(pOurTcpsrv, inst->pszInputName == NULL ?
- UCHAR_CONSTANT("imtcp") : inst->pszInputName));
-@@ -416,12 +417,12 @@ addListner(modConfData_t *modConf, instanceConf_t *inst)
- CHKiRet(tcpsrv.SetbSPFramingFix(pOurTcpsrv, inst->bSPFramingFix));
- CHKiRet(tcpsrv.SetLinuxLikeRatelimiters(pOurTcpsrv, inst->ratelimitInterval, inst->ratelimitBurst));
-
-- if((ustrcmp(inst->pszBindPort, UCHAR_CONSTANT("0")) == 0 && inst->pszLstnPortFileName == NULL)
-- || ustrcmp(inst->pszBindPort, UCHAR_CONSTANT("0")) < 0) {
-- CHKmalloc(inst->pszBindPort = (uchar*)strdup("514"));
-+ if((ustrcmp(inst->cnf_params->pszPort, UCHAR_CONSTANT("0")) == 0
-+ && inst->cnf_params->pszLstnPortFileName == NULL)
-+ || ustrcmp(inst->cnf_params->pszPort, UCHAR_CONSTANT("0")) < 0) {
-+ CHKmalloc(inst->cnf_params->pszPort = (uchar*)strdup("514"));
- }
-- tcpsrv.configureTCPListen(pOurTcpsrv, inst->pszBindPort, inst->bSuppOctetFram,
-- inst->pszBindAddr, inst->pszLstnPortFileName);
-+ tcpsrv.configureTCPListen(pOurTcpsrv, inst->cnf_params);
-
- finalize_it:
- if(iRet != RS_RET_OK) {
-@@ -456,9 +457,9 @@ CODESTARTnewInpInst
- if(!pvals[i].bUsed)
- continue;
- if(!strcmp(inppblk.descr[i].name, "port")) {
-- inst->pszBindPort = (uchar*)es_str2cstr(pvals[i].val.d.estr, NULL);
-+ inst->cnf_params->pszPort = (uchar*)es_str2cstr(pvals[i].val.d.estr, NULL);
- } else if(!strcmp(inppblk.descr[i].name, "address")) {
-- inst->pszBindAddr = (uchar*)es_str2cstr(pvals[i].val.d.estr, NULL);
-+ inst->cnf_params->pszAddr = (uchar*)es_str2cstr(pvals[i].val.d.estr, NULL);
- } else if(!strcmp(inppblk.descr[i].name, "name")) {
- inst->pszInputName = (uchar*)es_str2cstr(pvals[i].val.d.estr, NULL);
- } else if(!strcmp(inppblk.descr[i].name, "defaulttz")) {
-@@ -468,13 +469,13 @@ CODESTARTnewInpInst
- } else if(!strcmp(inppblk.descr[i].name, "ruleset")) {
- inst->pszBindRuleset = (uchar*)es_str2cstr(pvals[i].val.d.estr, NULL);
- } else if(!strcmp(inppblk.descr[i].name, "supportoctetcountedframing")) {
-- inst->bSuppOctetFram = (int) pvals[i].val.d.n;
-+ inst->cnf_params->bSuppOctetFram = (int) pvals[i].val.d.n;
- } else if(!strcmp(inppblk.descr[i].name, "ratelimit.burst")) {
- inst->ratelimitBurst = (unsigned int) pvals[i].val.d.n;
- } else if(!strcmp(inppblk.descr[i].name, "ratelimit.interval")) {
- inst->ratelimitInterval = (unsigned int) pvals[i].val.d.n;
- } else if(!strcmp(inppblk.descr[i].name, "listenportfilename")) {
-- inst->pszLstnPortFileName = (uchar*)es_str2cstr(pvals[i].val.d.estr, NULL);
-+ inst->cnf_params->pszLstnPortFileName = (uchar*)es_str2cstr(pvals[i].val.d.estr, NULL);
- } else {
- dbgprintf("imtcp: program error, non-handled "
- "param '%s'\n", inppblk.descr[i].name);
-@@ -656,7 +657,7 @@ std_checkRuleset_genErrMsg(__attribute__((unused)) modConfData_t *modConf, insta
- {
- LogError(0, NO_ERRCODE, "imtcp: ruleset '%s' for port %s not found - "
- "using default ruleset instead", inst->pszBindRuleset,
-- inst->pszBindPort);
-+ inst->cnf_params->pszPort);
- }
-
- BEGINcheckCnf
-@@ -664,8 +665,8 @@ BEGINcheckCnf
- CODESTARTcheckCnf
- for(inst = pModConf->root ; inst != NULL ; inst = inst->next) {
- std_checkRuleset(pModConf, inst);
-- if(inst->bSuppOctetFram == FRAMING_UNSET)
-- inst->bSuppOctetFram = pModConf->bSuppOctetFram;
-+ if(inst->cnf_params->bSuppOctetFram == FRAMING_UNSET)
-+ inst->cnf_params->bSuppOctetFram = pModConf->bSuppOctetFram;
- }
- if(pModConf->root == NULL) {
- LogError(0, RS_RET_NO_LISTNERS , "imtcp: module loaded, but "
-@@ -713,12 +714,9 @@ CODESTARTfreeCnf
- free(pModConf->permittedPeers);
- }
- for(inst = pModConf->root ; inst != NULL ; ) {
-- free(inst->pszBindPort);
-- free(inst->pszLstnPortFileName);
-- free(inst->pszBindAddr);
-- free(inst->pszBindRuleset);
-- free(inst->pszInputName);
-- free(inst->dfltTZ);
-+ free((void*)inst->pszBindRuleset);
-+ free((void*)inst->pszInputName);
-+ free((void*)inst->dfltTZ);
- del = inst;
- inst = inst->next;
- free(del);
-diff --git a/runtime/netstrm.c b/runtime/netstrm.c
-index 8a394a02eb..2c1db46378 100644
---- a/runtime/netstrm.c
-+++ b/runtime/netstrm.c
-@@ -12,12 +12,18 @@
- * to carry out its work (including, and most importantly, transport
- * drivers).
- *
-+ * Note on processing:
-+ * - Initiating a listener may be driver-specific, but in regard to TLS/non-TLS
-+ * it actually is not. This is because TLS is negotiated after a connection
-+ * has been established. So it is the "acceptConnReq" driver entry where TLS
-+ * params need to be applied.
-+ *
- * Work on this module begun 2008-04-17 by Rainer Gerhards. This code
- * borrows from librelp's tcp.c/.h code. librelp is dual licensed and
- * Rainer Gerhards and Adiscon GmbH have agreed to permit using the code
- * under the terms of the GNU Lesser General Public License.
- *
-- * Copyright 2007-2009 Rainer Gerhards and Adiscon GmbH.
-+ * Copyright 2007-2020 Rainer Gerhards and Adiscon GmbH.
- *
- * This file is part of the rsyslog runtime library.
- *
-@@ -134,18 +140,17 @@ AcceptConnReq(netstrm_t *pThis, netstrm_t **ppNew)
- * pLstnPort must point to a port name or number. NULL is NOT permitted.
- * rgerhards, 2008-04-22
- */
--static rsRetVal
-+static rsRetVal ATTR_NONNULL(1,3,5)
- LstnInit(netstrms_t *pNS, void *pUsr, rsRetVal(*fAddLstn)(void*,netstrm_t*),
-- uchar *pLstnPort, uchar *pLstnIP, int iSessMax,
-- uchar *pszLstnPortFileName)
-+ const int iSessMax, const tcpLstnParams_t *const cnf_params)
- {
- DEFiRet;
-
- ISOBJ_TYPE_assert(pNS, netstrms);
- assert(fAddLstn != NULL);
-- assert(pLstnPort != NULL);
-+ assert(cnf_params->pszPort != NULL);
-
-- CHKiRet(pNS->Drvr.LstnInit(pNS, pUsr, fAddLstn, pLstnPort, pLstnIP, iSessMax, pszLstnPortFileName));
-+ CHKiRet(pNS->Drvr.LstnInit(pNS, pUsr, fAddLstn, iSessMax, cnf_params));
-
- finalize_it:
- RETiRet;
-diff --git a/runtime/netstrm.h b/runtime/netstrm.h
-index 2e28d7e2e6..4ca35805e7 100644
---- a/runtime/netstrm.h
-+++ b/runtime/netstrm.h
-@@ -1,6 +1,6 @@
- /* Definitions for the stream-based netstrmworking class.
- *
-- * Copyright 2007, 2008 Rainer Gerhards and Adiscon GmbH.
-+ * Copyright 2007-2020 Rainer Gerhards and Adiscon GmbH.
- *
- * This file is part of the rsyslog runtime library.
- *
-@@ -24,6 +24,7 @@
- #ifndef INCLUDED_NETSTRM_H
- #define INCLUDED_NETSTRM_H
-
-+#include "tcpsrv.h"
- #include "netstrms.h"
-
- /* the netstrm object */
-@@ -31,6 +32,7 @@ struct netstrm_s {
- BEGINobjInstance; /* Data to implement generic object - MUST be the first data element! */
- nsd_t *pDrvrData; /**< the driver's data elements (at most other places, this is called pNsd) */
- nsd_if_t Drvr; /**< our stream driver */
-+ uchar *pszDrvrAuthMode; /**< auth mode of the stream driver to use */
- void *pUsr; /**< pointer to user-provided data structure */
- netstrms_t *pNS; /**< pointer to our netstream subsystem object */
- };
-@@ -76,8 +78,8 @@ BEGINinterface(netstrm) /* name must also be changed in ENDinterface macro! */
- rsRetVal (*SetKeepAliveIntvl)(netstrm_t *pThis, int keepAliveIntvl);
- rsRetVal (*SetGnutlsPriorityString)(netstrm_t *pThis, uchar *priorityString);
- /* v11 -- Parameter pszLstnFileName added to LstnInit*/
-- rsRetVal (*LstnInit)(netstrms_t *pNS, void *pUsr, rsRetVal(*)(void*,netstrm_t*),
-- uchar *pLstnPort, uchar *pLstnIP, int iSessMax, uchar *pszLstnPortFileName);
-+ rsRetVal (ATTR_NONNULL(1,3,5) *LstnInit)(netstrms_t *pNS, void *pUsr, rsRetVal(*)(void*,netstrm_t*),
-+ const int iSessMax, const tcpLstnParams_t *const cnf_params);
- /* v12 -- two new binary flags added to gtls driver enabling stricter operation */
- rsRetVal (*SetDrvrCheckExtendedKeyUsage)(netstrm_t *pThis, int ChkExtendedKeyUsage);
- rsRetVal (*SetDrvrPrioritizeSAN)(netstrm_t *pThis, int prioritizeSan);
-diff --git a/runtime/nsd.h b/runtime/nsd.h
-index e862348fd6..eecffed05e 100644
---- a/runtime/nsd.h
-+++ b/runtime/nsd.h
-@@ -84,8 +84,8 @@ BEGINinterface(nsd) /* name must also be changed in ENDinterface macro! */
- rsRetVal (*SetKeepAliveTime)(nsd_t *pThis, int keepAliveTime);
- rsRetVal (*SetGnutlsPriorityString)(nsd_t *pThis, uchar *gnutlsPriorityString);
- /* v12 -- parameter pszLstnPortFileName added to LstnInit()*/
-- rsRetVal (*LstnInit)(netstrms_t *pNS, void *pUsr, rsRetVal(*fAddLstn)(void*,netstrm_t*),
-- uchar *pLstnPort, uchar *pLstnIP, int iSessMax, uchar *pszLstnPortFileName);
-+ rsRetVal (ATTR_NONNULL(1,3,5) *LstnInit)(netstrms_t *pNS, void *pUsr, rsRetVal(*)(void*,netstrm_t*),
-+ const int iSessMax, const tcpLstnParams_t *const cnf_params);
- /* v13 -- two new binary flags added to gtls driver enabling stricter operation */
- rsRetVal (*SetCheckExtendedKeyUsage)(nsd_t *pThis, int ChkExtendedKeyUsage);
- rsRetVal (*SetPrioritizeSAN)(nsd_t *pThis, int prioritizeSan);
-diff --git a/runtime/nsd_gtls.c b/runtime/nsd_gtls.c
-index da90c2e096..55f6713d62 100644
---- a/runtime/nsd_gtls.c
-+++ b/runtime/nsd_gtls.c
-@@ -1692,14 +1692,13 @@ Abort(nsd_t *pNsd)
- * a session, but not during listener setup.
- * gerhards, 2008-04-25
- */
--static rsRetVal
-+static rsRetVal ATTR_NONNULL(1,3,5)
- LstnInit(netstrms_t *pNS, void *pUsr, rsRetVal(*fAddLstn)(void*,netstrm_t*),
-- uchar *pLstnPort, uchar *pLstnIP, int iSessMax,
-- uchar *pszLstnPortFileName)
-+ const int iSessMax, const tcpLstnParams_t *const cnf_params)
- {
- DEFiRet;
- CHKiRet(gtlsGlblInitLstn());
-- iRet = nsd_ptcp.LstnInit(pNS, pUsr, fAddLstn, pLstnPort, pLstnIP, iSessMax, pszLstnPortFileName);
-+ iRet = nsd_ptcp.LstnInit(pNS, pUsr, fAddLstn, iSessMax, cnf_params);
- finalize_it:
- RETiRet;
- }
-@@ -1785,6 +1784,7 @@ AcceptConnReq(nsd_t *pNsd, nsd_t **ppNew)
- FINALIZE;
- }
- /* copy Properties to pnew first */
-+dbgprintf("RGER: pThis %p pNew %p, authMode %d\n", pThis, pNew, pThis->authMode);
- pNew->authMode = pThis->authMode;
- pNew->permitExpiredCerts = pThis->permitExpiredCerts;
- pNew->pPermPeers = pThis->pPermPeers;
-diff --git a/runtime/nsd_ossl.c b/runtime/nsd_ossl.c
-index 431ea738b8..79347916e4 100644
---- a/runtime/nsd_ossl.c
-+++ b/runtime/nsd_ossl.c
-@@ -1308,16 +1308,15 @@ Abort(nsd_t *pNsd)
- */
- static rsRetVal
- LstnInit(netstrms_t *pNS, void *pUsr, rsRetVal(*fAddLstn)(void*,netstrm_t*),
-- uchar *pLstnPort, uchar *pLstnIP, int iSessMax, uchar *pszLstnPortFileName)
-+ const int iSessMax, const tcpLstnParams_t *const cnf_params)
- {
- DEFiRet;
-
- dbgprintf("LstnInit for openssl: entering LstnInit (%p) for %s:%s SessMax=%d\n",
-- fAddLstn, pLstnIP, pLstnPort, iSessMax);
-+ fAddLstn, cnf_params->pszAddr, cnf_params->pszPort, iSessMax);
-
- /* Init TCP Listener using base ptcp class */
-- iRet = nsd_ptcp.LstnInit(pNS, pUsr, fAddLstn, pLstnPort, pLstnIP,
-- iSessMax, pszLstnPortFileName);
-+ iRet = nsd_ptcp.LstnInit(pNS, pUsr, fAddLstn, iSessMax, cnf_params);
- RETiRet;
- }
-
-diff --git a/runtime/nsd_ptcp.c b/runtime/nsd_ptcp.c
-index c35138fb7a..2f9e77ba03 100644
---- a/runtime/nsd_ptcp.c
-+++ b/runtime/nsd_ptcp.c
-@@ -474,10 +474,9 @@ AcceptConnReq(nsd_t *pNsd, nsd_t **ppNew)
- * number of sessions permitted.
- * rgerhards, 2008-04-22
- */
--static rsRetVal
-+static rsRetVal ATTR_NONNULL(1,3,5)
- LstnInit(netstrms_t *pNS, void *pUsr, rsRetVal(*fAddLstn)(void*,netstrm_t*),
-- uchar *pLstnPort, uchar *pLstnIP, int iSessMax,
-- uchar *pszLstnPortFileName)
-+ const int iSessMax, const tcpLstnParams_t *const cnf_params)
- {
- DEFiRet;
- netstrm_t *pNewStrm = NULL;
-@@ -497,20 +496,20 @@ LstnInit(netstrms_t *pNS, void *pUsr, rsRetVal(*fAddLstn)(void*,netstrm_t*),
-
- ISOBJ_TYPE_assert(pNS, netstrms);
- assert(fAddLstn != NULL);
-- assert(pLstnPort != NULL);
-+ assert(cnf_params->pszPort != NULL);
- assert(iSessMax >= 0);
-
-- dbgprintf("creating tcp listen socket on port %s\n", pLstnPort);
-+ dbgprintf("creating tcp listen socket on port %s\n", cnf_params->pszPort);
-
- memset(&hints, 0, sizeof(hints));
- hints.ai_flags = AI_PASSIVE;
- hints.ai_family = glbl.GetDefPFFamily();
- hints.ai_socktype = SOCK_STREAM;
-
-- error = getaddrinfo((char*)pLstnIP, (char*) pLstnPort, &hints, &res);
-+ error = getaddrinfo((const char*)cnf_params->pszAddr, (const char*) cnf_params->pszPort, &hints, &res);
- if(error) {
- LogError(0, RS_RET_INVALID_PORT, "error querying port '%s': %s",
-- pLstnPort, gai_strerror(error));
-+ cnf_params->pszAddr, gai_strerror(error));
- ABORT_FINALIZE(RS_RET_INVALID_PORT);
- }
-
-@@ -622,9 +621,9 @@ LstnInit(netstrms_t *pNS, void *pUsr, rsRetVal(*fAddLstn)(void*,netstrm_t*),
- r->ai_addrlen = socklen_r;
- savecast.sa = (struct sockaddr*)r->ai_addr;
- port_override = (isIPv6) ? savecast.ipv6->sin6_port : savecast.ipv4->sin_port;
-- if(pszLstnPortFileName != NULL) {
-+ if(cnf_params->pszLstnPortFileName != NULL) {
- FILE *fp;
-- if((fp = fopen((const char*)pszLstnPortFileName, "w+")) == NULL) {
-+ if((fp = fopen((const char*)cnf_params->pszLstnPortFileName, "w+")) == NULL) {
- LogError(errno, RS_RET_IO_ERROR, "nsd_ptcp: ListenPortFileName: "
- "error while trying to open file");
- ABORT_FINALIZE(RS_RET_IO_ERROR);
-diff --git a/runtime/nsd_ptcp.h b/runtime/nsd_ptcp.h
-index 137b7c3ce7..1c91718c19 100644
---- a/runtime/nsd_ptcp.h
-+++ b/runtime/nsd_ptcp.h
-@@ -1,6 +1,6 @@
- /* An implementation of the nsd interface for plain tcp sockets.
- *
-- * Copyright 2007-2012 Adiscon GmbH.
-+ * Copyright 2007-2020 Adiscon GmbH.
- *
- * This file is part of the rsyslog runtime library.
- *
-@@ -23,6 +23,7 @@
- #define INCLUDED_NSD_PTCP_H
-
- #include
-+#include "tcpsrv.h"
-
- #include "nsd.h"
- typedef nsd_if_t nsd_ptcp_if_t; /* we just *implement* this interface */
-diff --git a/runtime/tcps_sess.c b/runtime/tcps_sess.c
-index 58528c81ec..845e944582 100644
---- a/runtime/tcps_sess.c
-+++ b/runtime/tcps_sess.c
-@@ -194,8 +194,8 @@ SetLstnInfo(tcps_sess_t *pThis, tcpLstnPortList_t *pLstnInfo)
- assert(pLstnInfo != NULL);
- pThis->pLstnInfo = pLstnInfo;
- /* set cached elements */
-- pThis->bSuppOctetFram = pLstnInfo->bSuppOctetFram;
-- pThis->bSPFramingFix = pLstnInfo->bSPFramingFix;
-+ pThis->bSuppOctetFram = pLstnInfo->cnf_params->bSuppOctetFram;
-+ pThis->bSPFramingFix = pLstnInfo->cnf_params->bSPFramingFix;
- RETiRet;
- }
-
-@@ -235,6 +235,7 @@ defaultDoSubmitMessage(tcps_sess_t *pThis, struct syslogTime *stTime, time_t ttG
- DEFiRet;
-
- ISOBJ_TYPE_assert(pThis, tcps_sess);
-+ const tcpLstnParams_t *const cnf_params = pThis->pLstnInfo->cnf_params;
-
- if(pThis->iMsg == 0) {
- DBGPRINTF("discarding zero-sized message\n");
-@@ -249,15 +250,15 @@ defaultDoSubmitMessage(tcps_sess_t *pThis, struct syslogTime *stTime, time_t ttG
- /* we now create our own message object and submit it to the queue */
- CHKiRet(msgConstructWithTime(&pMsg, stTime, ttGenTime));
- MsgSetRawMsg(pMsg, (char*)pThis->pMsg, pThis->iMsg);
-- MsgSetInputName(pMsg, pThis->pLstnInfo->pInputName);
-- if(pThis->pLstnInfo->dfltTZ[0] != '\0')
-- MsgSetDfltTZ(pMsg, (char*) pThis->pLstnInfo->dfltTZ);
-+ MsgSetInputName(pMsg, cnf_params->pInputName);
-+ if(cnf_params->dfltTZ[0] != '\0')
-+ MsgSetDfltTZ(pMsg, (char*) cnf_params->dfltTZ);
- MsgSetFlowControlType(pMsg, pThis->pSrv->bUseFlowControl
- ? eFLOWCTL_LIGHT_DELAY : eFLOWCTL_NO_DELAY);
- pMsg->msgFlags = NEEDS_PARSING | PARSE_HOSTNAME;
- MsgSetRcvFrom(pMsg, pThis->fromHost);
- CHKiRet(MsgSetRcvFromIP(pMsg, pThis->fromHostIP));
-- MsgSetRuleset(pMsg, pThis->pLstnInfo->pRuleset);
-+ MsgSetRuleset(pMsg, cnf_params->pRuleset);
-
- STATSCOUNTER_INC(pThis->pLstnInfo->ctrSubmit, pThis->pLstnInfo->mutCtrSubmit);
- ratelimitAddMsg(pThis->pLstnInfo->ratelimiter, pMultiSub, pMsg);
-diff --git a/runtime/tcpsrv.c b/runtime/tcpsrv.c
-index 76a50357c3..ab9573e5b8 100644
---- a/runtime/tcpsrv.c
-+++ b/runtime/tcpsrv.c
-@@ -123,9 +123,7 @@ static int wrkrRunning;
- * rgerhards, 2009-05-21
- */
- static rsRetVal ATTR_NONNULL(1, 2)
--addNewLstnPort(tcpsrv_t *const pThis, const uchar *const pszPort,
-- const int bSuppOctetFram, const uchar *const pszAddr,
-- const uchar *const pszLstnPortFileName)
-+addNewLstnPort(tcpsrv_t *const pThis, tcpLstnParams_t *const cnf_params)
- {
- tcpLstnPortList_t *pEntry;
- uchar statname[64];
-@@ -135,25 +133,17 @@ addNewLstnPort(tcpsrv_t *const pThis, const uchar *const pszPort,
-
- /* create entry */
- CHKmalloc(pEntry = (tcpLstnPortList_t*)calloc(1, sizeof(tcpLstnPortList_t)));
-- CHKmalloc(pEntry->pszPort = ustrdup(pszPort));
-+ pEntry->cnf_params = cnf_params;
-
-- pEntry->pszAddr = NULL;
-- /* only if a bind adress is defined copy it in struct */
-- if (pszAddr != NULL) {
-- CHKmalloc(pEntry->pszAddr = ustrdup(pszAddr));
-- }
--
-- strcpy((char*)pEntry->dfltTZ, (char*)pThis->dfltTZ);
-- pEntry->bSPFramingFix = pThis->bSPFramingFix;
-+ strcpy((char*)pEntry->cnf_params->dfltTZ, (char*)pThis->dfltTZ);
-+ pEntry->cnf_params->bSPFramingFix = pThis->bSPFramingFix;
-+ pEntry->cnf_params->pRuleset = pThis->pRuleset;
- pEntry->pSrv = pThis;
-- pEntry->pRuleset = pThis->pRuleset;
-- pEntry->bSuppOctetFram = bSuppOctetFram;
-- pEntry->pszLstnPortFileName = pszLstnPortFileName;
-
- /* we need to create a property */
-- CHKiRet(prop.Construct(&pEntry->pInputName));
-- CHKiRet(prop.SetString(pEntry->pInputName, pThis->pszInputName, ustrlen(pThis->pszInputName)));
-- CHKiRet(prop.ConstructFinalize(pEntry->pInputName));
-+ CHKiRet(prop.Construct(&pEntry->cnf_params->pInputName));
-+ CHKiRet(prop.SetString(pEntry->cnf_params->pInputName, pThis->pszInputName, ustrlen(pThis->pszInputName)));
-+ CHKiRet(prop.ConstructFinalize(pEntry->cnf_params->pInputName));
-
- /* support statistics gathering */
- CHKiRet(ratelimitNew(&pEntry->ratelimiter, "tcperver", NULL));
-@@ -161,7 +151,7 @@ addNewLstnPort(tcpsrv_t *const pThis, const uchar *const pszPort,
- ratelimitSetThreadSafe(pEntry->ratelimiter);
-
- CHKiRet(statsobj.Construct(&(pEntry->stats)));
-- snprintf((char*)statname, sizeof(statname), "%s(%s)", pThis->pszInputName, pszPort);
-+ snprintf((char*)statname, sizeof(statname), "%s(%s)", pThis->pszInputName, cnf_params->pszPort);
- statname[sizeof(statname)-1] = '\0'; /* just to be on the save side... */
- CHKiRet(statsobj.SetName(pEntry->stats, statname));
- CHKiRet(statsobj.SetOrigin(pEntry->stats, pThis->pszOrigin));
-@@ -177,10 +167,8 @@ addNewLstnPort(tcpsrv_t *const pThis, const uchar *const pszPort,
- finalize_it:
- if(iRet != RS_RET_OK) {
- if(pEntry != NULL) {
-- free(pEntry->pszAddr);
-- free(pEntry->pszPort);
-- if(pEntry->pInputName != NULL) {
-- prop.Destruct(&pEntry->pInputName);
-+ if(pEntry->cnf_params->pInputName != NULL) {
-+ prop.Destruct(&pEntry->cnf_params->pInputName);
- }
- if(pEntry->ratelimiter != NULL) {
- ratelimitDestruct(pEntry->ratelimiter);
-@@ -201,29 +189,25 @@ addNewLstnPort(tcpsrv_t *const pThis, const uchar *const pszPort,
- * rgerhards, 2008-03-20
- */
- static rsRetVal ATTR_NONNULL(1,2)
--configureTCPListen(tcpsrv_t *const pThis,
-- const uchar *const pszPort,
-- const int bSuppOctetFram,
-- const uchar *const pszAddr,
-- const uchar *const pszLstnPortFileName)
-+configureTCPListen(tcpsrv_t *const pThis, tcpLstnParams_t *const cnf_params)
- {
-+ assert(cnf_params->pszPort != NULL);
- int i;
-- const uchar *pPort = pszPort;
- DEFiRet;
-
-- assert(pszPort != NULL);
- ISOBJ_TYPE_assert(pThis, tcpsrv);
-
- /* extract port */
-+ const uchar *pPort = cnf_params->pszPort;
- i = 0;
- while(isdigit((int) *pPort)) {
- i = i * 10 + *pPort++ - '0';
- }
-
- if(i >= 0 && i <= 65535) {
-- CHKiRet(addNewLstnPort(pThis, pszPort, bSuppOctetFram, pszAddr, pszLstnPortFileName));
-+ CHKiRet(addNewLstnPort(pThis, cnf_params));
- } else {
-- LogError(0, NO_ERRCODE, "Invalid TCP listen port %s - ignored.\n", pszPort);
-+ LogError(0, NO_ERRCODE, "Invalid TCP listen port %s - ignored.\n", cnf_params->pszPort);
- }
-
- finalize_it:
-@@ -331,8 +315,11 @@ deinit_tcp_listener(tcpsrv_t *const pThis)
- /* free list of tcp listen ports */
- pEntry = pThis->pLstnPorts;
- while(pEntry != NULL) {
-- free(pEntry->pszPort);
-- prop.Destruct(&pEntry->pInputName);
-+ prop.Destruct(&pEntry->cnf_params->pInputName);
-+ free((void*)pEntry->cnf_params->pszPort);
-+ free((void*)pEntry->cnf_params->pszAddr);
-+ free((void*)pEntry->cnf_params->pszLstnPortFileName);
-+ free((void*)pEntry->cnf_params);
- ratelimitDestruct(pEntry->ratelimiter);
- statsobj.Destruct(&(pEntry->stats));
- pDel = pEntry;
-@@ -373,22 +360,21 @@ addTcpLstn(void *pUsr, netstrm_t *pLstn)
-
-
- /* Initialize TCP listener socket for a single port
-+ * Note: at this point, TLS vs. non-TLS does not matter; TLS params are
-+ * set on connect!
- * rgerhards, 2009-05-21
- */
- static rsRetVal
- initTCPListener(tcpsrv_t *pThis, tcpLstnPortList_t *pPortEntry)
- {
- DEFiRet;
-- uchar *TCPLstnPort;
-
- ISOBJ_TYPE_assert(pThis, tcpsrv);
- assert(pPortEntry != NULL);
-
-- TCPLstnPort = pPortEntry->pszPort;
--
- // pPortEntry->pszAddr = NULL ==> bind to all interfaces
-- CHKiRet(netstrm.LstnInit(pThis->pNS, (void*)pPortEntry, addTcpLstn, TCPLstnPort,
-- pPortEntry->pszAddr, pThis->iSessMax, (uchar*)pPortEntry->pszLstnPortFileName));
-+ CHKiRet(netstrm.LstnInit(pThis->pNS, (void*)pPortEntry, addTcpLstn,
-+ pThis->iSessMax, pPortEntry->cnf_params));
-
- finalize_it:
- RETiRet;
-@@ -408,11 +394,12 @@ create_tcp_socket(tcpsrv_t *pThis)
- /* init all configured ports */
- pEntry = pThis->pLstnPorts;
- while(pEntry != NULL) {
-+dbgprintf("RGER: configuring listener %p\n", pEntry);
- localRet = initTCPListener(pThis, pEntry);
- if(localRet != RS_RET_OK) {
- LogError(0, localRet, "Could not create tcp listener, ignoring port "
-- "%s bind-address %s.", pEntry->pszPort,
-- (pEntry->pszAddr == NULL) ? "(null)" : (const char*)pEntry->pszAddr);
-+ "%s bind-address %s.", pEntry->cnf_params->pszPort,
-+ (pEntry->cnf_params->pszAddr == NULL) ? "(null)" : (const char*)pEntry->cnf_params->pszAddr);
- }
- pEntry = pEntry->pNext;
- }
-@@ -1236,15 +1223,6 @@ SetGnutlsPriorityString(tcpsrv_t *pThis, uchar *iVal)
- RETiRet;
- }
-
--static rsRetVal
--SetLstnPortFileName(tcpsrv_t *pThis, uchar *iVal)
--{
-- DEFiRet;
-- DBGPRINTF("tcpsrv: LstnPortFileName set to %s\n",
-- (iVal == NULL) ? "(null)" : (const char*) iVal);
-- pThis->pszLstnPortFileName = iVal;
-- RETiRet;
--}
-
- static rsRetVal
- SetOnMsgReceive(tcpsrv_t *pThis, rsRetVal (*OnMsgReceive)(tcps_sess_t*, uchar*, int))
-@@ -1309,6 +1287,7 @@ SetDfltTZ(tcpsrv_t *const pThis, uchar *const tz)
- {
- DEFiRet;
- ISOBJ_TYPE_assert(pThis, tcpsrv);
-+dbgprintf("dfltTZ prev: %s\n", pThis->dfltTZ);
- strncpy((char*)pThis->dfltTZ, (char*)tz, sizeof(pThis->dfltTZ));
- pThis->dfltTZ[sizeof(pThis->dfltTZ)-1] = '\0';
- RETiRet;
-@@ -1557,7 +1536,6 @@ CODESTARTobjQueryInterface(tcpsrv)
- pIf->SetKeepAliveProbes = SetKeepAliveProbes;
- pIf->SetKeepAliveTime = SetKeepAliveTime;
- pIf->SetGnutlsPriorityString = SetGnutlsPriorityString;
-- pIf->SetLstnPortFileName = SetLstnPortFileName;
- pIf->SetUsrP = SetUsrP;
- pIf->SetInputName = SetInputName;
- pIf->SetOrigin = SetOrigin;
-diff --git a/runtime/tcpsrv.h b/runtime/tcpsrv.h
-index db5a1d110a..bae7e3b8b9 100644
---- a/runtime/tcpsrv.h
-+++ b/runtime/tcpsrv.h
-@@ -1,6 +1,6 @@
- /* Definitions for tcpsrv class.
- *
-- * Copyright 2008-2015 Adiscon GmbH.
-+ * Copyright 2008-2020 Adiscon GmbH.
- *
- * This file is part of rsyslog.
- *
-@@ -23,6 +23,7 @@
-
- #include "obj.h"
- #include "prop.h"
-+#include "net.h"
- #include "tcps_sess.h"
- #include "statsobj.h"
-
-@@ -34,19 +35,24 @@ typedef enum ETCPsyslogFramingAnomaly {
- } eTCPsyslogFramingAnomaly;
-
-
-+/* config parameters for TCP listeners */
-+struct tcpLstnParams_s {
-+ const uchar *pszPort; /**< the ports the listener shall listen on */
-+ const uchar *pszAddr; /**< the addrs the listener shall listen on */
-+ sbool bSuppOctetFram; /**< do we support octect-counted framing? (if no->legay only!)*/
-+ sbool bSPFramingFix; /**< support work-around for broken Cisco ASA framing? */
-+ const uchar *pszLstnPortFileName; /**< File in which the dynamic port is written */
-+ prop_t *pInputName;
-+ ruleset_t *pRuleset; /**< associated ruleset */
-+ uchar dfltTZ[8]; /**< default TZ if none in timestamp; '\0' =No Default */
-+};
-+
- /* list of tcp listen ports */
- struct tcpLstnPortList_s {
-- uchar *pszPort; /**< the ports the listener shall listen on */
-- uchar *pszAddr; /**< the addrs the listener shall listen on */
-- prop_t *pInputName;
-+ tcpLstnParams_t *cnf_params; /**< listener config parameters */
- tcpsrv_t *pSrv; /**< pointer to higher-level server instance */
-- ruleset_t *pRuleset; /**< associated ruleset */
- statsobj_t *stats; /**< associated stats object */
-- sbool bSuppOctetFram; /**< do we support octect-counted framing? (if no->legay only!)*/
- ratelimit_t *ratelimiter;
-- uchar dfltTZ[8]; /**< default TZ if none in timestamp; '\0' =No Default */
-- sbool bSPFramingFix; /**< support work-around for broken Cisco ASA framing? */
-- const uchar *pszLstnPortFileName; /**< File in which the dynamic port is written */
- STATSCOUNTER_DEF(ctrSubmit, mutCtrSubmit)
- tcpLstnPortList_t *pNext; /**< next port or NULL */
- };
-@@ -130,8 +136,7 @@ BEGINinterface(tcpsrv) /* name must also be changed in ENDinterface macro! */
- rsRetVal (*Construct)(tcpsrv_t **ppThis);
- rsRetVal (*ConstructFinalize)(tcpsrv_t __attribute__((unused)) *pThis);
- rsRetVal (*Destruct)(tcpsrv_t **ppThis);
-- rsRetVal (*ATTR_NONNULL(1,2) configureTCPListen)(tcpsrv_t*,
-- const uchar *pszPort, int bSuppOctetFram, const uchar *pszAddr, const uchar *);
-+ rsRetVal (*ATTR_NONNULL(1,2) configureTCPListen)(tcpsrv_t*, tcpLstnParams_t *const cnf_params);
- rsRetVal (*create_tcp_socket)(tcpsrv_t *pThis);
- rsRetVal (*Run)(tcpsrv_t *pThis);
- /* set methods */
-@@ -188,8 +193,6 @@ BEGINinterface(tcpsrv) /* name must also be changed in ENDinterface macro! */
- rsRetVal (*SetGnutlsPriorityString)(tcpsrv_t*, uchar*);
- /* added v21 -- Preserve case in fromhost, 2018-08-16 */
- rsRetVal (*SetPreserveCase)(tcpsrv_t *pThis, int bPreserveCase);
-- /* added v22 -- File for dynamic Port, 2018-08-29 */
-- rsRetVal (*SetLstnPortFileName)(tcpsrv_t*, uchar*);
- /* added v23 -- Options for stricter driver behavior, 2019-08-16 */
- rsRetVal (*SetDrvrCheckExtendedKeyUsage)(tcpsrv_t *pThis, int ChkExtendedKeyUsage);
- rsRetVal (*SetDrvrPrioritizeSAN)(tcpsrv_t *pThis, int prioritizeSan);
-diff --git a/runtime/typedefs.h b/runtime/typedefs.h
-index 06f5c25a8c..000b4da4fe 100644
---- a/runtime/typedefs.h
-+++ b/runtime/typedefs.h
-@@ -123,6 +123,7 @@ typedef int rs_size_t; /* we do never need more than 2Gig strings, signed permit
- typedef rsRetVal (*prsf_t)(struct vmstk_s*, int); /* pointer to a RainerScript function */
- typedef uint64 qDeqID; /* queue Dequeue order ID. 32 bits is considered dangerously few */
-
-+typedef struct tcpLstnParams_s tcpLstnParams_t;
- typedef struct tcpLstnPortList_s tcpLstnPortList_t; // TODO: rename?
- typedef struct strmLstnPortList_s strmLstnPortList_t; // TODO: rename?
- typedef struct actWrkrIParams actWrkrIParams_t;
diff --git a/SOURCES/rsyslog-8.2102.0-nsd_ossl-better-logs.patch b/SOURCES/rsyslog-8.2102.0-nsd_ossl-better-logs.patch
deleted file mode 100644
index b45f19a..0000000
--- a/SOURCES/rsyslog-8.2102.0-nsd_ossl-better-logs.patch
+++ /dev/null
@@ -1,124 +0,0 @@
-diff --git a/runtime/nsd_ossl.c b/runtime/nsd_ossl.c
-index e55b014b2c..431ea738b8 100644
---- a/runtime/nsd_ossl.c
-+++ b/runtime/nsd_ossl.c
-@@ -210,7 +210,8 @@ void osslLastSSLErrorMsg(int ret, SSL *ssl, int severity, const char* pszCallSou
-
- /* Loop through ERR_get_error */
- while ((un_error = ERR_get_error()) > 0){
-- LogMsg(0, RS_RET_NO_ERRCODE, severity, "OpenSSL Error Stack: %s", ERR_error_string(un_error, NULL) );
-+ LogMsg(0, RS_RET_NO_ERRCODE, severity,
-+ "nsd_ossl:OpenSSL Error Stack: %s", ERR_error_string(un_error, NULL) );
- }
- }
-
-@@ -721,9 +722,10 @@ osslChkPeerFingerprint(nsd_ossl_t *pThis, X509 *pCert)
- if(pThis->bReportAuthErr == 1) {
- errno = 0;
- LogError(0, RS_RET_INVALID_FINGERPRINT,
-- "nsd_ossl:error:"
-- " peer fingerprint '%s' unknown - we are "
-- "not permitted to talk to it", cstrGetSzStrNoNULL(pstrFingerprint));
-+ "nsd_ossl:error: peer fingerprint '%s' unknown - we are "
-+ "not permitted to talk to it", cstrGetSzStrNoNULL(pstrFingerprint));
-+ LogMsg(0, RS_RET_NO_ERRCODE, LOG_INFO,
-+ "nsd_ossl:TLS session terminated with remote syslog server.");
- pThis->bReportAuthErr = 0;
- }
- ABORT_FINALIZE(RS_RET_INVALID_FINGERPRINT);
-@@ -834,8 +836,10 @@ osslChkPeerName(nsd_ossl_t *pThis, X509 *pCert)
- cstrFinalize(pStr);
- errno = 0;
- LogError(0, RS_RET_INVALID_FINGERPRINT, "nsd_ossl:error: peer name not authorized - "
-- "not permitted to talk to it. Names: %s",
-- cstrGetSzStrNoNULL(pStr));
-+ "not permitted to talk to it. Names: %s",
-+ cstrGetSzStrNoNULL(pStr));
-+ LogMsg(0, RS_RET_NO_ERRCODE, LOG_INFO,
-+ "nsd_ossl:TLS session terminated with remote syslog server.");
- pThis->bReportAuthErr = 0;
- }
- ABORT_FINALIZE(RS_RET_INVALID_FINGERPRINT);
-@@ -871,8 +875,10 @@ osslChkPeerID(nsd_ossl_t *pThis)
- if(pThis->bReportAuthErr == 1) {
- errno = 0;
- LogError(0, RS_RET_TLS_NO_CERT, "nsd_ossl:error: peer did not provide a certificate, "
-- "not permitted to talk to it");
-+ "not permitted to talk to it");
- pThis->bReportAuthErr = 0;
-+ LogMsg(0, RS_RET_NO_ERRCODE, LOG_INFO,
-+ "nsd_ossl:TLS session terminated with remote syslog server.");
- }
- ABORT_FINALIZE(RS_RET_TLS_NO_CERT);
- }
-@@ -905,15 +911,19 @@ osslChkPeerCertValidity(nsd_ossl_t *pThis)
- if (iVerErr == X509_V_ERR_CERT_HAS_EXPIRED) {
- if (pThis->permitExpiredCerts == OSSL_EXPIRED_DENY) {
- LogError(0, RS_RET_CERT_EXPIRED,
-- "nsd_ossl:CertValidity check"
--"- not permitted to talk to peer: certificate expired: %s",
-+ "nsd_ossl:CertValidity check - not permitted to talk to peer: "
-+ "certificate expired: %s",
- X509_verify_cert_error_string(iVerErr));
-+ LogMsg(0, RS_RET_NO_ERRCODE, LOG_INFO,
-+ "nsd_ossl:TLS session terminated with remote syslog server.");
- ABORT_FINALIZE(RS_RET_CERT_EXPIRED);
- } else if (pThis->permitExpiredCerts == OSSL_EXPIRED_WARN) {
- LogMsg(0, RS_RET_NO_ERRCODE, LOG_WARNING,
-- "nsd_ossl:CertValidity check"
--"- warning talking to peer: certificate expired: %s",
-+ "nsd_ossl:CertValidity check - warning talking to peer: "
-+ "certificate expired: %s",
- X509_verify_cert_error_string(iVerErr));
-+ LogMsg(0, RS_RET_NO_ERRCODE, LOG_INFO,
-+ "nsd_ossl:TLS session terminated with remote syslog server.");
- } else {
- dbgprintf("osslChkPeerCertValidity: talking to peer: certificate expired: %s\n",
- X509_verify_cert_error_string(iVerErr));
-@@ -921,6 +931,8 @@ osslChkPeerCertValidity(nsd_ossl_t *pThis)
- } else {
- LogError(0, RS_RET_CERT_INVALID, "nsd_ossl:not permitted to talk to peer: "
- "certificate validation failed: %s", X509_verify_cert_error_string(iVerErr));
-+ LogMsg(0, RS_RET_NO_ERRCODE, LOG_INFO,
-+ "nsd_ossl:TLS session terminated with remote syslog server.");
- ABORT_FINALIZE(RS_RET_CERT_INVALID);
- }
- } else {
-@@ -1384,7 +1396,7 @@ osslPostHandshakeCheck(nsd_ossl_t *pNsd)
- #if OPENSSL_VERSION_NUMBER >= 0x10002000L
- if(SSL_get_shared_curve(pNsd->ssl, -1) == 0) {
- LogError(0, RS_RET_NO_ERRCODE, "nsd_ossl:"
--"No shared curve between syslog client and server.");
-+ "No shared curve between syslog client and server.");
- }
- #endif
- sslCipher = (const SSL_CIPHER*) SSL_get_current_cipher(pNsd->ssl);
-@@ -1446,8 +1458,6 @@ osslHandshakeCheck(nsd_ossl_t *pNsd)
- resErr == SSL_ERROR_WANT_WRITE) {
- pNsd->rtryCall = osslRtry_handshake;
- pNsd->rtryOsslErr = resErr; /* Store SSL ErrorCode into*/
-- LogError(0, RS_RET_NO_ERRCODE, "nsd_ossl:"
--"TLS handshake failed between syslog client and server.");
- dbgprintf("osslHandshakeCheck: OpenSSL Client handshake does not complete "
- "immediately - setting to retry (this is OK and normal)\n");
- FINALIZE;
-@@ -1458,6 +1468,8 @@ osslHandshakeCheck(nsd_ossl_t *pNsd)
- ABORT_FINALIZE(RS_RET_NO_ERRCODE /*RS_RET_RETRY*/);
- } else {
- osslLastSSLErrorMsg(res, pNsd->ssl, LOG_ERR, "osslHandshakeCheck Client");
-+ LogMsg(0, RS_RET_NO_ERRCODE, LOG_INFO,
-+ "nsd_ossl:TLS session terminated with remote syslog server.");
- ABORT_FINALIZE(RS_RET_NO_ERRCODE);
- }
- }
-@@ -1738,8 +1750,8 @@ Connect(nsd_t *pNsd, int family, uchar *port, uchar *host, char *device)
- conn = BIO_new_socket(pPtcp->sock, BIO_CLOSE /*BIO_NOCLOSE*/);
- dbgprintf("Connect: Init conn BIO[%p] done\n", (void *)conn);
-
-- LogMsg(0, RS_RET_NO_ERRCODE, LOG_INFO, "nsd_ossl:"
--"TLS Connection initiated with remote syslog server.");
-+ LogMsg(0, RS_RET_NO_ERRCODE, LOG_INFO, "nsd_ossl: "
-+ "TLS Connection initiated with remote syslog server.");
- /*if we reach this point we are in tls mode */
- DBGPRINTF("Connect: TLS Mode\n");
- if(!(pThis->ssl = SSL_new(ctx))) {
diff --git a/SOURCES/rsyslog-8.2102.0-nsd_ossl-memory-leak.patch b/SOURCES/rsyslog-8.2102.0-nsd_ossl-memory-leak.patch
deleted file mode 100644
index 7b75773..0000000
--- a/SOURCES/rsyslog-8.2102.0-nsd_ossl-memory-leak.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-diff --git a/runtime/nsd_ossl.c b/runtime/nsd_ossl.c
-index 79347916e4..69ec57af09 100644
---- a/runtime/nsd_ossl.c
-+++ b/runtime/nsd_ossl.c
-@@ -1821,11 +1821,8 @@ BIO_set_nbio( conn, 1 );
- }
-
-
--/* Empty wrapper for GNUTLS helper function
-- * TODO: implement a similar capability
-- */
- static rsRetVal
--SetGnutlsPriorityString(__attribute__((unused)) nsd_t *pNsd, __attribute__((unused)) uchar *gnutlsPriorityString)
-+SetGnutlsPriorityString(nsd_t *const pNsd, uchar *const gnutlsPriorityString)
- {
- DEFiRet;
- nsd_ossl_t* pThis = (nsd_ossl_t*) pNsd;
-@@ -1905,6 +1902,7 @@ SetGnutlsPriorityString(__attribute__((unused)) nsd_t *pNsd, __attribute__((unus
- pThis->gnutlsPriorityString);
- osslLastSSLErrorMsg(0, NULL, LOG_ERR, "SetGnutlsPriorityString");
- }
-+ SSL_CONF_CTX_free(cctx);
- }
- #else
- dbgprintf("gnutlsPriorityString: set to '%s'\n", gnutlsPriorityString);
diff --git a/SOURCES/rsyslog-8.2102.0-rhbz1832368-prioritize-SAN.patch b/SOURCES/rsyslog-8.2102.0-rhbz1832368-prioritize-SAN.patch
deleted file mode 100644
index 07eef68..0000000
--- a/SOURCES/rsyslog-8.2102.0-rhbz1832368-prioritize-SAN.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up rsyslog-8.2102.0/runtime/nsd_gtls.c.orig rsyslog-8.2102.0/runtime/nsd_gtls.c
---- rsyslog-8.2102.0/runtime/nsd_gtls.c.orig 2021-11-22 09:33:25.501668376 +0100
-+++ rsyslog-8.2102.0/runtime/nsd_gtls.c 2021-11-22 09:34:18.423642573 +0100
-@@ -1791,6 +1791,7 @@ AcceptConnReq(nsd_t *pNsd, nsd_t **ppNew
- pNew->gnutlsPriorityString = pThis->gnutlsPriorityString;
- pNew->DrvrVerifyDepth = pThis->DrvrVerifyDepth;
- pNew->dataTypeCheck = pThis->dataTypeCheck;
-+ pNew->bSANpriority = pThis->bSANpriority;
-
- /* if we reach this point, we are in TLS mode */
- iRet = gtlsInitSession(pNew);
diff --git a/SOURCES/rsyslog-8.2102.0-rhbz1866877-unexpected-length.patch b/SOURCES/rsyslog-8.2102.0-rhbz1866877-unexpected-length.patch
deleted file mode 100644
index 1b9fd47..0000000
--- a/SOURCES/rsyslog-8.2102.0-rhbz1866877-unexpected-length.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -up rsyslog-8.2102.0/plugins/imjournal/imjournal.c.orig rsyslog-8.2102.0/plugins/imjournal/imjournal.c
---- rsyslog-8.2102.0/plugins/imjournal/imjournal.c.orig 2021-06-28 09:05:23.283262154 +0200
-+++ rsyslog-8.2102.0/plugins/imjournal/imjournal.c 2021-06-28 09:10:05.858381106 +0200
-@@ -424,8 +424,8 @@ readjournal(void)
- severity = cs.iDfltSeverity;
- }
- } else {
-- LogError(0, RS_RET_ERR, "The value of the 'PRIORITY' field has an "
-- "unexpected length: %zu\n", length);
-+ DBGPRINTF("The value of the 'PRIORITY' field has an "
-+ "unexpected length: %zu value: '%s'\n", length, (const char*)get);
- }
- }
-
diff --git a/SOURCES/rsyslog-8.2102.0-rhbz1886400-reduce-default-timeout.patch b/SOURCES/rsyslog-8.2102.0-rhbz1886400-reduce-default-timeout.patch
deleted file mode 100644
index a847084..0000000
--- a/SOURCES/rsyslog-8.2102.0-rhbz1886400-reduce-default-timeout.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -up rsyslog-8.2102.0/plugins/omrelp/omrelp.c.orig rsyslog-8.2102.0/plugins/omrelp/omrelp.c
---- rsyslog-8.2102.0/plugins/omrelp/omrelp.c.orig 2021-06-15 12:46:14.758589030 +0200
-+++ rsyslog-8.2102.0/plugins/omrelp/omrelp.c 2021-06-15 12:47:08.130516632 +0200
-@@ -303,7 +303,7 @@ ENDfreeCnf
- BEGINcreateInstance
- CODESTARTcreateInstance
- pData->sizeWindow = 0;
-- pData->timeout = 90;
-+ pData->timeout = 5;
- pData->connTimeout = 10;
- pData->rebindInterval = 0;
- pData->bEnableTLS = DFLT_ENABLE_TLS;
-@@ -365,7 +365,7 @@ setInstParamDefaults(instanceData *pData
- pData->target = NULL;
- pData->port = NULL;
- pData->tplName = NULL;
-- pData->timeout = 90;
-+ pData->timeout = 5;
- pData->connTimeout = 10;
- pData->sizeWindow = 0;
- pData->rebindInterval = 0;
diff --git a/SOURCES/rsyslog-8.2102.0-rhbz1909639-statefiles-doc.patch b/SOURCES/rsyslog-8.2102.0-rhbz1909639-statefiles-doc.patch
deleted file mode 100644
index b717972..0000000
--- a/SOURCES/rsyslog-8.2102.0-rhbz1909639-statefiles-doc.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-diff -up rsyslog-8.2102.0/doc/configuration/modules/imfile.html.state-file-leaking-doc rsyslog-8.2102.0/doc/configuration/modules/imfile.html
---- rsyslog-8.2102.0/doc/configuration/modules/imfile.html.state-file-leaking-doc 2021-02-15 12:53:31.000000000 +0100
-+++ rsyslog-8.2102.0/doc/configuration/modules/imfile.html 2022-03-29 10:35:07.187827004 +0200
-@@ -294,6 +294,28 @@ rsyslog needs write permissions to work
- also might require SELinux definitions (or similar for other enhanced security
- systems).
-
-+
-+
deleteStateOnFileMove
-+
-+
-+| type |
-+default |
-+mandatory |
-+obsolete legacy directive |
-+
-+
-+
-+| binary |
-+off |
-+no |
-+none |
-+
-+
-+
-+
This parameter controls if state files are deleted if their associated main file is rotated via move. Usually, this is a good idea, because otherwise state files are not deleted when log rotation occurs.
-+
-+
However, there is one situation where not deleting associated state file after log rotation makes sense: this is the case if a monitored file is later moved back to the same location as it was before.
-+
-
-