Navigation


Changeset 278:50bfb29bf036 in freeDiameter for extensions/app_radgw/rgw_worker.c


Ignore:
Timestamp:
Apr 23, 2010, 5:22:09 PM (14 years ago)
Author:
Sebastien Decugis <sdecugis@nict.go.jp>
Branch:
default
Phase:
public
Message:

Try better handling several pending requests for the same session (not very clean yet)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • extensions/app_radgw/rgw_worker.c

    r271 r278  
    147147                        {
    148148                                /* An error occurred, discard message */
     149                                if (diam_msg) {
     150                                        CHECK_FCT_DO( fd_msg_free(diam_msg), );
     151                                        diam_msg = NULL;
     152                                }
     153                                if (session) {
     154                                        CHECK_FCT_DO( fd_sess_destroy(&session), );
     155                                }
    149156                                rgw_msg_free(&msg);
    150157                                rgw_clients_dispose(&cli);
     
    153160                if (msg == NULL) {
    154161                        rgw_clients_dispose(&cli);
     162                        if (diam_msg) {
     163                                CHECK_FCT_DO( fd_msg_free(diam_msg), );
     164                                diam_msg = NULL;
     165                        }
     166                        if (session) {
     167                                CHECK_FCT_DO( fd_sess_destroy(&session), );
     168                        }
    155169                        continue; /* the message was handled already */
    156170                }
     
    176190                }
    177191               
    178                 /* Check the session is correct */
     192                /* Check the session is correct (for debug) */
    179193                ASSERT(session != NULL);
    180194               
     
    298312        }
    299313       
     314        /* Clear the RADIUS request */
     315        if (pa->rad) {
     316                rgw_msg_free(&pa->rad);
     317        }
     318       
    300319        /* Release reference on the client */
    301320        rgw_clients_dispose(&pa->cli);
Note: See TracChangeset for help on using the changeset viewer.