rem: int len;
add: unsigned int len;
context: int t_forward_ack( struct sip_msg* p_msg , unsigned int dest_ip_param ,										unsigned int dest_port_param ){	int branch;	int len;	char *buf;	struct retrans_buff *srb;#ifdef _DONT_USE	struct sockaddr_in to_sock;#endif	/* drop local ACKs */	if (T->status/100!=2 ) {		DBG("DEBUG: local ACK dropped\n");		return 1;	}	branch=T->relaied_reply_branch;	/* double-check for odd relaying */	if ( branch <0 || branch>=T->nr_of_outgoings ) {		DBG("DEBUG: t_forward_ack: strange relaied_reply_branch: %d out of %d\n",			branch, T->nr_of_outgoings );		return -1;	}	DBG("DEBUG: t_forward_ack: forwarding ACK [%d]\n",branch);	/* not able to build branch -- then better give up */	if ( add_branch_label( T, p_msg , branch )==-1) {		LOG( L_ERR, "ERROR: t_forward_ack failed to add branch label\n" );		return 0;	}	/* not able to build outbound request -- then better give up */	if ( !(buf = build_req_buf_from_sip_req  ( p_msg, &len)))  {		LOG( L_ERR, "ERROR: t_forward_ack failed to generate outbound message\n" );		return 0;	};#ifdef _DONT_USE	/* strange conditions -- no INVITE before me ?!?! */	if ( (rb=T->outbound_request[branch])==NULL ) {		/* better stateless than nothing */		goto fwd_sl;	}#endif	shm_lock();	/* check for bizzar race condition if two processes receive	   two ACKs concurrently; use shmem semaphore for protection	   -- we have to enter it here anyway (the trick with inACKed	   inside the protection region)    */	if  (T->inbound_request_isACKed ) {		shm_unlock();		LOG(L_WARN, "Warning: ACK received when there's one; check upstream\n");		return 1;	}	srb = (struct retrans_buff *) shm_malloc_unsafe( sizeof( struct retrans_buff ) + len );	T->inbound_request_isACKed = 1;	shm_unlock();	memcpy( (char *) srb + sizeof ( struct retrans_buff ), buf, len );	pkg_free( buf );	relay_ack( T, branch, srb, len );	return 1;#ifdef _DON_USEfwd_sl: /* some strange conditions occured; try statelessly */	LOG(L_ERR, "ERROR: fwd-ing a 2xx ACK with T-state failed; "		"trying statelessly\n");	memset( &to_sock, sizeof to_sock, 0 );	to_sock.sin_family = AF_INET;	to_sock.sin_port =  dest_port_param;	to_sock.sin_addr.s_addr = dest_ip_param;	udp_send( buf, len, (struct sockaddr*)(&to_sock), 		sizeof(struct sockaddr_in) );	free( buf );	return 1;#endif}