When (re-)configuring listeners that use DNS names, we may need to know whether the provided connection string is invalid or if the provided DNS name has finished resolving.
Signed-off-by: Frode Nordahl <[email protected]> --- lib/socket-util.c | 7 ++++--- lib/socket-util.h | 3 ++- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/socket-util.c b/lib/socket-util.c index 38705cc51..604fdbb49 100644 --- a/lib/socket-util.c +++ b/lib/socket-util.c @@ -660,7 +660,8 @@ exit: * zeros '*ss' and returns false. */ bool inet_parse_passive(const char *target_, int default_port, - struct sockaddr_storage *ss) + struct sockaddr_storage *ss, + bool resolve_host, bool *dns_failure) { char *target = xstrdup(target_); char *port, *host; @@ -672,7 +673,7 @@ inet_parse_passive(const char *target_, int default_port, ok = false; } else { ok = parse_sockaddr_components(ss, host, port, default_port, - target_, true, NULL); + target_, resolve_host, dns_failure); } if (!ok) { memset(ss, 0, sizeof *ss); @@ -711,7 +712,7 @@ inet_open_passive(int style, const char *target, int default_port, int fd = 0, error; unsigned int yes = 1; - if (!inet_parse_passive(target, default_port, &ss)) { + if (!inet_parse_passive(target, default_port, &ss, true, NULL)) { return -EAFNOSUPPORT; } kernel_chooses_port = ss_get_port(&ss) == 0; diff --git a/lib/socket-util.h b/lib/socket-util.h index bf66393df..4eec627e3 100644 --- a/lib/socket-util.h +++ b/lib/socket-util.h @@ -55,7 +55,8 @@ int inet_open_active(int style, const char *target, int default_port, struct sockaddr_storage *ssp, int *fdp, uint8_t dscp); bool inet_parse_passive(const char *target, int default_port, - struct sockaddr_storage *ssp); + struct sockaddr_storage *ssp, + bool resolve_host, bool *dns_failure); int inet_open_passive(int style, const char *target, int default_port, struct sockaddr_storage *ssp, uint8_t dscp, bool kernel_print_port); -- 2.37.2 _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
