add: DBG(">>>>> inactivity since %d\n",p->last_activ_time);
context: void peer_timer_handler(unsigned int ticks, void* param){	struct timer_link *tl;	struct list_head  *lh;	struct list_head  *foo;	struct peer *p;#if 0	/* DELETE TIMER LIST */	/* get the expired peers */	tl = get_expired_from_timer_list( del_timer, ticks);	/* process the peers */	while (tl) {		p  = tl->payload;		tl = tl->next_tl;		/* is the peer ref-ed anymore? */		if ( atomic_read(&p->ref_cnt)==0 ) {			/* delete the peer ???? */		} else {			/* put it back into the timer list */			add_to_timer_list( &p->tl, del_timer, ticks+DELETE_TIMEOUT );		}	}#endif	/* RECONN TIME LIST */	tl = get_expired_from_timer_list( reconn_timer, ticks);	/* process the peers */	while (tl) {		p  = (struct peer*)tl->payload;		tl = tl->next_tl;		if (!p->flags&PEER_TO_DESTROY) {			/* try again to connect the peer */			DBG("DEBUG:peer_timer_handler: re-tring to connect peer %p \n",p);			write_command( p->fd, TIMEOUT_PEER_CMD, PEER_RECONN_TIMEOUT, p, 0);		}	}	/* WAIT_CER LIST */	tl = get_expired_from_timer_list( wait_cer_timer, ticks);	/* process the peers */	while (tl) {		p  = (struct peer*)tl->payload;		tl = tl->next_tl;		/* close the connection */		DBG("DEBUG:peer_timer_handler: peer %p hasn't received CER yet!\n",p);		write_command( p->fd, TIMEOUT_PEER_CMD, PEER_CER_TIMEOUT, p, 0);	}	/* ACTIV_PEERS LIST */	if ( !list_empty(&(activ_peers.lh)) ) {		lock_get( activ_peers.mutex );		list_for_each_safe( lh, foo, &(activ_peers.lh)) {			p  = list_entry( lh , struct peer , lh);			if (p->last_activ_time+SEND_DWR_TIMEOUT<=ticks) {				/* remove it from the list */				list_del_zero( lh );				/* send command to peer */				write_command( p->fd, INACTIVITY_CMD, 0, p, 0);			} else {				break;			}		}		lock_release( activ_peers.mutex );	}}