All pastes #811377 Raw Edit

Unnamed

public text v1 · immutable
·published 2007-12-10 21:18 UTC
rendered paste body
bool ByteBuffer::PutToSocket(int socket) {
    CHECK_READ_WRITE_SIZE_CURSORS;
    bool result;
    int32_t sent=send(socket, _pBuffer+_readCursor, _writeCursor-_readCursor, 0);
    if(sent<=0) {
        char *pTemp=strerror(errno);
        DEBUG("Trying to send %d bytes", _writeCursor-_readCursor);
        DEBUG("Unable to send data (retry %d): %s", _sendRetryCount, pTemp);
        if(errno==EAGAIN){
            _sendRetryCount++;
            if(_sendRetryCount>MAX_SEND_RETRY_COUNT){
                FATAL("MAX_SEND_RETRY_COUNT reached: %d", MAX_SEND_RETRY_COUNT);
                return false;
            }   
            else{
                return true;
            }
        }   
        else{
            return false;
        }
    }
    else {
        _sendRetryCount=0;
        _readCursor+=sent;
        result=true;
    }
    if(result)
        Realloc(0);
    CHECK_READ_WRITE_SIZE_CURSORS;
    return result;
}