Mercurial > hg > freeDiameter
diff freeDiameter/p_psm.c @ 22:0b3b46da2c12
Progress on server code
author | Sebastien Decugis <sdecugis@nict.go.jp> |
---|---|
date | Mon, 19 Oct 2009 18:43:09 +0900 |
parents | 277ec00d793e |
children | 67ca08d5bc48 |
line wrap: on
line diff
--- a/freeDiameter/p_psm.c Thu Oct 08 20:05:16 2009 +0900 +++ b/freeDiameter/p_psm.c Mon Oct 19 18:43:09 2009 +0900 @@ -54,8 +54,9 @@ switch (event) { #define case_str( _val )\ case _val : return #_val + case_str(FDEVP_DUMP_ALL); case_str(FDEVP_TERMINATE); - case_str(FDEVP_DUMP_ALL); + case_str(FDEVP_CNX_MSG_RECV); case_str(FDEVP_MSG_INCOMING); case_str(FDEVP_PSM_TIMEOUT); @@ -240,6 +241,8 @@ psm_end: pthread_cleanup_pop(1); /* set STATE_ZOMBIE */ + pthread_detach(peer->p_psm); + peer->p_psm = (pthread_t)NULL; return NULL; } @@ -266,6 +269,7 @@ { TRACE_ENTRY("%p", peer); CHECK_PARAMS( CHECK_PEER(peer) ); + if (peer->p_hdr.info.pi_state != STATE_ZOMBIE) { CHECK_FCT( fd_event_send(peer->p_events, FDEVP_TERMINATE, NULL) ); } else {