GUID SANRDMARead = WSAID_RDMAREAD;\r
GUID SANMemoryRegistrationCacheCallback = WSAID_MEMORYREGISTRATIONCACHECALLBACK;\r
\r
- CL_ENTER( IBSP_DBG_OPT, gdbg_lvl );\r
+ IBSP_ENTER( IBSP_DBG_OPT );\r
\r
UNUSED_PARAM( cbInBuffer );\r
UNUSED_PARAM( lpOverlapped );\r
UNUSED_PARAM( lpCompletionRoutine );\r
UNUSED_PARAM( lpThreadId );\r
\r
- fzprint(("%s():%d:0x%x:0x%x: socket=0x%p overlapped=0x%p\n", __FUNCTION__,\r
- __LINE__, GetCurrentProcessId(), GetCurrentThreadId(), s, lpOverlapped));\r
-\r
if( dwIoControlCode == SIO_GET_EXTENSION_FUNCTION_POINTER )\r
{\r
/* This a special case. The socket handle passed is not valid. */\r
- CL_TRACE( IBSP_DBG_OPT, gdbg_lvl, ("Get extension function pointer\n") );\r
+ IBSP_TRACE1( IBSP_DBG_OPT, ("Get extension function pointer\n") );\r
\r
if( memcmp( lpvInBuffer, &SANRegisterMemory, sizeof(GUID) ) == 0 )\r
{\r
{\r
if( no_read )\r
{\r
+ IBSP_TRACE( IBSP_DBG_WARN | IBSP_DBG_OPT,\r
+ ("RDMA_READ disabled.\n") );\r
*lpErrno = WSAEOPNOTSUPP;\r
return SOCKET_ERROR;\r
}\r
}\r
else\r
{\r
- CL_EXIT_ERROR( IBSP_DBG_OPT, gdbg_lvl, ("invalid extension GUID\n") );\r
+ IBSP_ERROR_EXIT( ("invalid extension GUID\n") );\r
*lpErrno = WSAEINVAL;\r
return SOCKET_ERROR;\r
}\r
+ IBSP_EXIT( IBSP_DBG_OPT );\r
return 0;\r
}\r
\r
{\r
/* Seen in real life with overlap/client test. \r
* The switch closes a socket then calls this. Why? */\r
- IBSP_ERROR_EXIT( ("invalid socket handle %x\n", s) );\r
+ IBSP_TRACE_EXIT( IBSP_DBG_WARN | IBSP_DBG_IO,\r
+ ("invalid socket handle %x\n", s) );\r
*lpErrno = WSAENOTSOCK;\r
return SOCKET_ERROR;\r
}\r
CL_ASSERT( lpCompletionRoutine == NULL );\r
CL_ASSERT( lpOverlapped != NULL );\r
\r
+ cl_spinlock_acquire( &socket_info->mutex );\r
/* Check the state of the socket */\r
- if( socket_info->socket_state != IBSP_CONNECTED )\r
+ switch( socket_info->socket_state )\r
{\r
+ case IBSP_CONNECTED:\r
+ case IBSP_DISCONNECTED:\r
+ break;\r
+\r
+ default:\r
IBSP_ERROR_EXIT( ("Socket is not in connected socket_state \n") );\r
*lpErrno = WSAENOTCONN;\r
return SOCKET_ERROR;\r
}\r
+ cl_spinlock_release( &socket_info->mutex );\r
\r
if( socket_info->qp_error )\r
{\r
#ifdef _DEBUG_\r
if( lpBuffers[0].len >= 40 )\r
{\r
- debug_dump_buffer( IBSP_DBG_WQ, gdbg_lvl, "SEND", lpBuffers[0].buf, 40 );\r
+ debug_dump_buffer( IBSP_DBG_WQ | IBSP_DBG_LEVEL4, "SEND",\r
+ lpBuffers[0].buf, 40 );\r
}\r
#endif\r
\r
{\r
struct ibsp_socket_info *socket_info = NULL;\r
\r
- CL_ENTER( IBSP_DBG_CONN, gdbg_lvl );\r
+ IBSP_ENTER( IBSP_DBG_SI );\r
\r
UNUSED_PARAM( g );\r
\r
if( af != AF_INET )\r
{\r
- CL_ERROR( IBSP_DBG_CONN, gdbg_lvl,\r
+ IBSP_ERROR(\r
("bad family %d instead of %d\n", af, AF_INET) );\r
*lpErrno = WSAEAFNOSUPPORT;\r
goto error;\r
\r
if( type != SOCK_STREAM )\r
{\r
- CL_ERROR( IBSP_DBG_CONN, gdbg_lvl,\r
+ IBSP_ERROR(\r
("bad type %d instead of %d\n", type, SOCK_STREAM) );\r
*lpErrno = WSAEPROTOTYPE;\r
goto error;\r
\r
if( protocol != IPPROTO_TCP )\r
{\r
- CL_ERROR( IBSP_DBG_CONN, gdbg_lvl,\r
+ IBSP_ERROR(\r
("bad protocol %d instead of %d\n", protocol, IPPROTO_TCP) );\r
*lpErrno = WSAEPROTONOSUPPORT;\r
goto error;\r
\r
if( (dwFlags != WSA_FLAG_OVERLAPPED) )\r
{\r
- CL_ERROR( IBSP_DBG_CONN, gdbg_lvl,\r
+ IBSP_ERROR(\r
("dwFlags is not WSA_FLAG_OVERLAPPED (%x)\n", dwFlags) );\r
*lpErrno = WSAEINVAL;\r
goto error;\r
socket_info = create_socket_info();\r
if( socket_info == NULL )\r
{\r
- CL_ERROR( IBSP_DBG_CONN, gdbg_lvl, ("create_socket_info return NULL\n") );\r
+ IBSP_ERROR( ("create_socket_info return NULL\n") );\r
*lpErrno = WSAENOBUFS;\r
goto error;\r
}\r
ret = setup_duplicate_socket( socket_info, lpProtocolInfo->dwProviderReserved );\r
if( ret )\r
{\r
- CL_ERROR( IBSP_DBG_CONN, gdbg_lvl,\r
+ IBSP_ERROR(\r
("setup_duplicate_socket failed with %d\n",ret) );\r
*lpErrno = ret;\r
goto error;\r
\r
if( socket_info->switch_socket != INVALID_SOCKET )\r
{\r
- fzprint(("%s():%d:0x%x:0x%x: socket_info=0x%p switch_socket=0x%p \n",\r
- __FUNCTION__, __LINE__, GetCurrentProcessId(), GetCurrentThreadId(),\r
- socket_info, socket_info->switch_socket));\r
+ IBSP_TRACE1( IBSP_DBG_SI, ("socket_info=0x%p switch_socket=0x%p \n",\r
+ socket_info, socket_info->switch_socket) );\r
\r
STAT_INC( wpusocket_num );\r
}\r
\r
if( socket_info->switch_socket == INVALID_SOCKET )\r
{\r
- CL_ERROR( IBSP_DBG_CONN, gdbg_lvl,\r
+ IBSP_ERROR(\r
("WPUCreateSocketHandle() failed: %d\n", *lpErrno) );\r
/* lpErrno has just been set */\r
goto error;\r
fzprint(("%s():%d:0x%x:0x%x: socket=0x%p\n", __FUNCTION__,\r
__LINE__, GetCurrentProcessId(), GetCurrentThreadId(), socket_info));\r
\r
- CL_TRACE_EXIT( IBSP_DBG_CONN, gdbg_lvl,\r
+ IBSP_TRACE_EXIT( IBSP_DBG_SI,\r
("returning socket handle %p\n", socket_info) );\r
\r
return (SOCKET) socket_info;\r
\r
CL_ASSERT( *lpErrno != 0 );\r
\r
- CL_EXIT_ERROR( IBSP_DBG_CONN, gdbg_lvl, ("Returning error %d\n", *lpErrno) );\r
+ IBSP_ERROR_EXIT( ("Returning error %d\n", *lpErrno) );\r
\r
return INVALID_SOCKET;\r
}\r