mirror of
https://gitlab.linphone.org/BC/public/linphone-iphone.git
synced 2026-01-20 04:28:10 +00:00
Merge remote-tracking branch 'public/master' into belle-sip
This commit is contained in:
commit
13aa1cc029
1 changed files with 24 additions and 16 deletions
|
|
@ -1120,26 +1120,34 @@ static int get_local_ip_for_with_connect(int type, const char *dest, char *resul
|
|||
}
|
||||
|
||||
int linphone_core_get_local_ip_for(int type, const char *dest, char *result){
|
||||
int err;
|
||||
strcpy(result,type==AF_INET ? "127.0.0.1" : "::1");
|
||||
|
||||
if (dest==NULL){
|
||||
if (type==AF_INET)
|
||||
dest="87.98.157.38"; /*a public IP address*/
|
||||
else dest="2a00:1450:8002::68";
|
||||
}
|
||||
err=get_local_ip_for_with_connect(type,dest,result);
|
||||
if (err==0) return 0;
|
||||
|
||||
/* if the connect method failed, which happens when no default route is set,
|
||||
* try to find 'the' running interface with getifaddrs*/
|
||||
|
||||
#ifdef HAVE_GETIFADDRS
|
||||
if (dest==NULL) {
|
||||
/*we use getifaddrs for lookup of default interface */
|
||||
int found_ifs;
|
||||
|
||||
found_ifs=get_local_ip_with_getifaddrs(type,result,LINPHONE_IPADDR_SIZE);
|
||||
if (found_ifs==1){
|
||||
return 0;
|
||||
}else if (found_ifs<=0){
|
||||
/*absolutely no network on this machine */
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
/*we use getifaddrs for lookup of default interface */
|
||||
int found_ifs;
|
||||
|
||||
found_ifs=get_local_ip_with_getifaddrs(type,result,LINPHONE_IPADDR_SIZE);
|
||||
if (found_ifs==1){
|
||||
return 0;
|
||||
}else if (found_ifs<=0){
|
||||
/*absolutely no network on this machine */
|
||||
return -1;
|
||||
}
|
||||
#endif
|
||||
/*else use connect to find the best local ip address */
|
||||
if (type==AF_INET)
|
||||
dest="87.98.157.38"; /*a public IP address*/
|
||||
else dest="2a00:1450:8002::68";
|
||||
return get_local_ip_for_with_connect(type,dest,result);
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifndef WIN32
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue