From f3b85b01e4b61a52598a6789c61997c5dad65bf0 Mon Sep 17 00:00:00 2001 From: Aravinda VK Date: Mon, 16 Sep 2019 10:04:26 +0530 Subject: eventsapi: Set IPv4/IPv6 family based on input IP server.sin_family was set to AF_INET while creating socket connection, this was failing if the input address is IPv6(`::1`). With this patch, sin_family is set by reading the ai_family of `getaddrinfo` result. Backport of: > Fixes: bz#1752330 > Change-Id: I499f957b432842fa989c698f6e5b25b7016084eb > Signed-off-by: Aravinda VK Fixes: bz#1807785 Change-Id: I499f957b432842fa989c698f6e5b25b7016084eb Signed-off-by: Aravinda VK --- libglusterfs/src/events.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'libglusterfs/src/events.c') diff --git a/libglusterfs/src/events.c b/libglusterfs/src/events.c index 11b4c54c4d7..4e2f8f93a00 100644 --- a/libglusterfs/src/events.c +++ b/libglusterfs/src/events.c @@ -42,6 +42,7 @@ _gf_event(eventtypes_t event, const char *fmt, ...) struct addrinfo hints; struct addrinfo *result = NULL; xlator_t *this = THIS; + int sin_family = AF_INET; char *volfile_server_transport = NULL; /* Global context */ @@ -84,13 +85,15 @@ _gf_event(eventtypes_t event, const char *fmt, ...) ret = EVENT_ERROR_RESOLVE; goto out; } + + sin_family = result->ai_family; } else { /* Localhost, Use the defined IP for localhost */ host = gf_strdup(EVENT_HOST); } /* Socket Configurations */ - server.sin_family = AF_INET; + server.sin_family = sin_family; server.sin_port = htons(EVENT_PORT); ret = inet_pton(server.sin_family, host, &server.sin_addr); if (ret <= 0) { -- cgit