diff --git a/backends/libircclient-qt/singleircnetworkplugin.cpp b/backends/libircclient-qt/singleircnetworkplugin.cpp index 64260a2306f7812a6223d7fafa058a819c21a373..657251ef3a1536e81e34de0d95186f296773b72e 100644 --- a/backends/libircclient-qt/singleircnetworkplugin.cpp +++ b/backends/libircclient-qt/singleircnetworkplugin.cpp @@ -12,6 +12,13 @@ SingleIRCNetworkPlugin::SingleIRCNetworkPlugin(Config *config, Swift::QtEventLoo m_socket->connectToHost(QString::fromStdString(host), port); connect(m_socket, SIGNAL(readyRead()), this, SLOT(readData())); + if (config->getUnregistered().find("service.irc_identify") != config->getUnregistered().end()) { + m_identify = config->getUnregistered().find("service.irc_identify")->second; + } + else { + m_identify = "NickServ identify $name $password"; + } + LOG4CXX_INFO(logger, "SingleIRCNetworkPlugin for server " << m_server << " initialized."); } @@ -39,6 +46,12 @@ void SingleIRCNetworkPlugin::handleLoginRequest(const std::string &user, const s MyIrcSession *session = new MyIrcSession(user, this); session->setNick(QString::fromStdString(legacyName)); session->connectToServer(QString::fromStdString(m_server), 6667); + + std::string identify = m_identify; + boost::replace_all(identify, "$password", password); + boost::replace_all(identify, "$name", legacyName); + session->setIdentify(identify); + m_sessions[user] = session; }