|
|
|
@ -204,6 +204,44 @@ bool TDEKerberosClientSocket::atEnd() const {
|
|
|
|
|
return ret;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
TQ_ULONG TDEKerberosClientSocket::bytesAvailable() const {
|
|
|
|
|
bool ret;
|
|
|
|
|
|
|
|
|
|
if (kerberosStatus() == KerberosInUse) {
|
|
|
|
|
ret = m_bufferLength;
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
ret = TQSocket::bytesAvailable();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return ret;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int TDEKerberosClientSocket::processPendingData() {
|
|
|
|
|
if (kerberosStatus() == KerberosInUse) {
|
|
|
|
|
int reclen;
|
|
|
|
|
int wrlen;
|
|
|
|
|
if (m_bufferLength <= 0) {
|
|
|
|
|
char* buf = (char*)malloc(m_negotiatedMaxBufferSize);
|
|
|
|
|
reclen = receiveEncryptedData(buf, m_negotiatedMaxBufferSize);
|
|
|
|
|
if (reclen < 0) {
|
|
|
|
|
free(buf);
|
|
|
|
|
return -1;
|
|
|
|
|
}
|
|
|
|
|
if (reclen > 0) {
|
|
|
|
|
m_buffer->at(m_bufferLength);
|
|
|
|
|
wrlen = m_buffer->writeBlock(buf, reclen);
|
|
|
|
|
if (wrlen > 0) {
|
|
|
|
|
m_bufferLength = m_bufferLength + wrlen;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
free(buf);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int TDEKerberosClientSocket::setUsingKerberos(bool krbactive) {
|
|
|
|
|
int ret = 0;
|
|
|
|
|
|
|
|
|
@ -243,6 +281,7 @@ TQ_LONG TDEKerberosClientSocket::readBlock(char *data, TQ_ULONG maxlen) {
|
|
|
|
|
if (kerberosStatus() == KerberosInUse) {
|
|
|
|
|
int reclen;
|
|
|
|
|
int wrlen;
|
|
|
|
|
if (m_bufferLength <= 0) {
|
|
|
|
|
char* buf = (char*)malloc(m_negotiatedMaxBufferSize);
|
|
|
|
|
reclen = receiveEncryptedData(buf, m_negotiatedMaxBufferSize);
|
|
|
|
|
if (reclen < 0) {
|
|
|
|
@ -257,6 +296,7 @@ TQ_LONG TDEKerberosClientSocket::readBlock(char *data, TQ_ULONG maxlen) {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
free(buf);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (maxlen > (unsigned int)m_bufferLength) {
|
|
|
|
|
maxlen = m_bufferLength;
|
|
|
|
@ -304,6 +344,7 @@ TQ_LONG TDEKerberosClientSocket::readLine(char *data, TQ_ULONG maxlen) {
|
|
|
|
|
if (kerberosStatus() == KerberosInUse) {
|
|
|
|
|
int reclen;
|
|
|
|
|
int wrlen;
|
|
|
|
|
if (m_bufferLength <= 0) {
|
|
|
|
|
char* buf = (char*)malloc(m_negotiatedMaxBufferSize);
|
|
|
|
|
reclen = receiveEncryptedData(buf, m_negotiatedMaxBufferSize);
|
|
|
|
|
if (reclen < 0) {
|
|
|
|
@ -318,6 +359,7 @@ TQ_LONG TDEKerberosClientSocket::readLine(char *data, TQ_ULONG maxlen) {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
free(buf);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (maxlen > (unsigned int)m_bufferLength) {
|
|
|
|
|
maxlen = m_bufferLength;
|
|
|
|
@ -354,8 +396,10 @@ TQString TDEKerberosClientSocket::readLine() {
|
|
|
|
|
int reclen;
|
|
|
|
|
int wrlen;
|
|
|
|
|
int readlen;
|
|
|
|
|
char* buf;
|
|
|
|
|
maxlen = m_negotiatedMaxBufferSize;
|
|
|
|
|
char* buf = (char*)malloc(m_negotiatedMaxBufferSize);
|
|
|
|
|
if (m_bufferLength <= 0) {
|
|
|
|
|
buf = (char*)malloc(m_negotiatedMaxBufferSize);
|
|
|
|
|
reclen = receiveEncryptedData(buf, m_negotiatedMaxBufferSize);
|
|
|
|
|
if (reclen < 0) {
|
|
|
|
|
free(buf);
|
|
|
|
@ -369,6 +413,7 @@ TQString TDEKerberosClientSocket::readLine() {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
free(buf);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (maxlen > m_bufferLength) {
|
|
|
|
|
maxlen = m_bufferLength;
|
|
|
|
@ -596,6 +641,10 @@ TDEKerberosClientSocket::KerberosStatus TDEKerberosClientSocket::kerberosStatus(
|
|
|
|
|
return KerberosInUse;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool TDEKerberosClientSocket::canReadData() {
|
|
|
|
|
return TQSocket::canReadLine();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void TDEKerberosClientSocket::setStatusMessage(TQString message) {
|
|
|
|
|
if (message != m_prevStatusMessage) {
|
|
|
|
|
emit(statusMessageUpdated(message));
|
|
|
|
|