From db6bfd46d4dcb251d47899cd34ee90190327f15e Mon Sep 17 00:00:00 2001 From: Sean Hefty Date: Thu, 10 May 2012 11:28:17 -0700 Subject: [PATCH] Refresh of reuseaddr --- src/rsocket.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/rsocket.c b/src/rsocket.c index 2ffde9bb..de0ec3e5 100644 --- a/src/rsocket.c +++ b/src/rsocket.c @@ -1621,7 +1621,9 @@ int rsetsockopt(int socket, int level, int optname, ret = rdma_set_option(rs->cm_id, RDMA_OPTION_ID, RDMA_OPTION_ID_REUSEADDR, (void *) optval, optlen); - if (ret && errno == ENOSYS) + if (ret && ((errno == ENOSYS) || ((rs->state != rs_init) && + rs->cm_id->context && + (rs->cm_id->verbs->device->transport_type == IBV_TRANSPORT_IB)))) ret = 0; opt_on = *(int *) optval; break; -- 2.46.0