diff options
Diffstat (limited to 'lib/libtdekrb/src/tdekrbserversocket.cpp')
| -rw-r--r-- | lib/libtdekrb/src/tdekrbserversocket.cpp | 66 |
1 files changed, 62 insertions, 4 deletions
diff --git a/lib/libtdekrb/src/tdekrbserversocket.cpp b/lib/libtdekrb/src/tdekrbserversocket.cpp index cd7fa88..1f6d755 100644 --- a/lib/libtdekrb/src/tdekrbserversocket.cpp +++ b/lib/libtdekrb/src/tdekrbserversocket.cpp @@ -22,6 +22,7 @@ #include <unistd.h> #include <tqapplication.h> +#include <tqbuffer.h> #include <sasl.h> #include <saslplug.h> @@ -78,12 +79,16 @@ static int logSASLMessages(void *context __attribute__((unused)), int priority, return SASL_OK; } -TDEKerberosServerSocket::TDEKerberosServerSocket(TQObject *parent, const char *name) : TQSocket(parent, name), m_kerberosRequested(false), m_negotiatedMaxBufferSize(NET_SEC_BUF_SIZE), m_criticalSection(0) { +TDEKerberosServerSocket::TDEKerberosServerSocket(TQObject *parent, const char *name) : TQSocket(parent, name), m_kerberosRequested(false), m_criticalSection(0), m_negotiatedMaxBufferSize(NET_SEC_BUF_SIZE) { saslData = new SASLDataPrivate; saslData->m_krbConnection = NULL; + m_buffer = new TQBuffer(); + m_buffer->open(IO_ReadWrite); } TDEKerberosServerSocket::~TDEKerberosServerSocket() { + m_buffer->close(); + delete m_buffer; delete saslData; } @@ -102,6 +107,58 @@ void TDEKerberosServerSocket::close() { } } +void TDEKerberosServerSocket::flush() { + if (m_kerberosRequested) { + // RAJA FIXME + } + else { + TQSocket::flush(); + } +} + +TQIODevice::Offset TDEKerberosServerSocket::size() const { + TQIODevice::Offset ret; + + if (m_kerberosRequested) { + // RAJA FIXME + } + else { + ret = TQSocket::size(); + } + + return ret; +} + +TQIODevice::Offset TDEKerberosServerSocket::at() const { + return TQSocket::at(); +} + +bool TDEKerberosServerSocket::at(TQIODevice::Offset off) { + bool ret; + + if (m_kerberosRequested) { + // RAJA FIXME + } + else { + ret = TQSocket::at(off); + } + + return ret; +} + +bool TDEKerberosServerSocket::atEnd() const { + bool ret; + + if (m_kerberosRequested) { + // RAJA FIXME + } + else { + ret = TQSocket::atEnd(); + } + + return ret; +} + int TDEKerberosServerSocket::setUsingKerberos(bool krbactive) { int ret = 0; @@ -227,7 +284,9 @@ void TDEKerberosServerSocket::sendSASLDataToNetwork(const char *buffer, unsigned len = strlen(buf); buf[len] = '\n'; buf[len+1] = 0; - write(netfd, buf, len+1); + if (write(netfd, buf, len+1) < 0) { + // ERROR + } free(buf); } @@ -297,7 +356,7 @@ int TDEKerberosServerSocket::transmitEncryptedData(int fd, const char* readbuf, return 0; } -int TDEKerberosServerSocket::receiveEncryptedData(char *buf, int trunclen) { +int TDEKerberosServerSocket::receiveEncryptedData(char *buf, unsigned int trunclen) { unsigned int recv_len; const char *recv_data; int result; @@ -341,7 +400,6 @@ int TDEKerberosServerSocket::initializeKerberosInterface() { int slen; int count; const char *data; - char user_authorized = 0; sasl_ssf_t *ssf; // FIXME |
