Mercurial > hg > freeDiameter
diff freeDiameter/p_out.c @ 455:7250e91f0662
Some additional flush enforcement to attempt to avoid some possible problems
author | Sebastien Decugis <sdecugis@nict.go.jp> |
---|---|
date | Thu, 29 Jul 2010 16:42:29 +0900 |
parents | f1484823cb4a |
children |
line wrap: on
line diff
--- a/freeDiameter/p_out.c Thu Jul 29 16:11:12 2010 +0900 +++ b/freeDiameter/p_out.c Thu Jul 29 16:42:29 2010 +0900 @@ -121,9 +121,11 @@ /* Send the message, log any error */ CHECK_FCT_DO( do_send(&msg, 0, peer->p_cnxctx, &peer->p_hbh, &peer->p_sr), { - fd_log_debug("An error occurred while sending this message, it is lost:\n"); - fd_msg_dump_walk(NONE, msg); - fd_msg_free(msg); + if (msg) { + fd_log_debug("An error occurred while sending this message, it was lost:\n"); + fd_msg_dump_walk(NONE, msg); + fd_msg_free(msg); + } } ); /* Loop */ @@ -160,10 +162,12 @@ /* Do send the message */ CHECK_FCT_DO( do_send(msg, flags, cnx, hbh, peer ? &peer->p_sr : NULL), { - fd_log_debug("An error occurred while sending this message, it is lost:\n"); - fd_msg_dump_walk(NONE, *msg); - fd_msg_free(*msg); - *msg = NULL; + if (msg) { + fd_log_debug("An error occurred while sending this message, it was lost:\n"); + fd_msg_dump_walk(NONE, *msg); + fd_msg_free(*msg); + *msg = NULL; + } } ); }