1
1

Just pick a module to handle the incoming connection if no direct interface is identified. Siegmar hit it because his IP/netmask is disjoint, but a router was able to make the connection.

Refs trac:4627

This commit was SVN r31763.

The following Trac tickets were found above:
  Ticket 4627 --> https://svn.open-mpi.org/trac/ompi/ticket/4627
Этот коммит содержится в:
Ralph Castain 2014-05-14 19:23:02 +00:00
родитель a202139656
Коммит ad0e8f841d

Просмотреть файл

@ -837,9 +837,25 @@ static void connection_handler(int sd, short flags, void* cbdata)
}
}
if (!found) {
close(new_connection->fd); // close this so the remote end hangs up
opal_output(0, "%s CONNECTION REQUEST ON UNKNOWN INTERFACE",
ORTE_NAME_PRINT(ORTE_PROC_MY_NAME));
/* let's just assign it to the first module we have as we
* can't do any better - this is just an assignment to a
* specific software module to handle the connection
*/
for (i=0; i < mca_oob_tcp_component.modules.size; i++) {
if (NULL != (mod = (mca_oob_tcp_module_t*)opal_pointer_array_get_item(&mca_oob_tcp_component.modules, i))) {
/* process the connection */
mod->api.accept_connection((struct mca_oob_tcp_module_t*)mod, new_connection->fd,
(struct sockaddr*) &(new_connection->addr));
found = true;
break;
}
}
if (!found) {
ORTE_ERROR_LOG(ORTE_ERR_NOT_FOUND);
close(new_connection->fd); // close this so the remote end hangs up
opal_output(0, "%s CONNECTION REQUEST ON UNKNOWN INTERFACE",
ORTE_NAME_PRINT(ORTE_PROC_MY_NAME));
}
}
/* cleanup */
@ -921,9 +937,24 @@ static void connection_event_handler(int incoming_sd, short flags, void* cbdata)
}
}
if (!found) {
close(sd); // close this so the remote end hangs up
opal_output(0, "%s CONNECTION REQUEST ON UNKNOWN INTERFACE",
ORTE_NAME_PRINT(ORTE_PROC_MY_NAME));
/* let's just assign it to the first module we have as we
* can't do any better - this is just an assignment to a
* specific software module to handle the connection
*/
for (i=0; i < mca_oob_tcp_component.modules.size; i++) {
if (NULL != (mod = (mca_oob_tcp_module_t*)opal_pointer_array_get_item(&mca_oob_tcp_component.modules, i))) {
/* process the connection */
mod->api.accept_connection((struct mca_oob_tcp_module_t*)mod, sd, &addr);
found = true;
break;
}
}
if (!found) {
ORTE_ERROR_LOG(ORTE_ERR_NOT_FOUND);
close(sd); // close this so the remote end hangs up
opal_output(0, "%s CONNECTION REQUEST ON UNKNOWN INTERFACE",
ORTE_NAME_PRINT(ORTE_PROC_MY_NAME));
}
}
}