From af805e5b45f75dec7f4ce16ffc322c8880f9859c Mon Sep 17 00:00:00 2001 From: Adam Date: Fri, 7 May 2010 21:04:18 -0400 Subject: Allow enabling ssl on a per-uplink basis --- src/modules/ssl/m_ssl.cpp | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) (limited to 'src/modules') diff --git a/src/modules/ssl/m_ssl.cpp b/src/modules/ssl/m_ssl.cpp index 075352551..be3e5da1f 100644 --- a/src/modules/ssl/m_ssl.cpp +++ b/src/modules/ssl/m_ssl.cpp @@ -122,28 +122,26 @@ class SSLModule : public Module SSL_CTX_free(ctx); } - EventReturn OnPreServerConnect() + EventReturn OnPreServerConnect(Uplink *u, int Number) { - int servernum = 1; - for (std::list::iterator curr_uplink = Config.Uplinks.begin(); curr_uplink != Config.Uplinks.end(); ++curr_uplink, ++servernum) - { - uplink_server = *curr_uplink; + ConfigReader config; + if (config.ReadFlag("uplink", "ssl", "no", Number - 1)) + { try { - new SSLSocket(uplink_server->host, uplink_server->port, Config.LocalHost ? Config.LocalHost : "", uplink_server->ipv6); + new SSLSocket(u->host, u->port, Config.LocalHost ? Config.LocalHost : "", u->ipv6); + Alog() << "Connected to Server " << Number << " (" << u->host << ":" << u->port << ")"; } catch (SocketException& ex) { - Alog() << "Unable to connect to server" << servernum << " (" << uplink_server->host << ":" << uplink_server->port << "), " << ex.GetReason(); - continue; + Alog() << "Unable to connect with SSL to server" << Number << " (" << u->host << ":" << u->port << "), " << ex.GetReason(); } - Alog() << "Connected to Server " << servernum << " (" << uplink_server->host << ":" << uplink_server->port << ")"; return EVENT_ALLOW; } - return EVENT_STOP; + return EVENT_CONTINUE; } }; -- cgit