summaryrefslogtreecommitdiffstats
path: root/common/elapi/elapi_event.c
diff options
context:
space:
mode:
Diffstat (limited to 'common/elapi/elapi_event.c')
-rw-r--r--common/elapi/elapi_event.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/common/elapi/elapi_event.c b/common/elapi/elapi_event.c
index a517babdb..e7a5d779e 100644
--- a/common/elapi/elapi_event.c
+++ b/common/elapi/elapi_event.c
@@ -73,6 +73,7 @@ static int add_host_identity(struct collection_item *tpl, unsigned base)
int family;
int set_hostname = 0;
int set_ip = 0;
+ int used_this_ip = 0;
TRACE_FLOW_STRING("add_host_identity", "Entry");
@@ -99,6 +100,8 @@ static int add_host_identity(struct collection_item *tpl, unsigned base)
TRACE_FLOW_STRING("Top of the loop", "");
+ used_this_ip = 0;
+
if (!ifa->ifa_addr) {
ifa = ifa->ifa_next;
continue;
@@ -136,6 +139,8 @@ static int add_host_identity(struct collection_item *tpl, unsigned base)
0,
NI_NUMERICHOST /* Gets address as string */);
+ TRACE_INFO_STRING("Resolved host:", host);
+ TRACE_INFO_STRING("Resolved address:", address);
/* If we have not set host name set it */
if(!set_hostname) {
@@ -149,7 +154,7 @@ static int add_host_identity(struct collection_item *tpl, unsigned base)
hnm = hostname;
}
else {
- /* We we able to get a host name ? */
+ /* Were we able to get a host name ? */
if (gai_ret_host == EOK) {
TRACE_INFO_STRING("getnameinfo returned:", host);
hnm = host;
@@ -200,6 +205,7 @@ static int add_host_identity(struct collection_item *tpl, unsigned base)
return error;
}
set_ip = 1;
+ used_this_ip = 1;
}
}
@@ -231,13 +237,15 @@ static int add_host_identity(struct collection_item *tpl, unsigned base)
}
/* If we got then main IP and we are told to deal with opther IPs */
- if ((set_ip) && (base & E_HAVE_HOSTIPS)) {
+ if ((set_ip) && (base & E_HAVE_HOSTIPS) && (!used_this_ip)) {
- /* Do we have a host meaningful host name? */
+ TRACE_INFO_STRING("Considering address:", address);
+
+ /* Do we have a host meaningful IP */
if ((gai_ret_addr != EOK) ||
((gai_ret_addr == EOK) &&
((strcasecmp(address, LOCALADDRESS) == 0 ) ||
- (strcasecmp(address, LOCALADDRESSV6) == 0 )))) haddr = address;
+ (strcasecmp(address, LOCALADDRESSV6) == 0 )))) haddr = NULL;
else haddr = address;
if (haddr) {