Navigation


Changeset 291:2d3a799ad29c in freeDiameter for libfreeDiameter/sessions.c


Ignore:
Timestamp:
May 10, 2010, 2:10:51 PM (14 years ago)
Author:
Sebastien Decugis <sdecugis@nict.go.jp>
Branch:
default
Phase:
public
Message:

Cache the session pointer in answers when it was present in queries

File:
1 edited

Legend:

Unmodified
Added
Removed
  • libfreeDiameter/sessions.c

    r258 r291  
    712712        CHECK_FCT( fd_sess_fromsid ( (char *) sid, len, session, new) );
    713713       
     714        /* Increase count */
     715        CHECK_FCT( fd_sess_ref_msg ( *session ) );
     716       
     717        /* Done */
     718        return 0;
     719}
     720
     721int fd_sess_ref_msg ( struct session * session )
     722{
     723        TRACE_ENTRY("%p", session);
     724        CHECK_PARAMS( VALIDATE_SI(session) );
     725
    714726        /* Update the msg refcount */
    715         CHECK_POSIX( pthread_mutex_lock(&(*session)->stlock) );
    716         (*session)->msg_cnt++;
    717         CHECK_POSIX( pthread_mutex_unlock(&(*session)->stlock) );
    718        
    719         /* Done */
     727        CHECK_POSIX( pthread_mutex_lock(&session->stlock) );
     728        session->msg_cnt++;
     729        CHECK_POSIX( pthread_mutex_unlock(&session->stlock) );
     730       
    720731        return 0;
    721732}
Note: See TracChangeset for help on using the changeset viewer.