- // For each <bind> tag
- std::string x = Conf->ReadValue("bind", "type", i);
- if (((x.empty()) || (x == "clients")) && (Conf->ReadValue("bind", "ssl", i) == "openssl"))
- {
- // Get the port we're meant to be listening on with SSL
- std::string port = Conf->ReadValue("bind", "port", i);
- irc::portparser portrange(port, false);
- long portno = -1;
- while ((portno = portrange.GetToken()))
- {
- clientactive++;
- try
- {
- if (ServerInstance->Config->AddIOHook(portno, this))
- {
- listenports.push_back(portno);
- for (size_t i = 0; i < ServerInstance->Config->ports.size(); i++)
- if (ServerInstance->Config->ports[i]->GetPort() == portno)
- ServerInstance->Config->ports[i]->SetDescription("ssl");
- ServerInstance->Log(DEFAULT, "m_ssl_openssl.so: Enabling SSL for port %d", portno);
- sslports.append("*:").append(ConvToStr(portno)).append(";");
- }
- else
- {
- ServerInstance->Log(DEFAULT, "m_ssl_openssl.so: FAILED to enable SSL on port %d, maybe you have another ssl or similar module loaded?", portno);
- }
- }
- catch (ModuleException &e)
- {
- ServerInstance->Log(DEFAULT, "m_ssl_openssl.so: FAILED to enable SSL on port %d: %s. Maybe it's already hooked by the same port on a different IP, or you have another SSL or similar module loaded?", portno, e.GetReason());
- }
- }
- }
+ ListenSocketBase* port = ServerInstance->ports[i];
+ std::string desc = port->GetDescription();
+ if (desc != "openssl")
+ continue;
+
+ listenports.insert(port);
+ std::string portid = port->GetBindDesc();
+
+ ServerInstance->Logs->Log("m_ssl_openssl", DEFAULT, "m_ssl_openssl.so: Enabling SSL for port %s", portid.c_str());
+ if (port->GetIP() != "127.0.0.1")
+ sslports.append(portid).append(";");