if (i > 0) return(1);
int BIO_get_host_ip(const char *str, unsigned char *ip)	{	int i;	int err = 1;	int locked = 0;	struct hostent *he;	i=get_ip(str,ip);	if (i > 0) return(1);	if (i < 0)		{		BIOerr(BIO_F_BIO_GET_HOST_IP,BIO_R_INVALID_IP_ADDRESS);		goto err;		}	/* do a gethostbyname */	if (!BIO_sock_init())		return(0); /* don't generate another error code here */	CRYPTO_w_lock(CRYPTO_LOCK_GETHOSTBYNAME);	locked = 1;	he=BIO_gethostbyname(str);	if (he == NULL)		{		BIOerr(BIO_F_BIO_GET_HOST_IP,BIO_R_BAD_HOSTNAME_LOOKUP);		goto err;		}	/* cast to short because of win16 winsock definition */	if ((short)he->h_addrtype != AF_INET)		{		BIOerr(BIO_F_BIO_GET_HOST_IP,BIO_R_GETHOSTBYNAME_ADDR_IS_NOT_AF_INET);		goto err;		}	for (i=0; i<4; i++)		ip[i]=he->h_addr_list[0][i];	err = 0; err:	if (locked)		CRYPTO_w_unlock(CRYPTO_LOCK_GETHOSTBYNAME);	if (err)		{		ERR_add_error_data(2,"host=",str);		return 0;		}	else		return 1;	}