Mercurial > hg > freeDiameter
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; }