MEDIUM: config: make str2listener() not accept datagram sockets anymore
str2listener() was temporarily hacked to support datagram sockets for
the log-forward listeners. This has has an undesirable side effect that
"bind udp@1.2.3.4:5555" was silently accepted as TCP for a bind line.
We don't need this hack anymore since the only user (log-forward) now
relies on str2receiver(). Now such an address will properly be rejected.
diff --git a/src/cfgparse.c b/src/cfgparse.c
index 5451359..23a3695 100644
--- a/src/cfgparse.c
+++ b/src/cfgparse.c
@@ -129,7 +129,7 @@
ss2 = str2sa_range(str, NULL, &port, &end, &fd, err,
curproxy == global.stats_fe ? NULL : global.unix_bind.prefix,
NULL, PA_O_RESOLVE | PA_O_PORT_OK | PA_O_PORT_MAND | PA_O_PORT_RANGE |
- PA_O_SOCKET_FD | PA_O_DGRAM | PA_O_STREAM | PA_O_XPRT);
+ PA_O_SOCKET_FD | PA_O_STREAM | PA_O_XPRT);
if (!ss2)
goto fail;
diff --git a/tests/ports.cfg b/tests/ports.cfg
index 7210c3c..5779348 100644
--- a/tests/ports.cfg
+++ b/tests/ports.cfg
@@ -14,6 +14,7 @@
bind :::11003-11010
bind :::+11011 # port offset not permitted here in ':::+11011'
bind :::-11012 # port offset not permitted here in ':::-11012'
+ bind udp@:11013 # dgram-type socket not acceptable in 'udp@:11013'
frontend f2
bind :::0 # invalid port '0'