Add QT_NO_SSL

This commit is contained in:
Alexey Shcherbakov 2013-03-11 19:24:44 +06:00
parent 21ea86cbb6
commit 13fa6ec71a
3 changed files with 45 additions and 13 deletions

View File

@ -13,7 +13,7 @@
#define AMQPPSWD "guest" #define AMQPPSWD "guest"
#define FRAME_MAX 131072 #define FRAME_MAX 131072
#define QAMQP_VERSION "0.1.0" #define QAMQP_VERSION "0.1.2"

View File

@ -25,6 +25,11 @@ QAMQP::Network::~Network()
void QAMQP::Network::connectTo( const QString & host, quint32 port ) void QAMQP::Network::connectTo( const QString & host, quint32 port )
{ {
if(!socket_)
{
qWarning("AMQP: Socket didn't create.");
return;
}
QString h(host); QString h(host);
int p(port); int p(port);
connect_ = true; connect_ = true;
@ -35,7 +40,11 @@ void QAMQP::Network::connectTo( const QString & host, quint32 port )
if (isSsl()) if (isSsl())
{ {
#ifndef QT_NO_SSL
static_cast<QSslSocket *>(socket_.data())->connectToHostEncrypted(h, p); static_cast<QSslSocket *>(socket_.data())->connectToHostEncrypted(h, p);
#else
qWarning("AMQP: You library has builded with QT_NO_SSL option.");
#endif
} else { } else {
socket_->connectToHost(h, p); socket_->connectToHost(h, p);
} }
@ -75,7 +84,7 @@ void QAMQP::Network::error( QAbstractSocket::SocketError socketError )
case QAbstractSocket::ProxyConnectionTimeoutError: case QAbstractSocket::ProxyConnectionTimeoutError:
default: default:
qWarning() << "AMQP Socket Error: " << socket_->errorString(); qWarning() << "AMQP: Socket Error: " << socket_->errorString();
break; break;
} }
@ -143,11 +152,11 @@ void QAMQP::Network::readyRead()
break; break;
case QAMQP::Frame::ftHeartbeat: case QAMQP::Frame::ftHeartbeat:
{ {
qDebug("Heartbeat"); qDebug("AMQP: Heartbeat");
} }
break; break;
default: default:
qWarning("Unknown frame type"); qWarning("AMQP: Unknown frame type");
} }
buffer_->reset(); buffer_->reset();
} }
@ -165,7 +174,10 @@ void QAMQP::Network::sendFrame( const QAMQP::Frame::Base & frame )
bool QAMQP::Network::isSsl() const bool QAMQP::Network::isSsl() const
{ {
return QString(socket_->metaObject()->className()).compare( "QSslSocket", Qt::CaseInsensitive) == 0; if(socket_)
{
return QString(socket_->metaObject()->className()).compare( "QSslSocket", Qt::CaseInsensitive) == 0;
}
} }
void QAMQP::Network::setSsl( bool value ) void QAMQP::Network::setSsl( bool value )
@ -180,6 +192,7 @@ void QAMQP::Network::initSocket( bool ssl /*= false*/ )
if(ssl) if(ssl)
{ {
#ifndef QT_NO_SSL
socket_ = new QSslSocket(this); socket_ = new QSslSocket(this);
QSslSocket * ssl_= static_cast<QSslSocket*> (socket_.data()); QSslSocket * ssl_= static_cast<QSslSocket*> (socket_.data());
ssl_->setProtocol(QSsl::AnyProtocol); ssl_->setProtocol(QSsl::AnyProtocol);
@ -188,22 +201,31 @@ void QAMQP::Network::initSocket( bool ssl /*= false*/ )
//connect(socket_, SIGNAL(encrypted()), this, SLOT(conectionReady())); //connect(socket_, SIGNAL(encrypted()), this, SLOT(conectionReady()));
connect(socket_, SIGNAL(connected()), this, SLOT(conectionReady())); connect(socket_, SIGNAL(connected()), this, SLOT(conectionReady()));
#else
qWarning("AMQP: You library has builded with QT_NO_SSL option.");
#endif
} else { } else {
socket_ = new QTcpSocket(this); socket_ = new QTcpSocket(this);
connect(socket_, SIGNAL(connected()), this, SLOT(conectionReady())); connect(socket_, SIGNAL(connected()), this, SLOT(conectionReady()));
} }
connect(socket_, SIGNAL(disconnected()), this, SIGNAL(disconnected())); if(socket_)
connect(socket_, SIGNAL(readyRead()), this, SLOT(readyRead())); {
connect(socket_, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(error(QAbstractSocket::SocketError))); connect(socket_, SIGNAL(disconnected()), this, SIGNAL(disconnected()));
connect(socket_, SIGNAL(readyRead()), this, SLOT(readyRead()));
connect(socket_, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(error(QAbstractSocket::SocketError)));
}
} }
void QAMQP::Network::sslErrors( const QList<QSslError> & errors )
void QAMQP::Network::sslErrors( )
{ {
Q_UNUSED(errors); #ifndef QT_NO_SSL
static_cast<QSslSocket*>(socket_.data())->ignoreSslErrors(); static_cast<QSslSocket*>(socket_.data())->ignoreSslErrors();
#endif
} }
void QAMQP::Network::conectionReady() void QAMQP::Network::conectionReady()
{ {
emit connected(); emit connected();
@ -224,5 +246,11 @@ void QAMQP::Network::setAutoReconnect( bool value )
QAbstractSocket::SocketState QAMQP::Network::state() const QAbstractSocket::SocketState QAMQP::Network::state() const
{ {
return socket_->state(); if(socket_)
{
return socket_->state();
} else {
return QAbstractSocket::UnconnectedState;
}
} }

View File

@ -3,7 +3,9 @@
#include <QObject> #include <QObject>
#include <QTcpSocket> #include <QTcpSocket>
#ifndef QT_NO_SSL
#include <QSslSocket> #include <QSslSocket>
#endif
#include <QPointer> #include <QPointer>
#include <QBuffer> #include <QBuffer>
@ -45,7 +47,9 @@ namespace QAMQP
private slots: private slots:
void readyRead(); void readyRead();
void sslErrors ( const QList<QSslError> & errors );
void sslErrors ( );
void conectionReady(); void conectionReady();