diff --git a/src/Server.cpp b/src/Server.cpp index 82a1bc6..d7ab4c1 100644 --- a/src/Server.cpp +++ b/src/Server.cpp @@ -4,9 +4,10 @@ #include -Server::Server(QObject *parent) : QObject(parent) { +Server::Server(QObject *parent, bool ignoreSslErrors) : QObject(parent) { m_tcp_server = new QTcpServer(this); m_page = new WebPage(this); + m_page->setIgnoreSslErrors(ignoreSslErrors); } bool Server::start() { diff --git a/src/Server.h b/src/Server.h index 69f881b..677097f 100644 --- a/src/Server.h +++ b/src/Server.h @@ -7,7 +7,7 @@ class Server : public QObject { Q_OBJECT public: - Server(QObject *parent = 0); + Server(QObject *parent, bool ignoreSslErrors); bool start(); quint16 server_port() const; diff --git a/src/WebPage.cpp b/src/WebPage.cpp index 6729a8c..0a410c1 100644 --- a/src/WebPage.cpp +++ b/src/WebPage.cpp @@ -194,9 +194,19 @@ void WebPage::replyFinished(QNetworkReply *reply) { } void WebPage::ignoreSslErrors(QNetworkReply *reply, const QList &errors) { - reply->ignoreSslErrors(errors); + if (m_ignoreSslErrors) + reply->ignoreSslErrors(errors); } +void WebPage::setIgnoreSslErrors(bool ignore) { + m_ignoreSslErrors = ignore; +} + +bool WebPage::ignoreSslErrors() { + return m_ignoreSslErrors; +} + + int WebPage::getLastStatus() { return m_lastStatus; } diff --git a/src/WebPage.h b/src/WebPage.h index 44f7d3a..79a50d2 100644 --- a/src/WebPage.h +++ b/src/WebPage.h @@ -15,6 +15,8 @@ class WebPage : public QWebPage { void setCustomNetworkAccessManager(); bool render(const QString &fileName); virtual bool extension (Extension extension, const ExtensionOption *option=0, ExtensionReturn *output=0); + void setIgnoreSslErrors(bool ignore); + bool ignoreSslErrors(); public slots: bool shouldInterruptJavaScript(); @@ -47,5 +49,6 @@ class WebPage : public QWebPage { void setUserStylesheet(); int m_lastStatus; QString m_pageHeaders; + bool m_ignoreSslErrors; }; diff --git a/src/main.cpp b/src/main.cpp index f009d64..f329845 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -18,10 +18,15 @@ int main(int argc, char **argv) { app.setOrganizationName("thoughtbot, inc"); app.setOrganizationDomain("thoughtbot.com"); - Server server; + QStringList args = app.arguments(); + bool ignoreSslErrors = args.contains("--ignore-ssl-errors"); + + Server server(0, ignoreSslErrors); if (server.start()) { std::cout << "Capybara-webkit server started, listening on port: " << server.server_port() << std::endl; + if (ignoreSslErrors) + std::cout << "Ignoring SSL errors" << std::endl; return app.exec(); } else { std::cerr << "Couldn't start capybara-webkit server" << std::endl;