add: if (t->uac[branch].last_received<100) { DBG("DEBUG: cancel_branch: no response ever received: " "giving up on cancel\n"); return; }
context: void cancel_branch( struct cell *t, int branch ){	char *cancel;	unsigned int len;	struct retr_buf *crb, *irb;	crb=&t->uac[branch].local_cancel;	irb=&t->uac[branch].request;#	ifdef EXTRA_DEBUG	if (crb->buffer!=0 && crb->buffer!=BUSY_BUFFER) {		LOG(L_CRIT, "ERROR: attempt to rewrite cancel buffer\n");		abort();	}#	endif	cancel=build_cancel(t, branch, &len);	if (!cancel) {		LOG(L_ERR, "ERROR: attempt to build a CANCEL failed\n");		return;	}	/* install cancel now */	crb->buffer=cancel;	crb->buffer_len=len;	crb->dst=irb->dst;	crb->branch=branch;	crb->retr_timer.payload=crb->fr_timer.payload=crb;	/* label it as cancel so that FR timer can better now how to	   deal with it */	crb->activ_type=TYPE_LOCAL_CANCEL;    DBG("DEBUG: cancel_branch: sending cancel...\n");	SEND_BUFFER( crb );    /*sets and starts the FINAL RESPONSE timer */	start_retr( crb );}