Don't require SSL for loopback connections with --require-ssl 111/head
authorMichael Marley <michael@michaelmarley.com>
Sat, 14 Feb 2015 01:12:18 +0000 (20:12 -0500)
committerMichael Marley <michael@michaelmarley.com>
Wed, 4 Mar 2015 03:06:37 +0000 (22:06 -0500)
Encrypting a loopback connection is a pointless waste of computing
power.  This patch will allow people to use loopback connections
from things like quassel-webserver without encryption while still
requiring encryption for remote connections.

src/common/main.cpp
src/core/coreauthhandler.cpp

index 3f6cab5..d4833a4 100644 (file)
@@ -161,7 +161,7 @@ int main(int argc, char **argv)
     cliParser->addSwitch("oidentd", 0, "Enable oidentd integration");
     cliParser->addOption("oidentd-conffile", 0, "Set path to oidentd configuration file", "file");
 #ifdef HAVE_SSL
-    cliParser->addSwitch("require-ssl", 0, "Require SSL for client connections");
+    cliParser->addSwitch("require-ssl", 0, "Require SSL for remote (non-loopback) client connections");
 #endif
     cliParser->addSwitch("enable-experimental-dcc", 0, "Enable highly experimental and unfinished support for CTCP DCC (DANGEROUS)");
 #endif
index 75a2928..92b32c5 100644 (file)
@@ -158,7 +158,7 @@ void CoreAuthHandler::handle(const RegisterClient &msg)
     else
         useSsl = _connectionFeatures & Protocol::Encryption;
 
-    if (Quassel::isOptionSet("require-ssl") && !useSsl) {
+    if (Quassel::isOptionSet("require-ssl") && !useSsl && !_peer->isLocal()) {
         _peer->dispatch(ClientDenied(tr("<b>SSL is required!</b><br>You need to use SSL in order to connect to this core.")));
         _peer->close();
         return;