Mercurial > hg > freeDiameter
diff libfdproto/utils.c @ 1085:7d7266115a34
Cleaning of the traces in progress
author | Sebastien Decugis <sdecugis@freediameter.net> |
---|---|
date | Fri, 03 May 2013 19:20:56 +0800 |
parents | 6b7966ea27fb |
children | 44f3e48dfe27 |
line wrap: on
line diff
--- a/libfdproto/utils.c Fri May 03 15:33:57 2013 +0800 +++ b/libfdproto/utils.c Fri May 03 19:20:56 2013 +0800 @@ -35,33 +35,44 @@ #include "fdproto-internal.h" -char * fd_sa_dump_node(char * buf, size_t bufsize, sSA * sa, int flags) +DECLARE_FD_DUMP_PROTOTYPE(fd_sa_dump_node, sSA * sa, int flags) { char addrbuf[INET6_ADDRSTRLEN]; + size_t o = 0; + if (!offset) + offset = &o; + if (sa) { int rc = getnameinfo(sa, sSAlen( sa ), addrbuf, sizeof(addrbuf), NULL, 0, flags); - if (rc) - snprintf(buf, bufsize, "%s", gai_strerror(rc)); - else - snprintf(buf, bufsize, "%s", &addrbuf[0]); + if (rc) { + CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, "%s", gai_strerror(rc)), return NULL); + } else { + CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, "%s", &addrbuf[0]), return NULL); + } } else { - snprintf(buf, bufsize, "(NULL / ANY)"); + CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, "(NULL / ANY)"), return NULL); } - return buf; + + return *buf; } -char * fd_sa_dump_node_serv(char * buf, size_t bufsize, sSA * sa, int flags) +DECLARE_FD_DUMP_PROTOTYPE(fd_sa_dump_node_serv, sSA * sa, int flags) { char addrbuf[INET6_ADDRSTRLEN]; char servbuf[32]; + size_t o = 0; + if (!offset) + offset = &o; + if (sa) { int rc = getnameinfo(sa, sSAlen( sa ), addrbuf, sizeof(addrbuf), servbuf, sizeof(servbuf), flags); - if (rc) - snprintf(buf, bufsize, "%s", gai_strerror(rc)); - else - snprintf(buf, bufsize, "%s", &addrbuf[0]); + if (rc) { + CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, "%s", gai_strerror(rc)), return NULL); + } else { + CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, "%s", &addrbuf[0]), return NULL); + } } else { - snprintf(buf, bufsize, "(NULL / ANY)"); + CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, "(NULL / ANY)"), return NULL); } - return buf; + return *buf; }