summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenny Prijono <bennylp@teluu.com>2007-03-01 17:28:35 +0000
committerBenny Prijono <bennylp@teluu.com>2007-03-01 17:28:35 +0000
commit82026cb87c1aa8bb9b849005561e795df324a4a9 (patch)
treea6931d4a6cb58876facfd26e5b177342fd7c3a71
parent0fb7ea795c2cf0134870630b1692376fb1398860 (diff)
Fixed ticket #150: pj_gethostip() should fallback to default interface when 127.x.x.x is returned, not just 127.0.0.1 (thanks Andrey Kuprianov)
git-svn-id: http://svn.pjsip.org/repos/pjproject/branches/pjproject-0.5-stable@1024 74dad513-b988-da41-8d7b-12977e46ad98
-rw-r--r--pjlib/src/pj/addr_resolv_sock.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/pjlib/src/pj/addr_resolv_sock.c b/pjlib/src/pj/addr_resolv_sock.c
index a292becd..04c0152b 100644
--- a/pjlib/src/pj/addr_resolv_sock.c
+++ b/pjlib/src/pj/addr_resolv_sock.c
@@ -59,12 +59,8 @@ pj_status_t pj_gethostip(pj_in_addr *addr)
{
const pj_str_t *hostname = pj_gethostname();
struct pj_hostent he;
- pj_str_t cp;
- pj_in_addr loopip;
pj_status_t status;
- cp = pj_str("127.0.0.1");
- loopip = pj_inet_addr(&cp);
#ifdef _MSC_VER
/* Get rid of "uninitialized he variable" with MS compilers */
@@ -78,11 +74,12 @@ pj_status_t pj_gethostip(pj_in_addr *addr)
}
- /* If we end up with 127.0.0.1, resolve the IP by getting the default
+ /* If we end up with 127.x.x.x, resolve the IP by getting the default
* interface to connect to some public host.
*/
- if (status != PJ_SUCCESS || addr->s_addr == loopip.s_addr) {
+ if (status != PJ_SUCCESS || (pj_ntohl(addr->s_addr) >> 24)==127) {
pj_sock_t fd;
+ pj_str_t cp;
pj_sockaddr_in a;
int len;