Коммит
1ae8d59404
@ -30,7 +30,7 @@ greek=
|
||||
# command, or with the date (if "git describe" fails) in the form of
|
||||
# "date<date>".
|
||||
|
||||
repo_rev=gitffa464b
|
||||
repo_rev=git877b4d8
|
||||
|
||||
# If tarball_version is not empty, it is used as the version string in
|
||||
# the tarball filename, regardless of all other versions listed in
|
||||
@ -44,7 +44,7 @@ tarball_version=
|
||||
|
||||
# The date when this release was created
|
||||
|
||||
date="Oct 26, 2017"
|
||||
date="Oct 30, 2017"
|
||||
|
||||
# The shared library version of each of PMIx's public libraries.
|
||||
# These versions are maintained in accordance with the "Library
|
||||
|
@ -13,7 +13,7 @@
|
||||
# MCA_zlib_CONFIG([action-if-found], [action-if-not-found])
|
||||
# --------------------------------------------------------------------
|
||||
AC_DEFUN([PMIX_ZLIB_CONFIG],[
|
||||
PMIX_VAR_SCOPE_PUSH([pmix_zlib_dir pmix_zlib_libdir])
|
||||
PMIX_VAR_SCOPE_PUSH([pmix_zlib_dir pmix_zlib_libdir pmix_zlib_standard_lib_location pmix_zlib_standard_header_location])
|
||||
|
||||
AC_ARG_WITH([zlib],
|
||||
[AC_HELP_STRING([--with-zlib=DIR],
|
||||
@ -24,28 +24,32 @@ AC_DEFUN([PMIX_ZLIB_CONFIG],[
|
||||
[Search for zlib libraries in DIR ])])
|
||||
|
||||
pmix_zlib_support=0
|
||||
|
||||
if test "$with_zlib" != "no"; then
|
||||
AC_MSG_CHECKING([for zlib in])
|
||||
if test ! -z "$with_zlib" && test "$with_zlib" != "yes"; then
|
||||
pmix_zlib_dir=$with_zlib
|
||||
pmix_zlib_standard_header_location=no
|
||||
if test -d $with_zlib/lib; then
|
||||
pmix_zlib_libdir=$with_zlib/lib
|
||||
elif test -d $with_zlib/lib64; then
|
||||
pmix_zlib_libdir=$with_zlib/lib64
|
||||
else
|
||||
AC_MSG_RESULT([Could not find $with_zlib/lib or $with_zlib/lib64])
|
||||
AC_MSG_ERROR([Can not continue])
|
||||
fi
|
||||
AC_MSG_RESULT([$pmix_zlib_dir and $pmix_zlib_libdir])
|
||||
pmix_zlib_standard_lib_location=no
|
||||
AS_IF([test -z "$with_zlib_libdir" || test "$with_zlib_libdir" = "yes"],
|
||||
[if test -d $with_zlib/lib; then
|
||||
pmix_zlib_libdir=$with_zlib/lib
|
||||
elif test -d $with_zlib/lib64; then
|
||||
pmix_zlib_libdir=$with_zlib/lib64
|
||||
else
|
||||
AC_MSG_RESULT([Could not find $with_zlib/lib or $with_zlib/lib64])
|
||||
AC_MSG_ERROR([Can not continue])
|
||||
fi
|
||||
AC_MSG_RESULT([$pmix_zlib_dir and $pmix_zlib_libdir])],
|
||||
[AC_MSG_RESULT([$with_zlib_libdir])])
|
||||
else
|
||||
AC_MSG_RESULT([(default search paths)])
|
||||
pmix_zlib_standard_header_location=yes
|
||||
pmix_zlib_standard_lib_location=yes
|
||||
fi
|
||||
AS_IF([test ! -z "$with_zlib_libdir" && test "$with_zlib_libdir" != "yes"],
|
||||
[pmix_zlib_libdir="$with_zlib_libdir"
|
||||
pmix_zlib_standard_lib_location=no],
|
||||
[pmix_zlib_standard_lib_location=yes])
|
||||
pmix_zlib_standard_lib_location=no])
|
||||
|
||||
PMIX_CHECK_PACKAGE([pmix_zlib],
|
||||
[zlib.h],
|
||||
|
@ -79,6 +79,7 @@ struct pmix_ptl_globals_t {
|
||||
bool listen_thread_active;
|
||||
pmix_list_t listeners;
|
||||
uint32_t current_tag;
|
||||
size_t max_msg_size;
|
||||
};
|
||||
typedef struct pmix_ptl_globals_t pmix_ptl_globals_t;
|
||||
|
||||
|
@ -59,6 +59,13 @@ int pmix_ptl_base_output = -1;
|
||||
|
||||
static int pmix_ptl_register(pmix_mca_base_register_flag_t flags)
|
||||
{
|
||||
pmix_ptl_globals.max_msg_size = 8000000;
|
||||
pmix_mca_base_var_register("pmix", "ptl", "base", "max_msg_size",
|
||||
"Max size (in bytes) of a client/server msg",
|
||||
PMIX_MCA_BASE_VAR_TYPE_SIZE_T, NULL, 0, 0,
|
||||
PMIX_INFO_LVL_2,
|
||||
PMIX_MCA_BASE_VAR_SCOPE_READONLY,
|
||||
&pmix_ptl_globals.max_msg_size);
|
||||
return PMIX_SUCCESS;
|
||||
}
|
||||
|
||||
|
@ -44,6 +44,7 @@
|
||||
#include "src/client/pmix_client_ops.h"
|
||||
#include "src/server/pmix_server_ops.h"
|
||||
#include "src/util/error.h"
|
||||
#include "src/util/show_help.h"
|
||||
|
||||
#include "src/mca/ptl/base/base.h"
|
||||
|
||||
@ -459,6 +460,12 @@ void pmix_ptl_base_recv_handler(int sd, short flags, void *cbdata)
|
||||
"ptl:base:recv:handler allocate data region of size %lu",
|
||||
(unsigned long)peer->recv_msg->hdr.nbytes);
|
||||
/* allocate the data region */
|
||||
if (pmix_ptl_globals.max_msg_size < peer->recv_msg->hdr.nbytes) {
|
||||
pmix_show_help("help-pmix-runtime.txt", "ptl:msg_size", true,
|
||||
(unsigned long)peer->recv_msg->hdr.nbytes,
|
||||
(unsigned long)pmix_ptl_globals.max_msg_size);
|
||||
goto err_close;
|
||||
}
|
||||
peer->recv_msg->data = (char*)malloc(peer->recv_msg->hdr.nbytes);
|
||||
memset(peer->recv_msg->data, 0, peer->recv_msg->hdr.nbytes);
|
||||
/* point to it */
|
||||
|
@ -58,3 +58,12 @@ by any of the following:
|
||||
that includes at least one usable plugin for this framework.
|
||||
|
||||
Please check your installation and environment.
|
||||
#
|
||||
[ptl:msg_size]
|
||||
A received msg header indicates a size that is too large:
|
||||
|
||||
Requested size: %lu
|
||||
Size limit: %lu
|
||||
|
||||
If you believe this msg is legitimate, please increase the
|
||||
max msg size via the ptl_base_max_msg_size parameter.
|
||||
|
@ -403,6 +403,7 @@ char* pmix_find_absolute_path( char* app_name )
|
||||
char* resolved_path = (char*)malloc(PMIX_PATH_MAX);
|
||||
if (NULL == realpath( abs_app_name, resolved_path )) {
|
||||
free(resolved_path);
|
||||
free(abs_app_name);
|
||||
return NULL;
|
||||
}
|
||||
if( abs_app_name != app_name ) {
|
||||
|
@ -269,13 +269,13 @@ int16_t pmix_ifaddrtokindex(const char* if_addr)
|
||||
for (r = res; r != NULL; r = r->ai_next) {
|
||||
PMIX_LIST_FOREACH(intf, &pmix_if_list, pmix_pif_t) {
|
||||
if (AF_INET == r->ai_family && AF_INET == intf->af_family) {
|
||||
struct sockaddr ipv4, intv4;
|
||||
memset(&ipv4, 0, sizeof(struct sockaddr));
|
||||
struct sockaddr_in ipv4, intv4;
|
||||
memset(&ipv4, 0, sizeof(struct sockaddr_in));
|
||||
len = (r->ai_addrlen < sizeof(struct sockaddr_in)) ? r->ai_addrlen : sizeof(struct sockaddr_in);
|
||||
memcpy(&ipv4, r->ai_addr, len);
|
||||
memset(&intv4, 0, sizeof(struct sockaddr));
|
||||
memcpy(&intv4, &intf->if_addr, sizeof(struct sockaddr));
|
||||
if (pmix_net_samenetwork(&ipv4, &intv4, intf->if_mask)) {
|
||||
memset(&intv4, 0, sizeof(struct sockaddr_in));
|
||||
memcpy(&intv4, &intf->if_addr, sizeof(struct sockaddr_in));
|
||||
if (pmix_net_samenetwork((struct sockaddr*)&ipv4, (struct sockaddr*)&intv4, intf->if_mask)) {
|
||||
if_kernel_index = intf->if_kernel_index;
|
||||
freeaddrinfo (res);
|
||||
return if_kernel_index;
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user