Navigation


Changeset 924:877592751fee in freeDiameter for extensions


Ignore:
Timestamp:
Feb 15, 2013, 1:52:57 AM (11 years ago)
Author:
Sebastien Decugis <sdecugis@freediameter.net>
Branch:
default
Children:
925:e5a09fab5ef3, 950:51c15f98a965
Phase:
public
Message:

Fix (tentative) for invalid handling of sessions fast creation/destruction as pointed by Yusuke Okura -- http://lists.freediameter.net/pipermail/help/2013-February/000584.html and http://lists.freediameter.net/pipermail/help/2013-February/000589.html -- Thank you very much

Location:
extensions
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • extensions/app_radgw/rgwx_auth.c

    r740 r924  
    458458                if (si_len) {
    459459                        /* We already have the Session-Id, just use it */
    460                         CHECK_FCT( fd_sess_fromsid ( si, si_len, session, NULL) );
     460                        CHECK_FCT( fd_sess_fromsid_msg ( si, si_len, session, NULL) );
    461461                } else {
    462462                        /* Create a new Session-Id string */
     
    496496                CHECK_FCT( fd_msg_avp_setvalue ( avp, &value ) );
    497497                CHECK_FCT( fd_msg_avp_add ( *diam_fw, MSG_BRW_FIRST_CHILD, avp) );
     498                CHECK_FCT( fd_msg_sess_set( *diam_fw, *session) );
    498499        }
    499500       
  • extensions/app_radgw/rgwx_sip.c

    r816 r924  
    480480        CHECK_FCT( fd_msg_avp_setvalue ( avp, &value ) );
    481481        CHECK_FCT( fd_msg_avp_add ( *diam_fw, MSG_BRW_FIRST_CHILD, avp) );
     482        CHECK_FCT( fd_msg_sess_set( *diam_fw, *session) );
    482483       
    483484        /*
  • extensions/app_sip/registrationtermination.c

    r706 r924  
    148148        {
    149149                #define APP_SIP_SID_OPT  "app_sip"
    150                 CHECK_FCT( fd_sess_new( &sess, fd_g_config->cnf_diamid, fd_g_config->cnf_diamid_len, (os0_t)APP_SIP_SID_OPT, CONSTSTRLEN(APP_SIP_SID_OPT) ));
    151                 os0_t sid;
    152                 size_t sidlen;
    153                 CHECK_FCT( fd_sess_getsid ( sess, &sid, &sidlen ));
    154                 CHECK_FCT( fd_msg_avp_new ( sip_dict.Session_Id, 0, &avp ));
    155                 value.os.data = sid;
    156                 value.os.len  = sidlen;
    157                 CHECK_FCT( fd_msg_avp_setvalue( avp, &value ));
    158                 CHECK_FCT( fd_msg_avp_add( message, MSG_BRW_FIRST_CHILD, avp ));
     150                CHECK_FCT( fd_msg_new_session( message, (os0_t)APP_SIP_SID_OPT, CONSTSTRLEN(APP_SIP_SID_OPT) ) );
    159151        }
    160152       
  • extensions/test_app/ta_bench.c

    r879 r924  
    122122        union avp_value val;
    123123        struct ta_mess_info * mi = NULL;
    124         struct session *sess = NULL;
    125124       
    126125        TRACE_DEBUG(FULL, "Creating a new message for sending.");
     
    131130        /* Create a new session */
    132131        #define TEST_APP_SID_OPT  "app_testb"
    133         CHECK_FCT_DO( fd_sess_new( &sess, fd_g_config->cnf_diamid, fd_g_config->cnf_diamid_len, (os0_t)TEST_APP_SID_OPT, CONSTSTRLEN(TEST_APP_SID_OPT) ), goto out );
     132        CHECK_FCT_DO( fd_msg_new_session( req, (os0_t)TEST_APP_SID_OPT, CONSTSTRLEN(TEST_APP_SID_OPT) ), goto out );
    134133       
    135134        /* Create the random value to store with the session */
     
    143142       
    144143        /* Now set all AVPs values */
    145        
    146         /* Session-Id */
    147         {
    148                 os0_t sid;
    149                 size_t sidlen;
    150                 CHECK_FCT_DO( fd_sess_getsid ( sess, &sid, &sidlen ), goto out );
    151                 CHECK_FCT_DO( fd_msg_avp_new ( ta_sess_id, 0, &avp ), goto out );
    152                 val.os.data = sid;
    153                 val.os.len  = sidlen;
    154                 CHECK_FCT_DO( fd_msg_avp_setvalue( avp, &val ), goto out );
    155                 CHECK_FCT_DO( fd_msg_avp_add( req, MSG_BRW_FIRST_CHILD, avp ), goto out );
    156                
    157         }
    158144       
    159145        /* Set the Destination-Realm AVP */
  • extensions/test_app/ta_cli.c

    r740 r924  
    151151        /* Create a new session */
    152152        #define TEST_APP_SID_OPT  "app_test"
    153         CHECK_FCT_DO( fd_sess_new( &sess, fd_g_config->cnf_diamid, fd_g_config->cnf_diamid_len, (os0_t)TEST_APP_SID_OPT, CONSTSTRLEN(TEST_APP_SID_OPT) ), goto out );
     153        CHECK_FCT_DO( fd_msg_new_session( req, (os0_t)TEST_APP_SID_OPT, CONSTSTRLEN(TEST_APP_SID_OPT) ), goto out );
     154        CHECK_FCT_DO( fd_msg_sess_get(fd_g_config->cnf_dict, req, &sess, NULL), goto out );
    154155       
    155156        /* Create the random value to store with the session */
     
    164165        /* Now set all AVPs values */
    165166       
    166         /* Session-Id */
    167         {
    168                 os0_t sid;
    169                 size_t sidlen;
    170                 CHECK_FCT_DO( fd_sess_getsid ( sess, &sid, &sidlen ), goto out );
    171                 CHECK_FCT_DO( fd_msg_avp_new ( ta_sess_id, 0, &avp ), goto out );
    172                 val.os.data = sid;
    173                 val.os.len  = sidlen;
    174                 CHECK_FCT_DO( fd_msg_avp_setvalue( avp, &val ), goto out );
    175                 CHECK_FCT_DO( fd_msg_avp_add( req, MSG_BRW_FIRST_CHILD, avp ), goto out );
    176                
    177         }
    178        
    179167        /* Set the Destination-Realm AVP */
    180168        {
  • extensions/test_sip/locationinfo.c

    r706 r924  
    4242        struct msg * message=NULL;
    4343        struct avp *avp=NULL;
    44         struct session *sess=NULL;
    4544        union avp_value value;
    4645       
     
    6261        // Create a new session
    6362        {
    64                 CHECK_FCT( fd_sess_new( &sess, fd_g_config->cnf_diamid, fd_g_config->cnf_diamid_len, (os0_t)"appsip", 6 ));
    65                 os0_t sid;
    66                 size_t sidlen;
    67                 CHECK_FCT( fd_sess_getsid ( sess, &sid, &sidlen ));
    68                 CHECK_FCT( fd_msg_avp_new ( sip_dict.Session_Id, 0, &avp ));
    69                 value.os.data = sid;
    70                 value.os.len  = sidlen;
    71                 CHECK_FCT( fd_msg_avp_setvalue( avp, &value ));
    72                 CHECK_FCT( fd_msg_avp_add( message, MSG_BRW_FIRST_CHILD, avp ));
     63                CHECK_FCT( fd_msg_new_session( message, (os0_t)"appsip", CONSTSTRLEN("appsip") ) );
    7364        }
    7465       
  • extensions/test_sip/locationinfosl.c

    r706 r924  
    4242        struct msg * message=NULL;
    4343        struct avp *avp=NULL;
    44         struct session *sess=NULL;
    4544        union avp_value value;
    4645       
     
    6261        // Create a new session
    6362        {
    64                 CHECK_FCT( fd_sess_new( &sess, fd_g_config->cnf_diamid, fd_g_config->cnf_diamid_len, (os0_t)"appsip", 6 ));
    65                 os0_t sid;
    66                 size_t sidlen;
    67                 CHECK_FCT( fd_sess_getsid ( sess, &sid, &sidlen ));
    68                 CHECK_FCT( fd_msg_avp_new ( sip_dict.Session_Id, 0, &avp ));
    69                 value.os.data = sid;
    70                 value.os.len  = sidlen;
    71                 CHECK_FCT( fd_msg_avp_setvalue( avp, &value ));
    72                 CHECK_FCT( fd_msg_avp_add( message, MSG_BRW_FIRST_CHILD, avp ));
     63                CHECK_FCT( fd_msg_new_session( message, (os0_t)"appsip", CONSTSTRLEN("appsip") ) );
    7364        }
    7465       
  • extensions/test_sip/serverassignment.c

    r706 r924  
    4242        struct msg * message=NULL;
    4343        struct avp *avp=NULL;
    44         struct session *sess=NULL;
    4544        union avp_value value;
    4645       
     
    7170        // Create a new session
    7271        {
    73                 CHECK_FCT( fd_sess_new( &sess, fd_g_config->cnf_diamid, fd_g_config->cnf_diamid_len, (os0_t)"appsip", 6 ));
    74                 os0_t sid;
    75                 size_t sidlen;
    76                 CHECK_FCT( fd_sess_getsid ( sess, &sid, &sidlen ));
    77                 CHECK_FCT( fd_msg_avp_new ( sip_dict.Session_Id, 0, &avp ));
    78                 value.os.data = sid;
    79                 value.os.len  = sidlen;
    80                 CHECK_FCT( fd_msg_avp_setvalue( avp, &value ));
    81                 CHECK_FCT( fd_msg_avp_add( message, MSG_BRW_FIRST_CHILD, avp ));
     72                CHECK_FCT( fd_msg_new_session( message, (os0_t)"appsip", CONSTSTRLEN("appsip") ) );
    8273        }
    8374       
  • extensions/test_sip/userauthorization.c

    r706 r924  
    4242        struct msg * message=NULL;
    4343        struct avp *avp=NULL;
    44         struct session *sess=NULL;
    4544        union avp_value value;
    4645       
     
    6766        // Create a new session
    6867        {
    69                 CHECK_FCT( fd_sess_new( &sess, fd_g_config->cnf_diamid, fd_g_config->cnf_diamid_len, (os0_t)"appsip", 6 ));
    70                 os0_t sid;
    71                 size_t sidlen;
    72                 CHECK_FCT( fd_sess_getsid ( sess, &sid, &sidlen ));
    73                 CHECK_FCT( fd_msg_avp_new ( sip_dict.Session_Id, 0, &avp ));
    74                 value.os.data = sid;
    75                 value.os.len  = sidlen;
    76                 CHECK_FCT( fd_msg_avp_setvalue( avp, &value ));
    77                 CHECK_FCT( fd_msg_avp_add( message, MSG_BRW_FIRST_CHILD, avp ));
     68                CHECK_FCT( fd_msg_new_session( message, (os0_t)"appsip", CONSTSTRLEN("appsip") ) );
    7869        }
    7970       
Note: See TracChangeset for help on using the changeset viewer.