add: struct socket_info* send_sock;
context: int forward_request( struct sip_msg* msg, struct proxy_l * p){	unsigned int len;	char* buf;	union sockaddr_union* to;	to=0;	buf = build_req_buf_from_sip_req( msg, &len);	if (!buf){		LOG(L_ERR, "ERROR: forward_reply: building failed\n");		goto error;	}	to=(union sockaddr_union*)malloc(sizeof(union sockaddr_union));	if (to==0){		LOG(L_ERR, "ERROR: forward_request: out of memory\n");		goto error;	}	 /* send it! */	DBG("Sending:\n%s.\n", buf);	DBG("orig. len=%d, new_len=%d\n", msg->len, len );	/* if error try next ip address if possible */	if (p->ok==0){		if (p->host.h_addr_list[p->addr_idx+1])			p->addr_idx++;		else p->addr_idx=0;		p->ok=1;	}	hostent2su(to, &p->host, p->addr_idx, 				(p->port)?htons(p->port):htons(SIP_PORT));	p->tx++;	p->tx_bytes+=len;	if (udp_send( buf, len,  to, sizeof(union sockaddr_union))==-1){			p->errors++;			p->ok=0;			STATS_TX_DROPS;			goto error;	}	/* sent requests stats */	else STATS_TX_REQUEST(  msg->first_line.u.request.method_value );	pkg_free(buf);	free(to);	/* received_buf & line_buf will be freed in receiv_msg by free_lump_list*/	return 0;error:	if (buf) pkg_free(buf);	if (to) free(to);	return -1;}