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;
"Welcome to our mercurial repository"