Ejemplo n.º 1
0
bool QNativeSocketEnginePrivate::nativeListen(int backlog)
{
    if (qt_safe_listen(socketDescriptor, backlog) < 0) {
        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;
}
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;
}