void Socket::recv( char * buf , int len ) { int retries = 0; while( len > 0 ) { int ret = -1; if (MONGO_FAIL_POINT(throwSockExcep)) { #if defined(_WIN32) WSASetLastError(WSAENETUNREACH); #else errno = ENETUNREACH; #endif } else { ret = unsafe_recv(buf, len); } if (ret <= 0) { _handleRecvError(ret, len, &retries); continue; } if ( len <= 4 && ret != len ) LOG(_logLevel) << "Socket recv() got " << ret << " bytes wanted len=" << len << endl; fassert(16508, ret <= len); len -= ret; buf += ret; } }
void Socket::recv( char * buf , int len ) { int retries = 0; while( len > 0 ) { int ret = unsafe_recv( buf , len ); if ( ret <= 0 ) { _handleRecvError(ret, len, &retries); continue; } if ( len <= 4 && ret != len ) LOG(_logLevel) << "Socket recv() got " << ret << " bytes wanted len=" << len << endl; fassert(16508, ret <= len); len -= ret; buf += ret; } }