bool QNativeSocketEnginePrivate::nativeListen(int backlog)
{
#ifdef Q_OS_SYMBIAN
    if (::listen(socketDescriptor, backlog) < 0) {
#else
    if (qt_safe_listen(socketDescriptor, backlog) < 0) {
#endif
        switch (errno) {
        case EADDRINUSE:
            setError(QAbstractSocket::AddressInUseError,
                     PortInuseErrorString);
            break;
        default:
            break;
        }

#if defined (QNATIVESOCKETENGINE_DEBUG)
        qDebug("QNativeSocketEnginePrivate::nativeListen(%i) == false (%s)",
               backlog, socketErrorString.toLatin1().constData());
#endif
        return false;
    }

#if defined (QNATIVESOCKETENGINE_DEBUG)
    qDebug("QNativeSocketEnginePrivate::nativeListen(%i) == true", backlog);
#endif

    socketState = QAbstractSocket::ListeningState;
    return true;
}

int QNativeSocketEnginePrivate::nativeAccept()
{
#ifdef Q_OS_SYMBIAN
    int acceptedDescriptor = ::accept(socketDescriptor, 0, 0);
#else
    int acceptedDescriptor = qt_safe_accept(socketDescriptor, 0, 0);
#endif
    //check if we have vaild descriptor at all
    if(acceptedDescriptor > 0) {
        // Ensure that the socket is closed on exec*()
        ::fcntl(acceptedDescriptor, F_SETFD, FD_CLOEXEC);
    }
#ifdef Q_OS_SYMBIAN
    else {
        qWarning("QNativeSocketEnginePrivate::nativeAccept() - acceptedDescriptor <= 0");
    }
#endif

    return acceptedDescriptor;
}
int QNativeSocketEnginePrivate::nativeAccept()
{
    int acceptedDescriptor = qt_safe_accept(socketDescriptor, 0, 0);
    if (acceptedDescriptor == -1) {
        switch (errno) {
        case EBADF:
        case EOPNOTSUPP:
            setError(QAbstractSocket::UnsupportedSocketOperationError, InvalidSocketErrorString);
            break;
        case ECONNABORTED:
            setError(QAbstractSocket::NetworkError, RemoteHostClosedErrorString);
            break;
        case EFAULT:
        case ENOTSOCK:
            setError(QAbstractSocket::SocketResourceError, NotSocketErrorString);
            break;
        case EPROTONOSUPPORT:
        case EPROTO:
        case EAFNOSUPPORT:
        case EINVAL:
            setError(QAbstractSocket::UnsupportedSocketOperationError, ProtocolUnsupportedErrorString);
            break;
        case ENFILE:
        case EMFILE:
        case ENOBUFS:
        case ENOMEM:
            setError(QAbstractSocket::SocketResourceError, ResourceErrorString);
            break;
        case EACCES:
        case EPERM:
            setError(QAbstractSocket::SocketAccessError, AccessErrorString);
            break;
#if EAGAIN != EWOULDBLOCK
        case EWOULDBLOCK:
#endif
        case EAGAIN:
            setError(QAbstractSocket::TemporaryError, TemporaryErrorString);
            break;
        default:
            setError(QAbstractSocket::UnknownSocketError, UnknownSocketErrorString);
            break;
        }
    }

    return acceptedDescriptor;
}
Example #3
0
bool QNativeSocketEnginePrivate::nativeListen(int backlog)
{
#ifdef Q_OS_SYMBIAN
    if (::listen(socketDescriptor, backlog) < 0) {
#else
    if (qt_safe_listen(socketDescriptor, backlog) < 0) {
#endif
        switch (errno) {
        case EADDRINUSE:
            setError(QAbstractSocket::AddressInUseError,
                     PortInuseErrorString);
            break;
        default:
            break;
        }

#if defined (QNATIVESOCKETENGINE_DEBUG)
        qDebug("QNativeSocketEnginePrivate::nativeListen(%i) == false (%s)",
               backlog, socketErrorString.toLatin1().constData());
#endif
        return false;
    }

#if defined (QNATIVESOCKETENGINE_DEBUG)
    qDebug("QNativeSocketEnginePrivate::nativeListen(%i) == true", backlog);
#endif

    socketState = QAbstractSocket::ListeningState;
    return true;
}

int QNativeSocketEnginePrivate::nativeAccept()
{
#ifdef Q_OS_SYMBIAN
    int acceptedDescriptor = ::accept(socketDescriptor, 0, 0);
#else
    int acceptedDescriptor = qt_safe_accept(socketDescriptor, 0, 0);
#endif

    return acceptedDescriptor;
}
Example #4
0
int QNativeSocketEnginePrivate::nativeAccept()
{
    int acceptedDescriptor = qt_safe_accept(socketDescriptor, 0, 0);

    return acceptedDescriptor;
}