opal/if: open the if framework once in opal_init_util
the if framework is no more open in opal_if*, which plugs several memory leaks Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
Этот коммит содержится в:
родитель
188b9668e4
Коммит
c9aeccb84e
@ -1,7 +1,7 @@
|
||||
/*
|
||||
* Copyright (c) 2010-2013 Cisco Systems, Inc. All rights reserved.
|
||||
* Copyright (c) 2015 Intel, Inc. All rights reserved.
|
||||
* Copyright (c) 2015 Research Organization for Information Science
|
||||
* Copyright (c) 2015-2016 Research Organization for Information Science
|
||||
* and Technology (RIST). All rights reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
@ -79,6 +79,7 @@ static int opal_if_base_close(void)
|
||||
if (!frameopen) {
|
||||
return OPAL_SUCCESS;
|
||||
}
|
||||
frameopen = false;
|
||||
|
||||
while (NULL != (item = opal_list_remove_first(&opal_if_list))) {
|
||||
OBJ_RELEASE(item);
|
||||
|
@ -52,6 +52,7 @@
|
||||
#include "opal/mca/sec/base/base.h"
|
||||
#include "opal/mca/timer/base/base.h"
|
||||
#include "opal/mca/memchecker/base/base.h"
|
||||
#include "opal/mca/if/base/base.h"
|
||||
#include "opal/dss/dss.h"
|
||||
#include "opal/mca/shmem/base/base.h"
|
||||
#if OPAL_ENABLE_FT_CR == 1
|
||||
@ -450,6 +451,13 @@ opal_init_util(int* pargc, char*** pargv)
|
||||
goto return_error;
|
||||
}
|
||||
|
||||
/* initialize if framework */
|
||||
if (OPAL_SUCCESS != (ret = mca_base_framework_open(&opal_if_base_framework, 0))) {
|
||||
fprintf(stderr, "opal_if_base_open() failed -- process will likely abort (%s:%d, returned %d instead of OPAL_SUCCESS)\n",
|
||||
__FILE__, __LINE__, ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
return OPAL_SUCCESS;
|
||||
|
||||
return_error:
|
||||
|
@ -14,7 +14,7 @@
|
||||
* Copyright (c) 2010-2015 Cisco Systems, Inc. All rights reserved.
|
||||
* Copyright (c) 2014 Los Alamos National Security, LLC. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2015 Research Organization for Information Science
|
||||
* Copyright (c) 2015-2016 Research Organization for Information Science
|
||||
* and Technology (RIST). All rights reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
@ -100,10 +100,6 @@ int opal_ifnametoaddr(const char* if_name, struct sockaddr* addr, int length)
|
||||
{
|
||||
opal_if_t* intf;
|
||||
|
||||
if (OPAL_SUCCESS != mca_base_framework_open(&opal_if_base_framework, 0)) {
|
||||
return OPAL_ERROR;
|
||||
}
|
||||
|
||||
for (intf = (opal_if_t*)opal_list_get_first(&opal_if_list);
|
||||
intf != (opal_if_t*)opal_list_get_end(&opal_if_list);
|
||||
intf = (opal_if_t*)opal_list_get_next(intf)) {
|
||||
@ -125,10 +121,6 @@ int opal_ifnametoindex(const char* if_name)
|
||||
{
|
||||
opal_if_t* intf;
|
||||
|
||||
if (OPAL_SUCCESS != mca_base_framework_open(&opal_if_base_framework, 0)) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
for (intf = (opal_if_t*)opal_list_get_first(&opal_if_list);
|
||||
intf != (opal_if_t*)opal_list_get_end(&opal_if_list);
|
||||
intf = (opal_if_t*)opal_list_get_next(intf)) {
|
||||
@ -149,10 +141,6 @@ int16_t opal_ifnametokindex(const char* if_name)
|
||||
{
|
||||
opal_if_t* intf;
|
||||
|
||||
if (OPAL_SUCCESS != mca_base_framework_open(&opal_if_base_framework, 0)) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
for (intf = (opal_if_t*)opal_list_get_first(&opal_if_list);
|
||||
intf != (opal_if_t*)opal_list_get_end(&opal_if_list);
|
||||
intf = (opal_if_t*)opal_list_get_next(intf)) {
|
||||
@ -173,10 +161,6 @@ int opal_ifindextokindex(int if_index)
|
||||
{
|
||||
opal_if_t* intf;
|
||||
|
||||
if (OPAL_SUCCESS != mca_base_framework_open(&opal_if_base_framework, 0)) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
for (intf = (opal_if_t*)opal_list_get_first(&opal_if_list);
|
||||
intf != (opal_if_t*)opal_list_get_end(&opal_if_list);
|
||||
intf = (opal_if_t*)opal_list_get_next(intf)) {
|
||||
@ -207,10 +191,6 @@ int opal_ifaddrtoname(const char* if_addr, char* if_name, int length)
|
||||
return OPAL_ERR_NOT_FOUND;
|
||||
}
|
||||
|
||||
if (OPAL_SUCCESS != mca_base_framework_open(&opal_if_base_framework, 0)) {
|
||||
return OPAL_ERROR;
|
||||
}
|
||||
|
||||
memset(&hints, 0, sizeof(hints));
|
||||
hints.ai_family = PF_UNSPEC;
|
||||
hints.ai_socktype = SOCK_STREAM;
|
||||
@ -274,10 +254,6 @@ int16_t opal_ifaddrtokindex(const char* if_addr)
|
||||
int if_kernel_index;
|
||||
size_t len;
|
||||
|
||||
if (OPAL_SUCCESS != mca_base_framework_open(&opal_if_base_framework, 0)) {
|
||||
return OPAL_ERROR;
|
||||
}
|
||||
|
||||
memset(&hints, 0, sizeof(hints));
|
||||
hints.ai_family = PF_UNSPEC;
|
||||
hints.ai_socktype = SOCK_STREAM;
|
||||
@ -329,10 +305,6 @@ int16_t opal_ifaddrtokindex(const char* if_addr)
|
||||
|
||||
int opal_ifcount(void)
|
||||
{
|
||||
if (OPAL_SUCCESS != mca_base_framework_open(&opal_if_base_framework, 0)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
return opal_list_get_size(&opal_if_list);
|
||||
}
|
||||
|
||||
@ -346,10 +318,6 @@ int opal_ifbegin(void)
|
||||
{
|
||||
opal_if_t *intf;
|
||||
|
||||
if (OPAL_SUCCESS != mca_base_framework_open(&opal_if_base_framework, 0)) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
intf = (opal_if_t*)opal_list_get_first(&opal_if_list);
|
||||
if (NULL != intf)
|
||||
return intf->if_index;
|
||||
@ -367,10 +335,6 @@ int opal_ifnext(int if_index)
|
||||
{
|
||||
opal_if_t *intf;
|
||||
|
||||
if (OPAL_SUCCESS != mca_base_framework_open(&opal_if_base_framework, 0)) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
for (intf = (opal_if_t*)opal_list_get_first(&opal_if_list);
|
||||
intf != (opal_if_t*)opal_list_get_end(&opal_if_list);
|
||||
intf = (opal_if_t*)opal_list_get_next(intf)) {
|
||||
@ -399,10 +363,6 @@ int opal_ifindextoaddr(int if_index, struct sockaddr* if_addr, unsigned int leng
|
||||
{
|
||||
opal_if_t* intf;
|
||||
|
||||
if (OPAL_SUCCESS != mca_base_framework_open(&opal_if_base_framework, 0)) {
|
||||
return OPAL_ERROR;
|
||||
}
|
||||
|
||||
for (intf = (opal_if_t*)opal_list_get_first(&opal_if_list);
|
||||
intf != (opal_if_t*)opal_list_get_end(&opal_if_list);
|
||||
intf = (opal_if_t*)opal_list_get_next(intf)) {
|
||||
@ -423,10 +383,6 @@ int opal_ifkindextoaddr(int if_kindex, struct sockaddr* if_addr, unsigned int le
|
||||
{
|
||||
opal_if_t* intf;
|
||||
|
||||
if (OPAL_SUCCESS != mca_base_framework_open(&opal_if_base_framework, 0)) {
|
||||
return OPAL_ERROR;
|
||||
}
|
||||
|
||||
for (intf = (opal_if_t*)opal_list_get_first(&opal_if_list);
|
||||
intf != (opal_if_t*)opal_list_get_end(&opal_if_list);
|
||||
intf = (opal_if_t*)opal_list_get_next(intf)) {
|
||||
@ -448,10 +404,6 @@ int opal_ifindextomask(int if_index, uint32_t* if_mask, int length)
|
||||
{
|
||||
opal_if_t* intf;
|
||||
|
||||
if (OPAL_SUCCESS != mca_base_framework_open(&opal_if_base_framework, 0)) {
|
||||
return OPAL_ERROR;
|
||||
}
|
||||
|
||||
for (intf = (opal_if_t*)opal_list_get_first(&opal_if_list);
|
||||
intf != (opal_if_t*)opal_list_get_end(&opal_if_list);
|
||||
intf = (opal_if_t*)opal_list_get_next(intf)) {
|
||||
@ -512,10 +464,6 @@ int opal_ifindextoflags(int if_index, uint32_t* if_flags)
|
||||
{
|
||||
opal_if_t* intf;
|
||||
|
||||
if (OPAL_SUCCESS != mca_base_framework_open(&opal_if_base_framework, 0)) {
|
||||
return OPAL_ERROR;
|
||||
}
|
||||
|
||||
for (intf = (opal_if_t*)opal_list_get_first(&opal_if_list);
|
||||
intf != (opal_if_t*)opal_list_get_end(&opal_if_list);
|
||||
intf = (opal_if_t*)opal_list_get_next(intf)) {
|
||||
@ -538,10 +486,6 @@ int opal_ifindextoname(int if_index, char* if_name, int length)
|
||||
{
|
||||
opal_if_t *intf;
|
||||
|
||||
if (OPAL_SUCCESS != mca_base_framework_open(&opal_if_base_framework, 0)) {
|
||||
return OPAL_ERROR;
|
||||
}
|
||||
|
||||
for (intf = (opal_if_t*)opal_list_get_first(&opal_if_list);
|
||||
intf != (opal_if_t*)opal_list_get_end(&opal_if_list);
|
||||
intf = (opal_if_t*)opal_list_get_next(intf)) {
|
||||
@ -563,10 +507,6 @@ int opal_ifkindextoname(int if_kindex, char* if_name, int length)
|
||||
{
|
||||
opal_if_t *intf;
|
||||
|
||||
if (OPAL_SUCCESS != mca_base_framework_open(&opal_if_base_framework, 0)) {
|
||||
return OPAL_ERROR;
|
||||
}
|
||||
|
||||
for (intf = (opal_if_t*)opal_list_get_first(&opal_if_list);
|
||||
intf != (opal_if_t*)opal_list_get_end(&opal_if_list);
|
||||
intf = (opal_if_t*)opal_list_get_next(intf)) {
|
||||
@ -699,10 +639,6 @@ bool opal_ifisloopback(int if_index)
|
||||
{
|
||||
opal_if_t* intf;
|
||||
|
||||
if (OPAL_SUCCESS != mca_base_framework_open(&opal_if_base_framework, 0)) {
|
||||
return OPAL_ERROR;
|
||||
}
|
||||
|
||||
for (intf = (opal_if_t*)opal_list_get_first(&opal_if_list);
|
||||
intf != (opal_if_t*)opal_list_get_end(&opal_if_list);
|
||||
intf = (opal_if_t*)opal_list_get_next(intf)) {
|
||||
@ -779,10 +715,6 @@ void opal_ifgetaliases(char ***aliases)
|
||||
/* set default answer */
|
||||
*aliases = NULL;
|
||||
|
||||
if (OPAL_SUCCESS != mca_base_framework_open(&opal_if_base_framework, 0)) {
|
||||
return;
|
||||
}
|
||||
|
||||
for (intf = (opal_if_t*)opal_list_get_first(&opal_if_list);
|
||||
intf != (opal_if_t*)opal_list_get_end(&opal_if_list);
|
||||
intf = (opal_if_t*)opal_list_get_next(intf)) {
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user