1
1

Properly set address reuse on the oob tcp listen socket.

Remove some temporary code.

This commit was SVN r2040.
Этот коммит содержится в:
Tim Prins 2004-08-11 16:02:59 +00:00
родитель 4e34dc89ed
Коммит 3db2f05dc3
3 изменённых файлов: 13 добавлений и 23 удалений

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

@ -140,6 +140,7 @@ static void mca_oob_tcp_accept(void)
static int mca_oob_tcp_create_listen(void)
{
int flags;
int optval;
struct sockaddr_in inaddr;
ompi_socklen_t addrlen;
@ -149,7 +150,14 @@ static int mca_oob_tcp_create_listen(void)
ompi_output(0,"mca_oob_tcp_component_init: socket() failed with errno=%d", errno);
return OMPI_ERROR;
}
optval = 1;
if(setsockopt(mca_oob_tcp_component.tcp_listen_sd, SOL_SOCKET,
SO_REUSEADDR, &optval, sizeof(optval)) < 0) {
ompi_output(0,
"mca_oob_tcp_finalize: setsockopt(SO_REUSEADDR) failed with errno=%d\n",
errno);
}
/* bind to all addresses and dynamically assigned port */
memset(&inaddr, 0, sizeof(inaddr));
inaddr.sin_family = AF_INET;
@ -305,18 +313,8 @@ mca_oob_t* mca_oob_tcp_init(bool *allow_multi_user_threads, bool *have_hidden_th
*/
int mca_oob_tcp_finalize(mca_oob_t* oob)
{
int optval;
mca_oob_tcp_peer_t * peer;
if (mca_oob_tcp_component.tcp_listen_sd >= 0) {
optval = 1;
if(setsockopt(mca_oob_tcp_component.tcp_listen_sd, SOL_SOCKET,
SO_REUSEADDR, &optval, sizeof(optval)) < 0) {
ompi_output(0,
"mca_oob_tcp_finalize: setsockopt(SO_REUSEADDR) failed with errno=%d\n",
errno);
}
/*** temporarily disable the removal of the revieve event
* to prevent segfaults */
ompi_event_del(&mca_oob_tcp_component.tcp_recv_event);
if(0 != close(mca_oob_tcp_component.tcp_listen_sd)) {
ompi_output(0, "mca_oob_tcp_finalize: error closing listen socket. errno=%d", errno);

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

@ -55,14 +55,7 @@ static void mca_oob_tcp_peer_construct(mca_oob_tcp_peer_t* peer)
*/
static void mca_oob_tcp_peer_destruct(mca_oob_tcp_peer_t * peer)
{
/* temporarily not delete the events to prevent segfaults */
mca_oob_tcp_peer_close(peer);
/*if(peer->peer_state != MCA_OOB_TCP_CLOSED &&
peer->peer_sd >= 0) {
ompi_event_del(&peer->peer_send_event);
close(peer->peer_sd);
peer->peer_sd = -1;
}*/
OBJ_DESTRUCT(&(peer->peer_send_queue));
OBJ_DESTRUCT(&(peer->peer_lock));
}

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

@ -77,7 +77,6 @@ void callback(int status, const ompi_process_name_t * peer,
void callback(int status, const ompi_process_name_t * peer,
const struct iovec * msg, int count, int tag, void * cbdata)
{
fprintf(stderr, "caqllback called on num %d.\n", (int) cbdata);
if(0 != tag) {
test_failure("Bad tag.");
}
@ -155,8 +154,8 @@ int main(int argc, char ** argv)
} else {
test_success();
}
if(!compare_iovec(recv_msg1, send_msg1, 3)) {
test_failure("compare 1 is wrong");
if(!compare_iovec(recv_msg1, send_msg1, 4)) {
test_failure("compare 2 is wrong");
}
break;
case MSG_TYPE_2:
@ -165,8 +164,8 @@ int main(int argc, char ** argv)
} else {
test_success();
}
if(!compare_iovec(recv_msg1, send_msg1, 3)) {
test_failure("compare 1 is wrong");
if(!compare_iovec(recv_msg2, send_msg2, 3)) {
test_failure("compare 3 is wrong");
}
break;
default: