Changeset 25:67ca08d5bc48 in freeDiameter for freeDiameter/p_psm.c
- Timestamp:
- Oct 26, 2009, 4:00:49 PM (15 years ago)
- Branch:
- default
- Phase:
- public
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
freeDiameter/p_psm.c
r22 r25 58 58 case_str(FDEVP_TERMINATE); 59 59 case_str(FDEVP_CNX_MSG_RECV); 60 case_str(FDEVP_CNX_ERROR); 61 case_str(FDEVP_CNX_EP_CHANGE); 60 62 case_str(FDEVP_MSG_INCOMING); 61 63 case_str(FDEVP_PSM_TIMEOUT); … … 126 128 } 127 129 128 /* Wait for the next event in the PSM, or timeout */129 static int psm_ev_timedget(struct fd_peer * peer, int *code, void ** data)130 {131 struct fd_event * ev;132 int ret = 0;133 134 TRACE_ENTRY("%p %p %p", peer, code, data);135 136 ret = fd_fifo_timedget(peer->p_events, &ev, &peer->p_psm_timer);137 if (ret == ETIMEDOUT) {138 *code = FDEVP_PSM_TIMEOUT;139 *data = NULL;140 } else {141 CHECK_FCT( ret );142 *code = ev->code;143 *data = ev->data;144 free(ev);145 }146 147 return 0;148 }149 150 130 /* The state machine thread (controler) */ 151 131 static void * p_psm_th( void * arg ) … … 154 134 int created_started = started; 155 135 int event; 136 size_t ev_sz; 156 137 void * ev_data; 157 138 … … 182 163 psm_loop: 183 164 /* Get next event */ 184 CHECK_FCT_DO( psm_ev_timedget(peer, &event, &ev_data), goto psm_end );185 TRACE_DEBUG(FULL, "'%s'\t<-- '%s'\t(%p )\t'%s'",165 CHECK_FCT_DO( fd_event_timedget(peer->p_events, &peer->p_psm_timer, FDEVP_PSM_TIMEOUT, &event, &ev_sz, &ev_data), goto psm_end ); 166 TRACE_DEBUG(FULL, "'%s'\t<-- '%s'\t(%p,%g)\t'%s'", 186 167 STATE_STR(peer->p_hdr.info.pi_state), 187 fd_pev_str(event), ev_data, 168 fd_pev_str(event), ev_data, ev_sz, 188 169 peer->p_hdr.info.pi_diamid); 189 170 … … 272 253 273 254 if (peer->p_hdr.info.pi_state != STATE_ZOMBIE) { 274 CHECK_FCT( fd_event_send(peer->p_events, FDEVP_TERMINATE, NULL) );255 CHECK_FCT( fd_event_send(peer->p_events, FDEVP_TERMINATE, 0, NULL) ); 275 256 } else { 276 257 TRACE_DEBUG(FULL, "Peer '%s' was already terminated", peer->p_hdr.info.pi_diamid);
Note: See TracChangeset
for help on using the changeset viewer.