diff --git a/src/mod/event_handlers/mod_erlang_event/ei_helpers.c b/src/mod/event_handlers/mod_erlang_event/ei_helpers.c index ed9cf60281..160a15c204 100644 --- a/src/mod/event_handlers/mod_erlang_event/ei_helpers.c +++ b/src/mod/event_handlers/mod_erlang_event/ei_helpers.c @@ -316,6 +316,9 @@ switch_status_t initialise_ei(struct ei_cnode_s *ec) { switch_status_t rv; struct sockaddr_in server_addr; + struct hostent *nodehost; + char thishostname[EI_MAXHOSTNAMELEN+1] = ""; + char thisnodename[MAXNODELEN+1]; /* zero out the struct before we use it */ memset(&server_addr, 0, sizeof(server_addr)); @@ -334,14 +337,13 @@ switch_status_t initialise_ei(struct ei_cnode_s *ec) server_addr.sin_family = AF_INET; server_addr.sin_port = htons(prefs.port); - struct hostent *nodehost = gethostbyaddr(&server_addr.sin_addr.s_addr, sizeof(server_addr.sin_addr.s_addr), AF_INET); + if ((nodehost = gethostbyaddr(&server_addr.sin_addr.s_addr, sizeof(server_addr.sin_addr.s_addr), AF_INET))) + memcpy(thishostname, nodehost->h_name, EI_MAXHOSTNAMELEN); - char *thishostname = nodehost->h_name; - char thisnodename[MAXNODELEN+1]; - - if (!strcmp(thishostname, "localhost")) + if (switch_strlen_zero_buf(thishostname)) { gethostname(thishostname, EI_MAXHOSTNAMELEN); - + } + if (prefs.shortname) { char *off; if ((off = strchr(thishostname, '.'))) { diff --git a/src/mod/event_handlers/mod_erlang_event/erlang_event.conf.xml b/src/mod/event_handlers/mod_erlang_event/erlang_event.conf.xml index d71084ed3f..c4b73bfae7 100644 --- a/src/mod/event_handlers/mod_erlang_event/erlang_event.conf.xml +++ b/src/mod/event_handlers/mod_erlang_event/erlang_event.conf.xml @@ -1,6 +1,6 @@ - + diff --git a/src/mod/event_handlers/mod_erlang_event/mod_erlang_event.c b/src/mod/event_handlers/mod_erlang_event/mod_erlang_event.c index 7ff8a5ea84..fb1504dbc6 100644 --- a/src/mod/event_handlers/mod_erlang_event/mod_erlang_event.c +++ b/src/mod/event_handlers/mod_erlang_event/mod_erlang_event.c @@ -932,7 +932,7 @@ static int config(void) } if (switch_strlen_zero(prefs.ip)) { - set_pref_ip("127.0.0.1"); + set_pref_ip("0.0.0.0"); } if (switch_strlen_zero(prefs.cookie)) { @@ -1423,7 +1423,7 @@ SWITCH_MODULE_RUNTIME_FUNCTION(mod_erlang_event_runtime) } } - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Connected and published erlang cnode at %s\n", ec.thisnodename); + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Connected to epmd and published erlang cnode at %s\n", ec.thisnodename); listen_list.ready = 1;