summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/libtdekrb/src/tdekrbclientsocket.cpp2
-rw-r--r--lib/libtdekrb/src/tdekrbserversocket.cpp26
-rw-r--r--lib/libtdekrb/src/tdekrbserversocket.h1
-rw-r--r--lib/libtqtrla/src/tqtrla.cpp25
-rw-r--r--lib/libtqtrla/src/tqtrla.h3
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);