changeset 227:80a7e65167c4

Cleanup verbosity and fix unintialized variable
author Sebastien Decugis <sdecugis@nict.go.jp>
date Tue, 02 Mar 2010 14:17:15 +0900
parents 406f74f0789b
children dcb58243e91f
files freeDiameter/cnxctx.c freeDiameter/sctp.c freeDiameter/sctps.c freeDiameter/server.c freeDiameter/tcp.c
diffstat 5 files changed, 79 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/freeDiameter/cnxctx.c	Tue Mar 02 11:19:11 2010 +0900
+++ b/freeDiameter/cnxctx.c	Tue Mar 02 14:17:15 2010 +0900
@@ -286,14 +286,31 @@
 /* Client side: connect to a remote server -- cancelable */
 struct cnxctx * fd_cnx_cli_connect_tcp(sSA * sa /* contains the port already */, socklen_t addrlen)
 {
-	int sock;
+	int sock = 0;
 	struct cnxctx * cnx = NULL;
 	
 	TRACE_ENTRY("%p %d", sa, addrlen);
 	CHECK_PARAMS_DO( sa && addrlen, return NULL );
 	
 	/* Create the socket and connect, which can take some time and/or fail */
-	CHECK_FCT_DO( fd_tcp_client( &sock, sa, addrlen ), return NULL );
+	{
+		int ret = fd_tcp_client( &sock, sa, addrlen );
+		if (ret != 0) {
+			int lvl;
+			switch (ret) {
+				case ECONNREFUSED:
+
+					/* "Normal" errors */
+					lvl = FULL;
+					break;
+				default:
+					lvl = INFO;
+			}
+			/* Some errors are expected, we log at different level */
+			TRACE_DEBUG( lvl, "fd_tcp_client returned an error: %s", strerror(ret));
+			return NULL;
+		}
+	}
 	
 	if (TRACE_BOOL(INFO)) {
 		fd_log_debug("Connection established to server '");
@@ -343,14 +360,31 @@
 	ASSERT(0);
 	CHECK_FCT_DO( ENOTSUP, return NULL);
 #else /* DISABLE_SCTP */
-	int sock;
+	int sock = 0;
 	struct cnxctx * cnx = NULL;
 	sSS primary;
 	
 	TRACE_ENTRY("%p", list);
 	CHECK_PARAMS_DO( list && !FD_IS_LIST_EMPTY(list), return NULL );
 	
-	CHECK_FCT_DO( fd_sctp_client( &sock, no_ip6, port, list ), return NULL );
+	{
+		int ret = fd_sctp_client( &sock, no_ip6, port, list );
+		if (ret != 0) {
+			int lvl;
+			switch (ret) {
+				case ECONNREFUSED:
+
+					/* "Normal" errors */
+					lvl = FULL;
+					break;
+				default:
+					lvl = INFO;
+			}
+			/* Some errors are expected, we log at different level */
+			TRACE_DEBUG( lvl, "fd_sctp_client returned an error: %s", strerror(ret));
+			return NULL;
+		}
+	}
 	
 	/* Once the socket is created successfuly, prepare the remaining of the cnx */
 	CHECK_MALLOC_DO( cnx = fd_cnx_init(1), { shutdown(sock, SHUT_RDWR); close(sock); return NULL; } );
--- a/freeDiameter/sctp.c	Tue Mar 02 11:19:11 2010 +0900
+++ b/freeDiameter/sctp.c	Tue Mar 02 14:17:15 2010 +0900
@@ -840,11 +840,27 @@
 	}
 	
 #ifdef SCTP_CONNECTX_4_ARGS
-	CHECK_SYS_DO( sctp_connectx(*sock, sar.sa, count, NULL), { ret = errno; goto fail; } );
+	ret = sctp_connectx(*sock, sar.sa, count, NULL);
 #else /* SCTP_CONNECTX_4_ARGS */
-	CHECK_SYS_DO( sctp_connectx(*sock, sar.sa, count), { ret = errno; goto fail; } );
+	ret = sctp_connectx(*sock, sar.sa, count);
 #endif /* SCTP_CONNECTX_4_ARGS */
 	
+	if (ret < 0) {
+		int lvl;
+		switch (ret = errno) {
+			case ECONNREFUSED:
+			
+				/* "Normal" errors */
+				lvl = FULL;
+				break;
+			default:
+				lvl = INFO;
+		}
+		/* Some errors are expected, we log at different level */
+		TRACE_DEBUG( lvl, "sctp_connectx returned an error: %s", strerror(ret));
+		goto fail;
+	}
+	
 	free(sar.buf); sar.buf = NULL;
 	
 	/* Set the remaining sockopts */
--- a/freeDiameter/sctps.c	Tue Mar 02 11:19:11 2010 +0900
+++ b/freeDiameter/sctps.c	Tue Mar 02 14:17:15 2010 +0900
@@ -237,7 +237,7 @@
 	struct fd_list	 list;	/* list of sr_data, ordered by key.size then key.data */
 	pthread_rwlock_t lock;
 	struct cnxctx   *parent;
-	/* Add another list to chain in a global list to implement a garbage collector on sessions -- TODO */
+	/* Add another list to chain in a global list to implement a garbage collector on sessions -- TODO if needed */
 };
 
 /* Saved master session data for resuming sessions */
--- a/freeDiameter/server.c	Tue Mar 02 11:19:11 2010 +0900
+++ b/freeDiameter/server.c	Tue Mar 02 14:17:15 2010 +0900
@@ -273,7 +273,7 @@
 		if (empty_conf_ep) {
 			(void) fd_cnx_getendpoints(s->conn, &fd_g_config->cnf_endpoints, NULL);
 			if (TRACE_BOOL(FULL)){
-				fd_log_debug("Server bound on the following addresses :\n");
+				fd_log_debug("  Local server address(es) :\n");
 				fd_ep_dump( 5, &fd_g_config->cnf_endpoints );
 			}
 		}
--- a/freeDiameter/tcp.c	Tue Mar 02 11:19:11 2010 +0900
+++ b/freeDiameter/tcp.c	Tue Mar 02 14:17:15 2010 +0900
@@ -135,10 +135,29 @@
 	TRACE_DEBUG_sSA(FULL, "Attempting TCP connection with peer: ", sa, NI_NUMERICHOST | NI_NUMERICSERV, "..." );
 	
 	/* Try connecting to the remote address */
-	CHECK_SYS_DO( connect(s, sa, salen), { ret = errno; close(s); s = -1; } );
+	ret = connect(s, sa, salen);
+	
+	pthread_cleanup_pop(0);
+	
+	if (ret < 0) {
+		int lvl;
+		switch (ret = errno) {
+			case ECONNREFUSED:
+			
+				/* "Normal" errors */
+				lvl = FULL;
+				break;
+			default:
+				lvl = INFO;
+		}
+		/* Some errors are expected, we log at different level */
+		TRACE_DEBUG( lvl, "connect returned an error: %s", strerror(ret));
+		CHECK_SYS_DO( close(s), /* continue */ );
+		*sock = -1;
+		return ret;
+	}
 	
 	/* Done! */
-	pthread_cleanup_pop(0);
 	*sock = s;
 	return ret;
 }
"Welcome to our mercurial repository"