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;
+				}
 			} );
 	}
 	
"Welcome to our mercurial repository"