diff --git a/src/include/switch_utils.h b/src/include/switch_utils.h index 3bb578e98f..daa2f615ac 100644 --- a/src/include/switch_utils.h +++ b/src/include/switch_utils.h @@ -165,6 +165,9 @@ SWITCH_DECLARE(switch_status_t) switch_frame_free(switch_frame_t **frame); (switch_is_number(expr) && !atoi(expr)))) ? SWITCH_TRUE : SWITCH_FALSE) +SWITCH_DECLARE(switch_status_t) switch_resolve_host(char *host, char *buf, size_t buflen); + + /*! \brief find local ip of the box \param buf the buffer to write the ip adress found into diff --git a/src/switch_utils.c b/src/switch_utils.c index 079ee7bc30..2e1d6be321 100644 --- a/src/switch_utils.c +++ b/src/switch_utils.c @@ -866,6 +866,25 @@ static int get_netmask(struct sockaddr_in *me, int *mask) #endif + +SWITCH_DECLARE(switch_status_t) switch_resolve_host(char *host, char *buf, size_t buflen) +{ + + struct addrinfo *ai; + int err; + + if ((err = getaddrinfo(host, 0, 0, &ai))) { + return SWITCH_STATUS_FALSE; + } + + get_addr(buf, buflen, ai->ai_addr, sizeof(*ai->ai_addr)); + + freeaddrinfo(ai); + + return SWITCH_STATUS_SUCCESS; +} + + SWITCH_DECLARE(switch_status_t) switch_find_local_ip(char *buf, int len, int *mask, int family) { switch_status_t status = SWITCH_STATUS_FALSE;