# HG changeset patch # User Sebastien Decugis # Date 1384152122 -28800 # Node ID b25ca6134bdc9663c257e05bcf5eee0cee0f4bc6 # Parent 12c3e0c7fa0bf2c9fa9247cdc8f15f086a1d5a65 Fix configuration dump when no extension is loaded diff -r 12c3e0c7fa0b -r b25ca6134bdc include/freeDiameter/libfdproto.h --- 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'; } diff -r 12c3e0c7fa0b -r b25ca6134bdc libfdcore/extensions.c --- 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; }