diff freeDiameter/peers.c @ 36:1498b3c7304c

Backup
author Sebastien Decugis <sdecugis@nict.go.jp>
date Mon, 02 Nov 2009 17:31:36 +0900
parents 0e2b57789361
children cc3c59fe98fe
line wrap: on
line diff
--- a/freeDiameter/peers.c	Mon Nov 02 14:54:42 2009 +0900
+++ b/freeDiameter/peers.c	Mon Nov 02 17:31:36 2009 +0900
@@ -101,16 +101,17 @@
 		CHECK_MALLOC( p->p_hdr.info.pi_realm = strdup(info->pi_realm) );
 	}
 	
-	p->p_hdr.info.pi_flags.pro3 = info->pi_flags.pro3;
-	p->p_hdr.info.pi_flags.pro4 = info->pi_flags.pro4;
-	p->p_hdr.info.pi_flags.alg  = info->pi_flags.alg;
-	p->p_hdr.info.pi_flags.sec  = info->pi_flags.sec;
-	p->p_hdr.info.pi_flags.exp  = info->pi_flags.exp;
+	p->p_hdr.info.pi_flags.pro3 	= info->pi_flags.pro3;
+	p->p_hdr.info.pi_flags.pro4 	= info->pi_flags.pro4;
+	p->p_hdr.info.pi_flags.alg  	= info->pi_flags.alg;
+	p->p_hdr.info.pi_flags.sec  	= info->pi_flags.sec;
+	p->p_hdr.info.pi_flags.exp  	= info->pi_flags.exp;
+	p->p_hdr.info.pi_flags.persist 	= info->pi_flags.persist;
 	
-	p->p_hdr.info.pi_lft     = info->pi_lft;
-	p->p_hdr.info.pi_port    = info->pi_port;
-	p->p_hdr.info.pi_tctimer = info->pi_tctimer;
-	p->p_hdr.info.pi_twtimer = info->pi_twtimer;
+	p->p_hdr.info.pi_lft     	= info->pi_lft;
+	p->p_hdr.info.pi_port    	= info->pi_port;
+	p->p_hdr.info.pi_tctimer 	= info->pi_tctimer;
+	p->p_hdr.info.pi_twtimer 	= info->pi_twtimer;
 	
 	if (info->pi_sec_data.priority) {
 		CHECK_MALLOC( p->p_hdr.info.pi_sec_data.priority = strdup(info->pi_sec_data.priority) );
@@ -441,6 +442,10 @@
 		CHECK_MALLOC_DO( peer->p_dbgorig = strdup(fd_cnx_getid(*cnx)), { ret = ENOMEM; goto out; } );
 		peer->p_flags.pf_responder = 1;
 		
+		/* Set this peer to expire on inactivity */
+		peer->p_hdr.info.pi_flags.exp 	= PI_EXP_INACTIVE;
+		peer->p_hdr.info.pi_lft		= 3600 * 3;	/* 3 hours without any message */
+		
 		/* Upgrade the lock to write lock */
 		CHECK_POSIX_DO( ret = pthread_rwlock_wrlock(&fd_g_peers_rw), goto out );
 		
"Welcome to our mercurial repository"