diff options
Diffstat (limited to 'clients/tde')
-rw-r--r-- | clients/tde/src/app/remotemdi.cpp | 12 | ||||
-rw-r--r-- | clients/tde/src/part/fpgaview/part.cpp | 6 |
2 files changed, 11 insertions, 7 deletions
diff --git a/clients/tde/src/app/remotemdi.cpp b/clients/tde/src/app/remotemdi.cpp index 3ecf181..3e5c075 100644 --- a/clients/tde/src/app/remotemdi.cpp +++ b/clients/tde/src/app/remotemdi.cpp @@ -168,7 +168,11 @@ void RemoteMDI::connectToServer() { connectionTimeout.stop(); if (m_rsvSvrSocket->state() == TQSocket::Connected) { printf("[DEBUG] Initial connection established...\n\r"); fflush(stdout); - if (m_rsvSvrSocket->setUsingKerberos(true) != 0) { + m_rsvSvrSocket->setUsingKerberos(true); + while (m_rsvSvrSocket->kerberosStatus() == TDEKerberosClientSocket::KerberosInitializing) { + tqApp->processEvents(); + } + if (m_rsvSvrSocket->kerberosStatus() != TDEKerberosClientSocket::KerberosInUse) { disconnectFromServer(); KMessageBox::error(this, i18n("<qt>Unable to establish Kerberos protocol with remote server<p>Please verify that you currently hold a valid Kerberos ticket</qt>"), i18n("Connection Failed")); } @@ -344,11 +348,7 @@ void RemoteMDI::childWindowCloseRequest(KMdiChildView *pWnd) { iview->closeConnections(); iview->hide(); - // RAJA FIXME - // Executing KMdiMainFrm::childWindowCloseRequest(pWnd) here will probably cause a crash - // We need to call this AFTER control has been returned to the main event loop at least once - // This is related to my lack of proper returning to the event loop, which MUST BE FIXED -// KMdiMainFrm::childWindowCloseRequest(pWnd); // RAJA UNCOMMENT ME + KMdiMainFrm::childWindowCloseRequest(pWnd); } } diff --git a/clients/tde/src/part/fpgaview/part.cpp b/clients/tde/src/part/fpgaview/part.cpp index 52a1d92..2b3cf8d 100644 --- a/clients/tde/src/part/fpgaview/part.cpp +++ b/clients/tde/src/part/fpgaview/part.cpp @@ -158,8 +158,12 @@ printf("[RAJA DEBUG 200.1] In FPGAViewPart::connectToServer TRIED TO CONNECT TWI if (m_socket->state() != TQSocket::Connected) { return -1; } - if (m_socket->setUsingKerberos(true) != 0) { + m_socket->setUsingKerberos(true); + while (m_socket->kerberosStatus() == TDEKerberosClientSocket::KerberosInitializing) { + tqApp->eventLoop()->processEvents(TQEventLoop::AllEvents); if (!m_socket) return -1; // Any entry into the event loop could end up deleting the socket object depending on user interaction + } + if (m_socket->kerberosStatus() != TDEKerberosClientSocket::KerberosInUse) { m_socket->close(); KMessageBox::error(0, i18n("<qt>Unable to establish Kerberos protocol with remote server<p>Please verify that you currently hold a valid Kerberos ticket</qt>"), i18n("Connection Failed")); return -1; |