mirror of
https://github.com/kernelkit/infix.git
synced 2026-07-30 12:33:02 +02:00
patches/syslogd: backport fixes to listen .conf directive
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
From ad9a464806fe27fe65d403f56f1dc701f7d0a10a Mon Sep 17 00:00:00 2001
|
||||
From: Joachim Wiberg <troglobit@gmail.com>
|
||||
Date: Wed, 24 Apr 2024 13:19:09 +0200
|
||||
Subject: [PATCH 01/15] Fix #72: loss of raw kernel log messages to console
|
||||
Subject: [PATCH 01/17] Fix #72: loss of raw kernel log messages to console
|
||||
Organization: Addiva Elektronik
|
||||
|
||||
This patch adds a command line flag `-l` to keep kernel logs to console.
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
From 7e0882688b0ea459c850e6e0ace66cca7100fd0a Mon Sep 17 00:00:00 2001
|
||||
From: Joachim Wiberg <troglobit@gmail.com>
|
||||
Date: Fri, 12 Jul 2024 22:54:51 +0200
|
||||
Subject: [PATCH 02/15] Fix #80: add global log rotation options to .conf file
|
||||
Subject: [PATCH 02/17] Fix #80: add global log rotation options to .conf file
|
||||
Organization: Addiva Elektronik
|
||||
|
||||
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
From a2c47f81bf3d358dddb475cbaa8125f2cb776587 Mon Sep 17 00:00:00 2001
|
||||
From: Joachim Wiberg <troglobit@gmail.com>
|
||||
Date: Sun, 14 Jul 2024 09:19:01 +0200
|
||||
Subject: [PATCH 03/15] Refactor, rely on global file rotation if not set
|
||||
Subject: [PATCH 03/17] Refactor, rely on global file rotation if not set
|
||||
per-file
|
||||
Organization: Addiva Elektronik
|
||||
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
From 0366909927cebecdf6c35b83a976a25c529043e1 Mon Sep 17 00:00:00 2001
|
||||
From: Joachim Wiberg <troglobit@gmail.com>
|
||||
Date: Sun, 14 Jul 2024 09:26:50 +0200
|
||||
Subject: [PATCH 04/15] Allow per-file rotation settings to set only one value
|
||||
Subject: [PATCH 04/17] Allow per-file rotation settings to set only one value
|
||||
Organization: Addiva Elektronik
|
||||
|
||||
This change makes it possible to set rotate=2M, or rotate=:5, and then
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From a1dc835fd5d11ce0dd6d9983c1aa2ca188460ac9 Mon Sep 17 00:00:00 2001
|
||||
From: Joachim Wiberg <troglobit@gmail.com>
|
||||
Date: Sun, 14 Jul 2024 17:46:41 +0200
|
||||
Subject: [PATCH 05/15] Fix #81: blocking delay for unreachable remote
|
||||
Subject: [PATCH 05/17] Fix #81: blocking delay for unreachable remote
|
||||
Organization: Addiva Elektronik
|
||||
|
||||
This patch fixes a blocking delay when a named remote action is set up.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 2d626af27e8f3115175749d183a8b7f91849bf10 Mon Sep 17 00:00:00 2001
|
||||
From: Joachim Wiberg <troglobit@gmail.com>
|
||||
Date: Sun, 14 Jul 2024 17:43:39 +0200
|
||||
Subject: [PATCH 06/15] Fix annoying gcc warning in rotate_file()
|
||||
Subject: [PATCH 06/17] Fix annoying gcc warning in rotate_file()
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 2aa73f85580614b9162aaaa74b2a9e817c6396bd Mon Sep 17 00:00:00 2001
|
||||
From: Joachim Wiberg <troglobit@gmail.com>
|
||||
Date: Mon, 15 Jul 2024 10:46:50 +0200
|
||||
Subject: [PATCH 07/15] Refactor cfparse() to add a per-keyword parser
|
||||
Subject: [PATCH 07/17] Refactor cfparse() to add a per-keyword parser
|
||||
Organization: Addiva Elektronik
|
||||
|
||||
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From c15bb6208cdd0e0629a28c10cb448a11aa7a1624 Mon Sep 17 00:00:00 2001
|
||||
From: Joachim Wiberg <troglobit@gmail.com>
|
||||
Date: Mon, 15 Jul 2024 14:24:08 +0200
|
||||
Subject: [PATCH 08/15] Fix gcc warning in vsyslogp_r()
|
||||
Subject: [PATCH 08/17] Fix gcc warning in vsyslogp_r()
|
||||
Organization: Addiva Elektronik
|
||||
|
||||
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
From f5fae387b92e81cc1f1f9e8f6656b20bb9e2e929 Mon Sep 17 00:00:00 2001
|
||||
From: Joachim Wiberg <troglobit@gmail.com>
|
||||
Date: Mon, 15 Jul 2024 14:57:54 +0200
|
||||
Subject: [PATCH 09/15] Fix #83: add support for listen addr:port to .conf file
|
||||
Subject: [PATCH 09/17] Fix #83: add support for listen addr:port to .conf file
|
||||
Organization: Addiva Elektronik
|
||||
|
||||
This complements the command line '-b addr:port' support with a 'listen'
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
From ad8dedd04a979279d245b53a60311ad91acaaf14 Mon Sep 17 00:00:00 2001
|
||||
From: Joachim Wiberg <troglobit@gmail.com>
|
||||
Date: Mon, 15 Jul 2024 15:02:32 +0200
|
||||
Subject: [PATCH 10/15] Fix #82: retry creating UNIX and network sockets on
|
||||
Subject: [PATCH 10/17] Fix #82: retry creating UNIX and network sockets on
|
||||
failure
|
||||
Organization: Addiva Elektronik
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 87ccd3eb37087ffb4b5f5b0322a558522a705215 Mon Sep 17 00:00:00 2001
|
||||
From: Joachim Wiberg <troglobit@gmail.com>
|
||||
Date: Thu, 18 Jul 2024 11:42:36 +0200
|
||||
Subject: [PATCH 11/15] Read *.conf files from include/ directories sorted
|
||||
Subject: [PATCH 11/17] Read *.conf files from include/ directories sorted
|
||||
Organization: Addiva Elektronik
|
||||
|
||||
No point in "saving time" on this operation. It is more important to
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 035dccad53efcd4237f040dc702ab435212ecf03 Mon Sep 17 00:00:00 2001
|
||||
From: Joachim Wiberg <troglobit@gmail.com>
|
||||
Date: Sun, 21 Jul 2024 19:15:48 +0200
|
||||
Subject: [PATCH 12/15] Fix #87: segfault on shutdown
|
||||
Subject: [PATCH 12/17] Fix #87: segfault on shutdown
|
||||
Organization: Addiva Elektronik
|
||||
|
||||
Regression introduced in in 36295e3, for issue #82.
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
From c7267011224ebd28d8a9daccd589109288fbde11 Mon Sep 17 00:00:00 2001
|
||||
From: Joachim Wiberg <troglobit@gmail.com>
|
||||
Date: Mon, 26 Aug 2024 11:47:10 +0200
|
||||
Subject: [PATCH 13/15] Fix #85: logging to remote IPv6 address does not work
|
||||
Subject: [PATCH 13/17] Fix #85: logging to remote IPv6 address does not work
|
||||
Organization: Addiva Elektronik
|
||||
|
||||
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 1a2e13cb3f3e4fb9f33a56cc87fb96ebc3bb45c7 Mon Sep 17 00:00:00 2001
|
||||
From: Joachim Wiberg <troglobit@gmail.com>
|
||||
Date: Mon, 26 Aug 2024 11:49:27 +0200
|
||||
Subject: [PATCH 14/15] Fix #86: adapt facilities for RFC5424 compliance
|
||||
Subject: [PATCH 14/17] Fix #86: adapt facilities for RFC5424 compliance
|
||||
Organization: Addiva Elektronik
|
||||
|
||||
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
From d6e7d2c6ee36cfc67eeef643d4a6c69dfbbd36ab Mon Sep 17 00:00:00 2001
|
||||
From: Joachim Wiberg <troglobit@gmail.com>
|
||||
Date: Mon, 26 Aug 2024 11:50:13 +0200
|
||||
Subject: [PATCH 15/15] Fix #88: initial delay for unresolvable remote target
|
||||
Subject: [PATCH 15/17] Fix #88: initial delay for unresolvable remote target
|
||||
Organization: Addiva Elektronik
|
||||
|
||||
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
|
||||
|
||||
+123
@@ -0,0 +1,123 @@
|
||||
From fbded7ec91a0747b4d9c9059ef48aebb5d5fc4e8 Mon Sep 17 00:00:00 2001
|
||||
From: Joachim Wiberg <troglobit@gmail.com>
|
||||
Date: Tue, 27 Aug 2024 13:32:18 +0200
|
||||
Subject: [PATCH 16/17] Fix #89: data corruption using .conf file listen
|
||||
directive
|
||||
Organization: Addiva Elektronik
|
||||
|
||||
The addpeer() function must save a copy of the name:service argument,
|
||||
otherwise, when called from cfparse(), the contents of the string will
|
||||
be corrupted.
|
||||
|
||||
Also, add a delpeer() function to wrap the logic for when closing and
|
||||
deleting peers when stopping or reloading syslogd.
|
||||
|
||||
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
|
||||
---
|
||||
src/syslogd.c | 47 +++++++++++++++++++++++++++++++++--------------
|
||||
src/syslogd.h | 4 ++--
|
||||
2 files changed, 35 insertions(+), 16 deletions(-)
|
||||
|
||||
diff --git a/src/syslogd.c b/src/syslogd.c
|
||||
index fecf281..9b8dc24 100644
|
||||
--- a/src/syslogd.c
|
||||
+++ b/src/syslogd.c
|
||||
@@ -298,12 +298,43 @@ static int addpeer(struct peer *pe0)
|
||||
pe = calloc(1, sizeof(*pe));
|
||||
if (pe == NULL)
|
||||
err(1, "malloc failed");
|
||||
+
|
||||
*pe = *pe0;
|
||||
+ if (pe0->pe_name)
|
||||
+ pe->pe_name = strdup(pe0->pe_name);
|
||||
+ if (pe0->pe_serv)
|
||||
+ pe->pe_serv = strdup(pe0->pe_serv);
|
||||
+
|
||||
TAILQ_INSERT_TAIL(&pqueue, pe, pe_link);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
+static void close_socket(struct peer *pe)
|
||||
+{
|
||||
+ for (size_t i = 0; i < pe->pe_socknum; i++) {
|
||||
+ if (pe->pe_mode & 01000)
|
||||
+ NOTE("Closing inet socket %s:%s", pe->pe_name ?: "*", pe->pe_serv);
|
||||
+ socket_close(pe->pe_sock[i]);
|
||||
+ }
|
||||
+ pe->pe_socknum = 0;
|
||||
+}
|
||||
+
|
||||
+static void delpeer(struct peer *pe)
|
||||
+{
|
||||
+ if (!pe)
|
||||
+ return;
|
||||
+
|
||||
+ close_socket(pe);
|
||||
+
|
||||
+ if (pe->pe_name)
|
||||
+ free(pe->pe_name);
|
||||
+ if (pe->pe_serv)
|
||||
+ free(pe->pe_serv);
|
||||
+
|
||||
+ free(pe);
|
||||
+}
|
||||
+
|
||||
static void sys_seqno_load(void)
|
||||
{
|
||||
char buf[32], *str;
|
||||
@@ -938,16 +969,6 @@ static int create_inet_socket(struct peer *pe)
|
||||
return 0;
|
||||
}
|
||||
|
||||
-static void close_socket(struct peer *pe)
|
||||
-{
|
||||
- for (size_t i = 0; i < pe->pe_socknum; i++) {
|
||||
- if (pe->pe_mode & 01000)
|
||||
- NOTE("Closing inet socket %s:%s", pe->pe_name ?: "*", pe->pe_serv);
|
||||
- socket_close(pe->pe_sock[i]);
|
||||
- }
|
||||
- pe->pe_socknum = 0;
|
||||
-}
|
||||
-
|
||||
void untty(void)
|
||||
{
|
||||
#ifdef HAVE_SETSID
|
||||
@@ -2589,8 +2610,7 @@ void die(int signo)
|
||||
*/
|
||||
TAILQ_FOREACH_SAFE(pe, &pqueue, pe_link, next) {
|
||||
TAILQ_REMOVE(&pqueue, pe, pe_link);
|
||||
- close_socket(pe);
|
||||
- free(pe);
|
||||
+ delpeer(pe);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -2907,8 +2927,7 @@ static void init(void)
|
||||
continue;
|
||||
|
||||
TAILQ_REMOVE(&pqueue, pe, pe_link);
|
||||
- close_socket(pe);
|
||||
- free(pe);
|
||||
+ delpeer(pe);
|
||||
}
|
||||
|
||||
Initialized = 1;
|
||||
diff --git a/src/syslogd.h b/src/syslogd.h
|
||||
index d74c0ed..0dce0ed 100644
|
||||
--- a/src/syslogd.h
|
||||
+++ b/src/syslogd.h
|
||||
@@ -226,8 +226,8 @@
|
||||
*/
|
||||
struct peer {
|
||||
TAILQ_ENTRY(peer) pe_link;
|
||||
- const char *pe_name;
|
||||
- const char *pe_serv;
|
||||
+ char *pe_name;
|
||||
+ char *pe_serv;
|
||||
int pe_mark;
|
||||
mode_t pe_mode;
|
||||
int pe_sock[16];
|
||||
--
|
||||
2.43.0
|
||||
|
||||
+47
@@ -0,0 +1,47 @@
|
||||
From 691aea6cbe27134d4d4106bb0bca396aff2802f9 Mon Sep 17 00:00:00 2001
|
||||
From: Joachim Wiberg <troglobit@gmail.com>
|
||||
Date: Tue, 27 Aug 2024 13:35:03 +0200
|
||||
Subject: [PATCH 17/17] Fix #90: add support for IPv6 addresses in listen
|
||||
directive
|
||||
Organization: Addiva Elektronik
|
||||
|
||||
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
|
||||
---
|
||||
src/syslogd.c | 20 +++++++++++++++++++-
|
||||
1 file changed, 19 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/syslogd.c b/src/syslogd.c
|
||||
index 9b8dc24..033be84 100644
|
||||
--- a/src/syslogd.c
|
||||
+++ b/src/syslogd.c
|
||||
@@ -3014,8 +3014,26 @@ static void init(void)
|
||||
static void cflisten(char *ptr, void *arg)
|
||||
{
|
||||
char *peer = ptr;
|
||||
+ char *p;
|
||||
+
|
||||
+ while (*peer && isspace(*peer))
|
||||
+ ++peer;
|
||||
+
|
||||
+ logit("cflisten[%s]\n", peer);
|
||||
+
|
||||
+ p = peer;
|
||||
+ if (*p == '[') {
|
||||
+ p++;
|
||||
+
|
||||
+ p = strchr(p, ']');
|
||||
+ if (!p) {
|
||||
+ ERR("Invalid IPv6 address in listen '%s', missing ']'", peer);
|
||||
+ return;
|
||||
+ }
|
||||
+ *p++ = 0;
|
||||
+ }
|
||||
|
||||
- ptr = strchr(peer, ':');
|
||||
+ ptr = strchr(p, ':');
|
||||
if (ptr)
|
||||
*ptr++ = 0;
|
||||
addpeer(&(struct peer) {
|
||||
--
|
||||
2.43.0
|
||||
|
||||
Reference in New Issue
Block a user