From 0fc6656c80446189ba8dc13eeef52863ef6b3b91 Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Tue, 27 Aug 2024 13:35:03 +0200 Subject: [PATCH] Fix #90: add support for IPv6 addresses in listen directive Signed-off-by: Joachim Wiberg --- src/syslogd.c | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/syslogd.c b/src/syslogd.c index 811868d..1954109 100644 --- a/src/syslogd.c +++ b/src/syslogd.c @@ -3016,8 +3016,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) {