/* qcatlshandler.cpp - Kopete Groupwise Protocol Copyright (c) 2004 SUSE Linux AG http://www.suse.com Based on Iris, Copyright (C) 2003 Justin Karneges Kopete (c) 2002-2004 by the Kopete developers ************************************************************************* * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * * License as published by the Free Software Foundation; either * * version 2 of the License, or (at your option) any later version. * * * ************************************************************************* */ #include #include "qca.h" #include "qcatlshandler.h" class QCATLSHandler::Private { public: QCA::TLS *tls; int state, err; }; QCATLSHandler::QCATLSHandler(QCA::TLS *tqparent) :TLSHandler(tqparent) { d = new Private; d->tls = tqparent; connect(d->tls, TQT_SIGNAL(handshaken()), TQT_SLOT(tls_handshaken())); connect(d->tls, TQT_SIGNAL(readyRead()), TQT_SLOT(tls_readyRead())); connect(d->tls, TQT_SIGNAL(readyReadOutgoing(int)), TQT_SLOT(tls_readyReadOutgoing(int))); connect(d->tls, TQT_SIGNAL(closed()), TQT_SLOT(tls_closed())); connect(d->tls, TQT_SIGNAL(error(int)), TQT_SLOT(tls_error(int))); d->state = 0; d->err = -1; } QCATLSHandler::~QCATLSHandler() { delete d; } QCA::TLS *QCATLSHandler::tls() const { return d->tls; } int QCATLSHandler::tlsError() const { return d->err; } void QCATLSHandler::reset() { d->tls->reset(); d->state = 0; } void QCATLSHandler::startClient(const TQString &host) { d->state = 0; d->err = -1; if(!d->tls->startClient(host)) TQTimer::singleShot(0, this, TQT_SIGNAL(fail())); } void QCATLSHandler::write(const TQByteArray &a) { d->tls->write(a); } void QCATLSHandler::writeIncoming(const TQByteArray &a) { d->tls->writeIncoming(a); } void QCATLSHandler::continueAfterHandshake() { if(d->state == 2) { success(); d->state = 3; } } void QCATLSHandler::tls_handshaken() { d->state = 2; tlsHandshaken(); } void QCATLSHandler::tls_readyRead() { readyRead(d->tls->read()); } void QCATLSHandler::tls_readyReadOutgoing(int plainBytes) { readyReadOutgoing(d->tls->readOutgoing(), plainBytes); } void QCATLSHandler::tls_closed() { closed(); } void QCATLSHandler::tls_error(int x) { d->err = x; d->state = 0; fail(); } #include "qcatlshandler.moc"