Example #1
0
    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;
        }
    }
Example #2
0
 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;
     }
 }