rem: ip=str2ip(name, len, &err);
add: ip=str2ip((unsigned char*)name, len, &err);
context: struct proxy_l* mk_proxy(char* name, unsigned short port){	struct proxy_l* p;	struct hostent* he;#ifdef DNS_IP_HACK	int err;	unsigned int ip;	int len;#endif	p=(struct proxy_l*) malloc(sizeof(struct proxy_l));	if (p==0){		LOG(L_CRIT, "ERROR: mk_proxy: memory allocation failure\n");		goto error;	}	memset(p,0,sizeof(struct proxy_l));	p->name=name;	p->port=port;#ifdef DNS_IP_HACK	len=strlen(name);	ip=str2ip(name, len, &err);	if (err==0){		p->host.h_name=malloc(len+1);		if (p->host.h_name==0) goto error;		memcpy(p->host.h_name, name, len);		p->host.h_aliases=malloc(sizeof(char*));		if (p->host.h_aliases==0) {			free(p->host.h_name);			goto error;		}		p->host.h_aliases[0]=0;		p->host.h_addrtype=AF_INET;		p->host.h_length=4;		p->host.h_addr_list=malloc(2*sizeof(char*));		if (p->host.h_addr_list==0){			free(p->host.h_name);			free(p->host.h_aliases);			goto error;		}		p->host.h_addr_list[1]=0;		p->host.h_addr_list[0]=malloc(5);		if (p->host.h_addr_list[0]==0){			free(p->host.h_name);			free(p->host.h_aliases);			free(p->host.h_addr_list);			goto error;		}		memcpy(p->host.h_addr_list[0], (char*)&ip, 4);		p->host.h_addr_list[0][4]=0;		return p;	}#endif	/* fail over to normal lookup */	he=gethostbyname(name);	if (he==0){		LOG(L_CRIT, "ERROR: mk_proxy: could not resolve hostname:"					" \"%s\"\n", name);		free(p);		goto error;	}	if (hostent_cpy(&(p->host), he)!=0){		free(p);		goto error;	}	p->ok=1;	return p;error:	return 0;}