changeset 1242:b25ca6134bdc

Fix configuration dump when no extension is loaded
author Sebastien Decugis <sdecugis@freediameter.net>
date Mon, 11 Nov 2013 14:42:02 +0800
parents 12c3e0c7fa0b
children 7c5f662c4eef
files include/freeDiameter/libfdproto.h libfdcore/extensions.c
diffstat 2 files changed, 12 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/include/freeDiameter/libfdproto.h	Sat Nov 02 22:29:32 2013 +0800
+++ b/include/freeDiameter/libfdproto.h	Mon Nov 11 14:42:02 2013 +0800
@@ -252,7 +252,7 @@
 
 /* Some helpers macro for writing such *_dump routine */
 #define FD_DUMP_STD_PARAMS  buf, len, offset
-#define FD_DUMP_HANDLE_OFFSET()  size_t o = 0; if (!offset) offset = &o
+#define FD_DUMP_HANDLE_OFFSET()  size_t o = 0; if (!offset) offset = &o; if (buf && (*buf) && !(*offset)) **buf='\0'
 #define FD_DUMP_HANDLE_TRAIL()	while ((*buf) && (*offset > 0) && ((*buf)[*offset - 1] == '\n')) { *offset -= 1; (*buf)[*offset] = '\0'; }
 
 
--- a/libfdcore/extensions.c	Sat Nov 02 22:29:32 2013 +0800
+++ b/libfdcore/extensions.c	Mon Nov 11 14:42:02 2013 +0800
@@ -82,13 +82,17 @@
 	struct fd_list * li;
 	FD_DUMP_HANDLE_OFFSET();
 	
-	for (li = ext_list.next; li != &ext_list; li = li->next)
-	{
-		struct fd_ext_info * ext = (struct fd_ext_info *)li;
-		CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, "'%s'[%s], %sloaded%s",
-					ext->filename, 
-					ext->conffile?:"(no config file)", 
-					ext->handler ? "" : "not ", (li->next == &ext_list) ? "":"\n"), return NULL);
+	if (FD_IS_LIST_EMPTY(&ext_list)) {
+		CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, "-none-"), return NULL);
+	} else {
+		for (li = ext_list.next; li != &ext_list; li = li->next)
+		{
+			struct fd_ext_info * ext = (struct fd_ext_info *)li;
+			CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, "'%s'[%s], %sloaded%s",
+						ext->filename, 
+						ext->conffile?:"(no config file)", 
+						ext->handler ? "" : "not ", (li->next == &ext_list) ? "":"\n"), return NULL);
+		}
 	}
 	return *buf;
 }
"Welcome to our mercurial repository"