MEDIUM: udp: adds minimal proto udp support for message listeners.
This patch introduce proto_udp.c targeting a further support of
log forwarding feature.
This code was originally produced by Frederic Lecaille working on
QUIC support and only minimal requirements for syslog support
have been merged.
diff --git a/src/tools.c b/src/tools.c
index 7f98acf..1c66485 100644
--- a/src/tools.c
+++ b/src/tools.c
@@ -871,6 +871,7 @@
char *port1, *port2;
int portl, porth, porta;
int abstract = 0;
+ int is_udp = 0;
portl = porth = porta = 0;
if (fqdn)
@@ -907,6 +908,21 @@
str2 += 5;
ss.ss_family = AF_INET6;
}
+ else if (strncmp(str2, "udp4@", 5) == 0) {
+ str2 += 5;
+ ss.ss_family = AF_INET;
+ is_udp = 1;
+ }
+ else if (strncmp(str2, "udp6@", 5) == 0) {
+ str2 += 5;
+ ss.ss_family = AF_INET6;
+ is_udp = 1;
+ }
+ else if (strncmp(str2, "udp@", 4) == 0) {
+ str2 += 4;
+ ss.ss_family = AF_UNSPEC;
+ is_udp = 1;
+ }
else if (*str2 == '/') {
ss.ss_family = AF_UNIX;
}
@@ -1037,6 +1053,13 @@
}
}
set_host_port(&ss, porta);
+ if (is_udp) {
+ if (ss.ss_family == AF_INET6)
+ ss.ss_family = AF_CUST_UDP6;
+ else
+ ss.ss_family = AF_CUST_UDP4;
+ }
+
}
ret = &ss;