From ca8dfda04aa28259360e2e769b04f725eda70c73 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Thu, 27 Aug 2009 22:58:55 +0000 Subject: [PATCH] add a host lookup func git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@14653 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- src/include/switch_utils.h | 3 +++ src/switch_utils.c | 19 +++++++++++++++++++ 2 files changed, 22 insertions(+) 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;