From 98a9a7d9e59f50f4b42e0dd7f52f45241ac60a57 Mon Sep 17 00:00:00 2001 From: Stefano Brivio Date: Mon, 27 Mar 2023 19:35:26 +0200 Subject: conf: Allow binding to ports on an interface without a specific address Somebody might want to bind listening sockets to a specific interface, but not a specific address, and there isn't really a reason to prevent that. For example: -t %eth0/2022 Alternatively, we support options such as -t 0.0.0.0%eth0/2022 and -t ::%eth0/2022, but not together, for the same port. Enable this kind of syntax and add examples to the man page. Reported-by: Paul Holzinger Link: https://github.com/containers/podman/issues/14425#issuecomment-1485192195 Signed-off-by: Stefano Brivio --- conf.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'conf.c') diff --git a/conf.c b/conf.c index 04e9956..f519a6a 100644 --- a/conf.c +++ b/conf.c @@ -263,7 +263,9 @@ static void conf_ports(const struct ctx *c, char optname, const char *optarg, ifname++; } - if (inet_pton(AF_INET, buf, addr)) + if (ifname == buf + 1) /* Interface without address */ + addr = NULL; + else if (inet_pton(AF_INET, buf, addr)) af = AF_INET; else if (inet_pton(AF_INET6, buf, addr)) af = AF_INET6; -- cgit v1.2.3