diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/libtdekrb/src/tdekrbclientsocket.cpp | 2 | ||||
| -rw-r--r-- | lib/libtdekrb/src/tdekrbserversocket.cpp | 26 | ||||
| -rw-r--r-- | lib/libtdekrb/src/tdekrbserversocket.h | 1 | ||||
| -rw-r--r-- | lib/libtqtrla/src/tqtrla.cpp | 25 | ||||
| -rw-r--r-- | lib/libtqtrla/src/tqtrla.h | 3 |
5 files changed, 42 insertions, 15 deletions
diff --git a/lib/libtdekrb/src/tdekrbclientsocket.cpp b/lib/libtdekrb/src/tdekrbclientsocket.cpp index ac1a1bc..a286ff6 100644 --- a/lib/libtdekrb/src/tdekrbclientsocket.cpp +++ b/lib/libtdekrb/src/tdekrbclientsocket.cpp @@ -883,7 +883,7 @@ void TDEKerberosClientSocket::continueKerberosInitialization() { int TDEKerberosClientSocket::initializeKerberosInterface() { if (state() != TQSocket::Connected) { - saslData->m_krbConnection = false; + freeKerberosConnection(); return -1; } diff --git a/lib/libtdekrb/src/tdekrbserversocket.cpp b/lib/libtdekrb/src/tdekrbserversocket.cpp index 77f4750..aa281cc 100644 --- a/lib/libtdekrb/src/tdekrbserversocket.cpp +++ b/lib/libtdekrb/src/tdekrbserversocket.cpp @@ -717,7 +717,6 @@ void TDEKerberosServerSocket::setStatusMessage(TQString message) { void TDEKerberosServerSocket::continueKerberosInitialization() { int slen; char buf[NET_SEC_BUF_SIZE]; - unsigned int len; sasl_ssf_t *ssf; if (m_krbInitRunning) { @@ -734,18 +733,18 @@ void TDEKerberosServerSocket::continueKerberosInitialization() { setStatusMessage(i18n("Kerberos connection failed")); return; } - len = slen; - if (strlen(buf) < len) { + m_krbInitLastLen = slen; + if (strlen(buf) < m_krbInitLastLen) { printf("[DEBUG] Initial response received\n\r"); // An initial response is present m_krbInitData = buf + strlen(buf) + 1; - len = len - (unsigned) strlen(buf) - 1; + m_krbInitLastLen = m_krbInitLastLen - (unsigned) strlen(buf) - 1; } else { m_krbInitData = NULL; - len = 0; + m_krbInitLastLen = 0; } - m_krbInitResult = sasl_server_start(saslData->m_krbConnection, buf, m_krbInitData, len, &m_krbInitData, &len); + m_krbInitResult = sasl_server_start(saslData->m_krbConnection, buf, m_krbInitData, m_krbInitLastLen, &m_krbInitData, &m_krbInitLastLen); if (m_krbInitResult != SASL_OK && m_krbInitResult != SASL_CONTINUE) { printf("[ERROR] Starting SASL negotiation returned %s (%d)\n\r", safe_sasl_errdetail(saslData->m_krbConnection), m_krbInitResult); freeKerberosConnection(); @@ -767,7 +766,7 @@ void TDEKerberosServerSocket::continueKerberosInitialization() { if (m_krbInitResult == SASL_CONTINUE) { if (m_krbInitData) { printf("[DEBUG] Sending response...\n\r"); - sendSASLDataToNetwork(m_krbInitData, len); + sendSASLDataToNetwork(m_krbInitData, m_krbInitLastLen); } else { printf("[ERROR] No data to send!\n\r"); @@ -803,9 +802,9 @@ void TDEKerberosServerSocket::continueKerberosInitialization() { setStatusMessage(i18n("Kerberos connection failed")); return; } - len = slen; + m_krbInitLastLen = slen; m_krbInitData = NULL; - m_krbInitResult = sasl_server_step(saslData->m_krbConnection, buf, len, &m_krbInitData, &len); + m_krbInitResult = sasl_server_step(saslData->m_krbConnection, buf, m_krbInitLastLen, &m_krbInitData, &m_krbInitLastLen); if (m_krbInitResult != SASL_OK && m_krbInitResult != SASL_CONTINUE) { printf("[ERROR] Performing SASL negotiation returned %s (%d)\n\r", safe_sasl_errdetail(saslData->m_krbConnection), m_krbInitResult); freeKerberosConnection(); @@ -828,7 +827,7 @@ void TDEKerberosServerSocket::continueKerberosInitialization() { if (state() == TQSocket::Connected) { if(m_krbInitServerLast && m_krbInitData) { printf("[DEBUG] Additional information needed to be sent\n\r"); - sendSASLDataToNetwork(m_krbInitData, len); + sendSASLDataToNetwork(m_krbInitData, m_krbInitLastLen); } m_krbInitResult = sasl_getprop(saslData->m_krbConnection, SASL_USERNAME, (const void **)&m_krbInitData); @@ -889,7 +888,7 @@ void TDEKerberosServerSocket::continueKerberosInitialization() { int TDEKerberosServerSocket::initializeKerberosInterface() { if (state() != TQSocket::Connected) { - saslData->m_krbConnection = false; + freeKerberosConnection(); return -1; } @@ -899,7 +898,6 @@ int TDEKerberosServerSocket::initializeKerberosInterface() { sasl_security_properties_t secprops; const char *ext_authid = NULL; int count; - unsigned int len; // FIXME // Populate these fields! @@ -948,7 +946,7 @@ int TDEKerberosServerSocket::initializeKerberosInterface() { } puts("[DEBUG] Generating client mechanism list..."); - m_krbInitResult = sasl_listmech(saslData->m_krbConnection, ext_authid, NULL, " ", NULL, &m_krbInitData, &len, &count); + m_krbInitResult = sasl_listmech(saslData->m_krbConnection, ext_authid, NULL, " ", NULL, &m_krbInitData, &m_krbInitLastLen, &count); if (m_krbInitResult != SASL_OK) { printf("[ERROR] Generating client mechanism list returned %s (%d)\n\r", safe_sasl_errdetail(saslData->m_krbConnection), m_krbInitResult); freeKerberosConnection(); @@ -956,7 +954,7 @@ int TDEKerberosServerSocket::initializeKerberosInterface() { } printf("[DEBUG] Sending list of %d mechanism(s)\n\r", count); - sendSASLDataToNetwork(m_krbInitData, len); + sendSASLDataToNetwork(m_krbInitData, m_krbInitLastLen); m_krbInitRunning = true; m_krbInitState = 0; diff --git a/lib/libtdekrb/src/tdekrbserversocket.h b/lib/libtdekrb/src/tdekrbserversocket.h index 61e6255..0394b49 100644 --- a/lib/libtdekrb/src/tdekrbserversocket.h +++ b/lib/libtdekrb/src/tdekrbserversocket.h @@ -114,6 +114,7 @@ class TDEKerberosServerSocket : public TQSocket unsigned int m_negotiatedMaxBufferSize; int m_krbInitResult; int m_krbInitServerLast; + unsigned int m_krbInitLastLen; const char *m_krbInitData; }; diff --git a/lib/libtqtrla/src/tqtrla.cpp b/lib/libtqtrla/src/tqtrla.cpp index e8631cc..d43c1f2 100644 --- a/lib/libtqtrla/src/tqtrla.cpp +++ b/lib/libtqtrla/src/tqtrla.cpp @@ -22,6 +22,8 @@ #include <tqwidget.h> +#include <klocale.h> + namespace KParts { class RemoteInstrumentPartPrivate @@ -77,6 +79,29 @@ namespace KParts void RemoteInstrumentPart::setStatusMessage(const TQString& message) { emit(statusMessageSet(message)); } + + TQStringList RemoteInstrumentPart::textForServerError(TQString shortError) { + TQStringList ret; + + if (shortError == "ERRNOCONN") { + ret.append(i18n("<qt>Unable to establish connection with backend server<p>Please verify that you are currently connected to a workspace</qt>")); + ret.append(i18n("Connection Failed")); + } + else if (shortError == "ERRNOTAVL") { + ret.append(i18n("<qt>The backend server is not available at this time<p>Please try a different workspace, or try again later</qt>")); + ret.append(i18n("Connection Failed")); + } + else if (shortError == "ERRNOSERV") { + ret.append(i18n("<qt>The active laboratory workspace does not support the requested service</qt>")); + ret.append(i18n("Service Unavailable")); + } + else { + ret.append(i18n("<qt>Unable to establish connection with remote server</qt>")); + ret.append(i18n("Connection Failed")); + } + + return ret; + } } bool operator==( const ServiceType &s1, const ServiceType &s2 ) { diff --git a/lib/libtqtrla/src/tqtrla.h b/lib/libtqtrla/src/tqtrla.h index 3b8ccd7..1f1ca22 100644 --- a/lib/libtqtrla/src/tqtrla.h +++ b/lib/libtqtrla/src/tqtrla.h @@ -50,6 +50,9 @@ namespace KParts virtual bool closeURL(); virtual TQPtrList<KAction> menuActionList(); + protected: + TQStringList textForServerError(TQString shortError); + protected slots: void close(); void resize(TQSize size); |
