add: tm_stats->replied_localy++;
context: enum rps local_reply( struct cell *t, struct sip_msg *p_msg, int branch, 	unsigned int msg_status, branch_bm_t *cancel_bitmap){	/* how to deal with replies for local transaction */	int local_store, local_winner;	enum rps reply_status;	struct sip_msg *winning_msg;	int winning_code;	/* branch_bm_t cancel_bitmap; */	/* keep warning 'var might be used un-inited' silent */		winning_msg=0;	winning_code=0;	*cancel_bitmap=0;	reply_status=t_should_relay_response( t, msg_status, branch,		&local_store, &local_winner, cancel_bitmap, p_msg );	DBG("DEBUG: local_reply: branch=%d, save=%d, winner=%d\n",		branch, local_store, local_winner );	if (local_store) {		if (!store_reply(t, branch, p_msg))			goto error;	}	if (local_winner>=0) {		winning_msg= branch==local_winner 			? p_msg :  t->uac[local_winner].reply;		if (winning_msg==FAKED_REPLY) {			winning_code = branch==local_winner				? msg_status : t->uac[local_winner].last_received;		} else {			winning_code=winning_msg->REPLY_STATUS;		}		t->uas.status = winning_code;		update_reply_stats( winning_code );	}	UNLOCK_REPLIES(t);	if (local_winner>=0 && winning_code>=200 ) {		DBG("DEBUG: local transaction completed\n");		callback_event( TMCB_LOCAL_COMPLETED, t, winning_msg, winning_code );		if (t->completion_cb) 			t->completion_cb( t, winning_msg, winning_code, 0 /* empty param */);	}	return reply_status;error:	which_cancel(t, cancel_bitmap);	UNLOCK_REPLIES(t);	cleanup_uac_timers(t);	if ( get_cseq(p_msg)->method.len==INVITE_LEN 		&& memcmp( get_cseq(p_msg)->method.s, INVITE, INVITE_LEN)==0)		cancel_uacs( t, *cancel_bitmap );	put_on_wait(t);	return RPS_ERROR;}