Changeset 637:22e8fac3b2d6 in freeDiameter for libfreeDiameter/messages.c
- Timestamp:
- Dec 16, 2010, 6:56:41 PM (13 years ago)
- Branch:
- default
- Phase:
- public
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libfreeDiameter/messages.c
r400 r637 118 118 int msg_routable; /* Is this a routable message? (0: undef, 1: routable, 2: non routable) */ 119 119 struct msg *msg_query; /* the associated query if the message is a received answer */ 120 int msg_associated; /* and the counter part information in the query, to avoid double free */ 120 121 struct rt_data *msg_rtdata; /* Routing list for the query */ 121 122 struct session *msg_sess; /* Cached message session if any */ … … 342 343 /* associate with query */ 343 344 ans->msg_query = qry; 345 qry->msg_associated = 1; 344 346 345 347 /* Done */ … … 629 631 if (CHECK_MSG(object)) { 630 632 if (_M(object)->msg_query) { 633 _M(_M(object)->msg_query)->msg_associated = 0; 631 634 CHECK_FCT( fd_msg_free( _M(object)->msg_query ) ); 632 635 _M(object)->msg_query = NULL; 636 } else { 637 if (_M(object)->msg_associated) { 638 TRACE_DEBUG(INFO, "Not freeing query %p referenced in an answer (will be freed along the answer).", object); 639 return 0; 640 } 633 641 } 634 642 } … … 689 697 msg->msg_public.msg_eteid 690 698 ); 691 fd_log_debug(INOBJHDR "intern: rwb:%p rt:%d cb:%p(%p) qry:%p sess:%p src:%s\n",692 INOBJHDRVAL, msg->msg_rawbuffer, msg->msg_routable, msg->msg_cb.fct, msg->msg_cb.data, msg->msg_query, msg->msg_ sess, msg->msg_src_id?:"(nil)");699 fd_log_debug(INOBJHDR "intern: rwb:%p rt:%d cb:%p(%p) qry:%p asso:%d sess:%p src:%s\n", 700 INOBJHDRVAL, msg->msg_rawbuffer, msg->msg_routable, msg->msg_cb.fct, msg->msg_cb.data, msg->msg_query, msg->msg_associated, msg->msg_sess, msg->msg_src_id?:"(nil)"); 693 701 } 694 702 … … 862 870 863 871 answer->msg_query = query; 872 query->msg_associated = 1; 864 873 865 874 return 0; … … 883 892 CHECK_PARAMS( CHECK_MSG(answer) ); 884 893 894 answer->msg_query->msg_associated = 0; 885 895 answer->msg_query = NULL; 886 896
Note: See TracChangeset
for help on using the changeset viewer.