if( status != IB_SUCCESS )\r
{\r
/* Note: a REJ has been automatically sent. */\r
- IBSP_ERROR( ("ib_cm_rtu failed (0x%d)\n", status) );\r
+ IBSP_ERROR( ("ib_cm_rtu returned %s\n", ib_get_err_str( status )) );\r
IBSP_CHANGE_SOCKET_STATE( socket_info, IBSP_BIND );\r
+\r
+ /* We changed the state - remove from connection map. */\r
+ ibsp_conn_remove( socket_info );\r
+\r
ibsp_post_select_event( socket_info, FD_CONNECT, WSAETIMEDOUT );\r
}\r
else\r
status = ib_cm_rtu( p_cm_rep_rec->h_cm_rep, &cm_rtu );\r
if( status != IB_SUCCESS )\r
{\r
+ IBSP_CHANGE_SOCKET_STATE( socket_info, IBSP_BIND );\r
+\r
+ /* We changed the state - remove from connection map. */\r
+ ibsp_conn_remove( socket_info );\r
+\r
/* Note: a REJ has been automatically sent. */\r
- IBSP_ERROR( ("ib_cm_rtu failed (0x%d)\n", status) );\r
+ IBSP_ERROR( ("ib_cm_rtu returned %s\n", ib_get_err_str( status )) );\r
}\r
else\r
{\r
IBSP_CHANGE_SOCKET_STATE( socket_info, IBSP_CONNECTED );\r
}\r
SetEvent( socket_info->h_event );\r
+ break;\r
\r
default:\r
/* The socket might be closing */\r
\r
IBSP_ENTER( IBSP_DBG_CM );\r
\r
- IBSP_TRACE( IBSP_DBG_CONN, ("socket %p connect reject, reason=%d\n",\r
+ IBSP_TRACE( IBSP_DBG_CM, ("socket %p connect reject, reason=%d\n",\r
socket_info, cl_ntoh16(p_cm_rej_rec->rej_status)) );\r
\r
cl_spinlock_acquire( &socket_info->mutex );\r
\r
ret = ib_listen( socket_info );\r
if( !ret )\r
+ {\r
+ /* We changed the state - remove from connection map. */\r
+ ibsp_conn_remove( socket_info );\r
break;\r
+ }\r
\r
IBSP_ERROR_EXIT( ("ib_listen failed with %d\n", ret) );\r
/* Fall through. */\r