@@ -357,26 +357,21 @@ static int dm_send_request(struct sip_msg *msg, int *app_id, int *cmd_code,
357357 if (_dm_send_message (NULL , dmsg , & rpl ) != 0 )
358358 goto ret ;
359359
360- {
361- diameter_reply dm_rpl ;
362- memset (& dm_rpl , 0 , sizeof dm_rpl );
363- rc = _dm_get_message_response (rpl ,
364- (rpl_avps_pv ? & rpl_avps : NULL ), & dm_rpl );
365-
366- dm_last_result_code = dm_rpl .rc ;
367- dm_last_experimental_rc = dm_rpl .experimental_rc ;
368-
369- if (rpl_avps_pv ) {
370- pv_value_t val = {(str ){rpl_avps , strlen (rpl_avps )}, 0 , PV_VAL_STR };
371- if (pv_set_value (msg , rpl_avps_pv , 0 , & val ) != 0 )
372- LM_ERR ("failed to set output rpl_avps pv to: %s\n" , rpl_avps );
373- _dm_release_message_response (rpl , rpl_avps );
374- }
360+ rc = _dm_get_message_response (rpl , (rpl_avps_pv ? & rpl_avps : NULL ));
375361
376- if (rc != 0 ) {
377- LM_ERR ("Diameter request failed (rc: %d)\n" , rc );
378- return -3 ;
379- }
362+ dm_last_result_code = rpl -> rpl .rc ;
363+ dm_last_experimental_rc = rpl -> experimental_rc ;
364+
365+ if (rpl_avps_pv ) {
366+ pv_value_t val = {(str ){rpl_avps , strlen (rpl_avps )}, 0 , PV_VAL_STR };
367+ if (pv_set_value (msg , rpl_avps_pv , 0 , & val ) != 0 )
368+ LM_ERR ("failed to set output rpl_avps pv to: %s\n" , rpl_avps );
369+ _dm_release_message_response (rpl , rpl_avps );
370+ }
371+
372+ if (rc != 0 ) {
373+ LM_ERR ("Diameter request failed (rc: %d)\n" , rc );
374+ return -3 ;
380375 }
381376
382377 return 1 ;
@@ -541,15 +536,12 @@ static int dm_send_request_async_reply(int fd,
541536 LM_ERR ("could not resume async route!\n" );
542537 goto error ;
543538 }
544- {
545- diameter_reply dm_rpl ;
546- memset (& dm_rpl , 0 , sizeof dm_rpl );
547- ret = _dm_get_message_response (amsg -> cond ,
548- (amsg -> ret ? & rpl_avps : NULL ), & dm_rpl );
549539
550- dm_last_result_code = dm_rpl .rc ;
551- dm_last_experimental_rc = dm_rpl .experimental_rc ;
552- }
540+ ret = _dm_get_message_response (amsg -> cond ,
541+ (amsg -> ret ? & rpl_avps : NULL ));
542+
543+ dm_last_result_code = amsg -> cond -> rpl .rc ;
544+ dm_last_experimental_rc = amsg -> cond -> experimental_rc ;
553545
554546 if (ret == 0 )
555547 ret = 1 ;
0 commit comments