Navigation


Changeset 25:67ca08d5bc48 in freeDiameter for freeDiameter/p_psm.c


Ignore:
Timestamp:
Oct 26, 2009, 4:00:49 PM (15 years ago)
Author:
Sebastien Decugis <sdecugis@nict.go.jp>
Branch:
default
Phase:
public
Message:

Completed connection context files

File:
1 edited

Legend:

Unmodified
Added
Removed
  • freeDiameter/p_psm.c

    r22 r25  
    5858                case_str(FDEVP_TERMINATE);
    5959                case_str(FDEVP_CNX_MSG_RECV);
     60                case_str(FDEVP_CNX_ERROR);
     61                case_str(FDEVP_CNX_EP_CHANGE);
    6062                case_str(FDEVP_MSG_INCOMING);
    6163                case_str(FDEVP_PSM_TIMEOUT);
     
    126128}
    127129
    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 
    150130/* The state machine thread (controler) */
    151131static void * p_psm_th( void * arg )
     
    154134        int created_started = started;
    155135        int event;
     136        size_t ev_sz;
    156137        void * ev_data;
    157138       
     
    182163psm_loop:
    183164        /* 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'",
    186167                        STATE_STR(peer->p_hdr.info.pi_state),
    187                         fd_pev_str(event), ev_data,
     168                        fd_pev_str(event), ev_data, ev_sz,
    188169                        peer->p_hdr.info.pi_diamid);
    189170
     
    272253       
    273254        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) );
    275256        } else {
    276257                TRACE_DEBUG(FULL, "Peer '%s' was already terminated", peer->p_hdr.info.pi_diamid);
Note: See TracChangeset for help on using the changeset viewer.