Mercurial > hg > freeDiameter
comparison libfdproto/utils.c @ 1122:d4371b7aa0ff
New CMake option: ADDRESS_AVP_INCLUDE_PORT. Turn off for standard Host-IP-Address AVPs
author | Sebastien Decugis <sdecugis@freediameter.net> |
---|---|
date | Tue, 14 May 2013 18:01:31 +0800 |
parents | 79dd22145f52 |
children |
comparison
equal
deleted
inserted
replaced
1121:ccbd1426e04a | 1122:d4371b7aa0ff |
---|---|
33 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * | 33 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * |
34 *********************************************************************************************************/ | 34 *********************************************************************************************************/ |
35 | 35 |
36 #include "fdproto-internal.h" | 36 #include "fdproto-internal.h" |
37 | 37 |
38 DECLARE_FD_DUMP_PROTOTYPE(fd_sa_dump_node, sSA * sa, int flags) | 38 DECLARE_FD_DUMP_PROTOTYPE(fd_sa_dump, sSA * sa, int flags) |
39 { | 39 { |
40 char addrbuf[INET6_ADDRSTRLEN]; | 40 char addrbuf[INET6_ADDRSTRLEN]; |
41 char servbuf[32]; | |
42 int rc; | |
41 FD_DUMP_HANDLE_OFFSET(); | 43 FD_DUMP_HANDLE_OFFSET(); |
42 | 44 |
45 servbuf[0] = 0; | |
46 | |
43 if (sa) { | 47 if (sa) { |
44 int rc = getnameinfo(sa, sSAlen( sa ), addrbuf, sizeof(addrbuf), NULL, 0, flags); | 48 if (sSAport(sa)) { |
49 rc = getnameinfo(sa, sSAlen( sa ), addrbuf, sizeof(addrbuf), servbuf, sizeof(servbuf), flags); | |
50 } else { | |
51 rc = getnameinfo(sa, sSAlen( sa ), addrbuf, sizeof(addrbuf), NULL, 0, flags); | |
52 } | |
45 if (rc) { | 53 if (rc) { |
46 CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, "%s", gai_strerror(rc)), return NULL); | 54 CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, "%s", gai_strerror(rc)), return NULL); |
47 } else { | 55 } else { |
48 CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, "%s", &addrbuf[0]), return NULL); | 56 if (servbuf[0]) { |
49 } | 57 CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, "%s(%s)", &addrbuf[0], &servbuf[0]), return NULL); |
50 } else { | 58 } else { |
51 CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, "(NULL / ANY)"), return NULL); | 59 CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, "%s", &addrbuf[0]), return NULL); |
52 } | 60 } |
53 | |
54 return *buf; | |
55 } | |
56 | |
57 DECLARE_FD_DUMP_PROTOTYPE(fd_sa_dump_node_serv, sSA * sa, int flags) | |
58 { | |
59 char addrbuf[INET6_ADDRSTRLEN]; | |
60 char servbuf[32]; | |
61 FD_DUMP_HANDLE_OFFSET(); | |
62 | |
63 if (sa) { | |
64 int rc = getnameinfo(sa, sSAlen( sa ), addrbuf, sizeof(addrbuf), servbuf, sizeof(servbuf), flags); | |
65 if (rc) { | |
66 CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, "%s", gai_strerror(rc)), return NULL); | |
67 } else { | |
68 CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, "%s(%s)", &addrbuf[0], &servbuf[0]), return NULL); | |
69 } | 61 } |
70 } else { | 62 } else { |
71 CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, "(NULL / ANY)"), return NULL); | 63 CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, "(NULL / ANY)"), return NULL); |
72 } | 64 } |
73 return *buf; | 65 return *buf; |