|
11 | 11 | * Copyright (c) 2004-2005 The Regents of the University of California.
|
12 | 12 | * All rights reserved.
|
13 | 13 | * Copyright (c) 2008-2010 Oracle and/or its affiliates. All rights reserved
|
14 |
| - * Copyright (c) 2013-2015 Intel, Inc. All rights reserved |
| 14 | + * Copyright (c) 2013-2017 Intel, Inc. All rights reserved. |
15 | 15 | * Copyright (c) 2014-2016 Research Organization for Information Science
|
16 | 16 | * and Technology (RIST). All rights reserved.
|
17 | 17 | * Copyright (c) 2015-2016 Los Alamos National Security, LLC. All rights
|
@@ -828,33 +828,38 @@ void mca_btl_tcp_proc_accept(mca_btl_tcp_proc_t* btl_proc, struct sockaddr* addr
|
828 | 828 | /* No further use of this socket. Close it */
|
829 | 829 | CLOSE_THE_SOCKET(sd);
|
830 | 830 | {
|
831 |
| - size_t len = 1024; |
832 |
| - char* addr_str = (char*)malloc(len); |
833 |
| - if( NULL != addr_str ) { |
834 |
| - memset(addr_str, 0, len); |
835 |
| - for (size_t i = 0; i < btl_proc->proc_endpoint_count; i++) { |
836 |
| - mca_btl_base_endpoint_t* btl_endpoint = btl_proc->proc_endpoints[i]; |
837 |
| - if (btl_endpoint->endpoint_addr->addr_family != addr->sa_family) { |
838 |
| - continue; |
839 |
| - } |
840 |
| - |
841 |
| - if (addr_str[0] != '\0') { |
842 |
| - strncat(addr_str, ", ", len); |
843 |
| - len -= 2; |
844 |
| - } |
845 |
| - strncat(addr_str, inet_ntop(AF_INET6, (void*)(struct in6_addr*)&btl_endpoint->endpoint_addr->addr_inet, |
846 |
| - addr_str + 1024 - len, INET6_ADDRSTRLEN), len); |
847 |
| - len = 1024 - strlen(addr_str); |
| 831 | + char *addr_str=NULL, *tmp, pnet[1024]; |
| 832 | + for (size_t i = 0; i < btl_proc->proc_endpoint_count; i++) { |
| 833 | + mca_btl_base_endpoint_t* btl_endpoint = btl_proc->proc_endpoints[i]; |
| 834 | + if (btl_endpoint->endpoint_addr->addr_family != addr->sa_family) { |
| 835 | + continue; |
848 | 836 | }
|
| 837 | + if (AF_INET == addr->sa_family) { |
| 838 | + inet_ntop(AF_INET, (void*)(struct in_addr*)&btl_endpoint->endpoint_addr->addr_inet, pnet, 1024); |
| 839 | + } else if (AF_INET6 == addr->sa_family) { |
| 840 | + inet_ntop(AF_INET6, (void*)(struct in6_addr*)&btl_endpoint->endpoint_addr->addr_inet, pnet, 1024); |
| 841 | + } else { |
| 842 | + /* unrecognized family */ |
| 843 | + continue; |
| 844 | + } |
| 845 | + if (NULL == addr_str) { |
| 846 | + (void)asprintf(&tmp, "\n\t%s", pnet); |
| 847 | + } else { |
| 848 | + (void)asprintf(&tmp, "%s\n\t%s", addr_str, pnet); |
| 849 | + free(addr_str); |
| 850 | + } |
| 851 | + addr_str = tmp; |
849 | 852 | }
|
850 | 853 | opal_show_help("help-mpi-btl-tcp.txt", "dropped inbound connection",
|
851 | 854 | true, opal_process_info.nodename,
|
852 | 855 | getpid(),
|
853 | 856 | btl_proc->proc_opal->proc_hostname,
|
854 | 857 | OPAL_NAME_PRINT(btl_proc->proc_opal->proc_name),
|
855 | 858 | opal_net_get_hostname((struct sockaddr*)addr),
|
856 |
| - addr_str); |
857 |
| - free(addr_str); |
| 859 | + (NULL == addr_str) ? "NONE" : addr_str); |
| 860 | + if (NULL != addr_str) { |
| 861 | + free(addr_str); |
| 862 | + } |
858 | 863 | }
|
859 | 864 | OPAL_THREAD_UNLOCK(&btl_proc->proc_lock);
|
860 | 865 | }
|
|
0 commit comments