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.
This commit is contained in:
Willy Tarreau 2020-09-16 16:28:08 +02:00
parent 26ff5dabc0
commit 5e1779abbf
2 changed files with 2 additions and 1 deletions

View File

@ -129,7 +129,7 @@ int str2listener(char *str, struct proxy *curproxy, struct bind_conf *bind_conf,
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;

View File

@ -14,6 +14,7 @@ frontend f1
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'