Exemplo n.º 1
0
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
	/*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
      return 0;  
}
Exemplo n.º 2
0
int linphone_core_get_local_ip_for(int type, const char *dest, char *result){
	strcpy(result,type==AF_INET ? "127.0.0.1" : "::1");
#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;
		}
	}
#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);
}