Mercurial > irccd
changeset 129:49d1a5eeef6f
Irccd: store server name in object like plugin, #488
author | David Demelier <markand@malikania.fr> |
---|---|
date | Wed, 11 May 2016 21:00:49 +0200 |
parents | 2d8343b86e2e |
children | 483c862b5a52 |
files | lib/irccd/cmd-server-connect.cpp lib/irccd/cmd-server-info.cpp lib/irccd/cmd-server-list.cpp lib/irccd/config.cpp lib/irccd/js-server.cpp lib/irccd/server-state-connected.cpp lib/irccd/server-state-connecting.cpp lib/irccd/server-state-disconnected.cpp lib/irccd/server.cpp lib/irccd/server.hpp lib/irccd/service-server.cpp |
diffstat | 11 files changed, 115 insertions(+), 97 deletions(-) [+] |
line wrap: on
line diff
--- a/lib/irccd/cmd-server-connect.cpp Wed May 11 13:58:42 2016 +0200 +++ b/lib/irccd/cmd-server-connect.cpp Wed May 11 21:00:49 2016 +0200 @@ -18,12 +18,16 @@ #include <limits> +#include <format.h> + #include "cmd-server-connect.hpp" #include "irccd.hpp" #include "server.hpp" #include "service-server.hpp" #include "util.hpp" +using namespace fmt::literals; + namespace irccd { namespace command { @@ -76,11 +80,7 @@ { ServerInfo info; - /* Mandatory */ - info.name = readInfoName(object); info.host = readInfoHost(object); - - /* Optional */ info.port = readInfoPort(object); if (object.valueOr("ssl", json::Type::Boolean, false).toBool()) @@ -155,10 +155,11 @@ json::Value ServerConnect::exec(Irccd &irccd, const json::Value &request) const { - auto server = std::make_shared<Server>(readInfo(request), readIdentity(request), readSettings(request)); + auto server = std::make_shared<Server>(readInfoName(request), readInfo(request), readIdentity(request), + readSettings(request)); - if (irccd.serverService().hasServer(server->info().name)) { - throw std::invalid_argument("server '" + server->info().name + "' already exists"); + if (irccd.serverService().hasServer(server->name())) { + throw std::invalid_argument("server '{}' already exists"_format(server->name())); } irccd.serverService().addServer(std::move(server));
--- a/lib/irccd/cmd-server-info.cpp Wed May 11 13:58:42 2016 +0200 +++ b/lib/irccd/cmd-server-info.cpp Wed May 11 21:00:49 2016 +0200 @@ -57,7 +57,7 @@ auto response = RemoteCommand::exec(irccd, request); /* General stuff */ - response.insert("name", server->info().name); + response.insert("name", server->name()); response.insert("host", server->info().host); response.insert("port", server->info().port); response.insert("nickname", server->identity().nickname);
--- a/lib/irccd/cmd-server-list.cpp Wed May 11 13:58:42 2016 +0200 +++ b/lib/irccd/cmd-server-list.cpp Wed May 11 21:00:49 2016 +0200 @@ -43,7 +43,7 @@ auto list = json::array({}); for (const auto &server : irccd.serverService().servers()) { - list.append(server->info().name); + list.append(server->name()); } json.insert("list", std::move(list));
--- a/lib/irccd/config.cpp Wed May 11 13:58:42 2016 +0200 +++ b/lib/irccd/config.cpp Wed May 11 21:00:49 2016 +0200 @@ -318,6 +318,7 @@ { assert(sc.key() == "server"); + std::string name; ServerInfo info; ServerIdentity identity; ServerSettings settings; @@ -331,11 +332,11 @@ throw std::invalid_argument("server: invalid identifier: {}"_format(it->value())); } - info.name = it->value(); + name = it->value(); // Host if ((it = sc.find("host")) == sc.end()) { - throw std::invalid_argument("server {}: missing host"_format(it->value())); + throw std::invalid_argument("server {}: missing host"_format(name)); } info.host = it->value(); @@ -350,7 +351,7 @@ try { info.port = util::toNumber<std::uint16_t>(it->value()); } catch (const std::exception &) { - throw std::invalid_argument("server {}: invalid number for {}: {}"_format(info.name, it->key(), it->value())); + throw std::invalid_argument("server {}: invalid number for {}: {}"_format(name, it->key(), it->value())); } } @@ -413,10 +414,10 @@ settings.pingTimeout = util::toNumber<std::uint16_t>(it->value()); } } catch (const std::exception &) { - log::warning("server {}: invalid number for {}: {}"_format(info.name, it->key(), it->value())); + log::warning("server {}: invalid number for {}: {}"_format(name, it->key(), it->value())); } - return std::make_shared<Server>(std::move(info), std::move(identity), std::move(settings)); + return std::make_shared<Server>(std::move(name), std::move(info), std::move(identity), std::move(settings)); } } // !namespace
--- a/lib/irccd/js-server.cpp Wed May 11 13:58:42 2016 +0200 +++ b/lib/irccd/js-server.cpp Wed May 11 21:00:49 2016 +0200 @@ -80,7 +80,7 @@ auto server = duk::self<duk::Shared<Server>>(ctx); duk::push(ctx, duk::Object{}); - duk::putProperty(ctx, -1, "name", server->info().name); + duk::putProperty(ctx, -1, "name", server->name()); duk::putProperty(ctx, -1, "host", server->info().host); duk::putProperty<int>(ctx, -1, "port", server->info().port); duk::putProperty<bool>(ctx, -1, "ssl", server->info().flags & ServerInfo::Ssl); @@ -336,7 +336,7 @@ */ duk::Ret toString(duk::ContextPtr ctx) { - duk::push(ctx, duk::self<duk::Shared<Server>>(ctx)->info().name); + duk::push(ctx, duk::self<duk::Shared<Server>>(ctx)->name()); return 1; } @@ -367,12 +367,13 @@ if (!duk_is_constructor_call(ctx)) return 0; + std::string name; ServerInfo info; ServerIdentity identity; ServerSettings settings; - /* Information part */ - info.name = duk::getProperty<std::string>(ctx, 0, "name"); + // Information part. + name = duk::getProperty<std::string>(ctx, 0, "name"); info.host = duk::getProperty<std::string>(ctx, 0, "host"); info.port = duk::optionalProperty<int>(ctx, 0, "port", (int)info.port); info.password = duk::optionalProperty<std::string>(ctx, 0, "password", ""); @@ -381,13 +382,13 @@ info.flags |= ServerInfo::Ipv6; } - /* Identity part */ + // Identity part. identity.nickname = duk::optionalProperty<std::string>(ctx, 0, "nickname", identity.nickname); identity.username = duk::optionalProperty<std::string>(ctx, 0, "username", identity.username); identity.realname = duk::optionalProperty<std::string>(ctx, 0, "realname", identity.realname); identity.ctcpversion = duk::optionalProperty<std::string>(ctx, 0, "version", identity.ctcpversion); - /* Settings part */ + // Settings part. for (const auto &chan: duk::getProperty<std::vector<std::string>>(ctx, 0, "channels")) { settings.channels.push_back(Server::splitChannel(chan)); } @@ -403,7 +404,8 @@ } try { - duk::construct(ctx, duk::Shared<Server>{std::make_shared<Server>(std::move(info), std::move(identity), std::move(settings))}); + duk::construct(ctx, duk::Shared<Server>{std::make_shared<Server>(std::move(name), std::move(info), + std::move(identity), std::move(settings))}); } catch (const std::exception &ex) { duk::raise(ctx, duk::Error(ex.what())); } @@ -470,7 +472,7 @@ duk::push(ctx, duk::Object{}); for (const auto &server : duk::getGlobal<duk::RawPointer<Irccd>>(ctx, "\xff""\xff""irccd")->serverService().servers()) { - duk::putProperty(ctx, -1, server->info().name, duk::Shared<Server>{server}); + duk::putProperty(ctx, -1, server->name(), duk::Shared<Server>{server}); } return 1;
--- a/lib/irccd/server-state-connected.cpp Wed May 11 13:58:42 2016 +0200 +++ b/lib/irccd/server-state-connected.cpp Wed May 11 21:00:49 2016 +0200 @@ -31,19 +31,18 @@ void Connected::prepare(Server &server, fd_set &setinput, fd_set &setoutput, net::Handle &maxfd) { - const ServerInfo &info = server.info(); const ServerSettings &settings = server.settings(); if (!irc_is_connected(server.session())) { - log::warning() << "server " << info.name << ": disconnected" << std::endl; + log::warning() << "server " << server.name() << ": disconnected" << std::endl; if (settings.reconnectDelay > 0) { - log::warning("server {}: retrying in {} seconds"_format(info.name, settings.reconnectDelay)); + log::warning("server {}: retrying in {} seconds"_format(server.name(), settings.reconnectDelay)); } server.next(std::make_unique<state::Disconnected>()); } else if (server.cache().pingTimer.elapsed() >= settings.pingTimeout * 1000) { - log::warning() << "server " << info.name << ": ping timeout after " + log::warning() << "server " << server.name() << ": ping timeout after " << (server.cache().pingTimer.elapsed() / 1000) << " seconds" << std::endl; server.next(std::make_unique<state::Disconnected>()); } else {
--- a/lib/irccd/server-state-connecting.cpp Wed May 11 13:58:42 2016 +0200 +++ b/lib/irccd/server-state-connecting.cpp Wed May 11 21:00:49 2016 +0200 @@ -94,14 +94,14 @@ const ServerSettings &settings = server.settings(); if (m_timer.elapsed() > static_cast<unsigned>(settings.reconnectDelay * 1000)) { - log::warning() << "server " << info.name << ": timeout while connecting" << std::endl; + log::warning() << "server " << server.name() << ": timeout while connecting" << std::endl; server.next(std::make_unique<state::Disconnected>()); } else if (!irc_is_connected(server.session())) { - log::warning() << "server " << info.name << ": error while connecting: "; + log::warning() << "server " << server.name() << ": error while connecting: "; log::warning() << irc_strerror(irc_errno(server.session())) << std::endl; if (settings.reconnectTries != 0) { - log::warning("server {}: retrying in {} seconds"_format(info.name, settings.reconnectDelay)); + log::warning("server {}: retrying in {} seconds"_format(server.name(), settings.reconnectDelay)); } server.next(std::make_unique<state::Disconnected>()); @@ -118,10 +118,10 @@ #if !defined(IRCCD_SYSTEM_WINDOWS) (void)res_init(); #endif - log::info() << "server " << info.name << ": trying to connect to " << info.host << ", port " << info.port << std::endl; + log::info("server {}: trying to connect to {}, port {}"_format(server.name(), info.host, info.port)); if (!connect(server)) { - log::warning() << "server " << info.name << ": disconnected while connecting: "; + log::warning() << "server " << server.name() << ": disconnected while connecting: "; log::warning() << irc_strerror(irc_errno(server.session())) << std::endl; server.next(std::make_unique<state::Disconnected>()); } else {
--- a/lib/irccd/server-state-disconnected.cpp Wed May 11 13:58:42 2016 +0200 +++ b/lib/irccd/server-state-disconnected.cpp Wed May 11 21:00:49 2016 +0200 @@ -32,10 +32,10 @@ ServerCache &cache = server.cache(); if (settings.reconnectTries == 0) { - log::warning() << "server " << info.name << ": reconnection disabled, skipping" << std::endl; + log::warning() << "server " << server.name() << ": reconnection disabled, skipping" << std::endl; server.onDie(); } else if (settings.reconnectTries > 0 && cache.reconnectCurrent > settings.reconnectTries) { - log::warning() << "server " << info.name << ": giving up" << std::endl; + log::warning() << "server " << server.name() << ": giving up" << std::endl; server.onDie(); } else { if (m_timer.elapsed() > static_cast<unsigned>(settings.reconnectDelay * 1000)) {
--- a/lib/irccd/server.cpp Wed May 11 13:58:42 2016 +0200 +++ b/lib/irccd/server.cpp Wed May 11 21:00:49 2016 +0200 @@ -130,7 +130,7 @@ /* Auto join listed channels. */ for (const ServerChannel &channel : m_settings.channels) { - log::info() << "server " << m_info.name << ": auto joining " << channel.name << std::endl; + log::info() << "server " << m_name << ": auto joining " << channel.name << std::endl; join(channel.name, channel.password); } } @@ -362,8 +362,9 @@ return ServerChannel{value, ""}; } -Server::Server(ServerInfo info, ServerIdentity identity, ServerSettings settings) - : m_info(std::move(info)) +Server::Server(std::string name, ServerInfo info, ServerIdentity identity, ServerSettings settings) + : m_name(std::move(name)) + , m_info(std::move(info)) , m_settings(std::move(settings)) , m_identity(std::move(identity)) , m_session(std::make_unique<Session>()) @@ -447,7 +448,7 @@ void Server::update() noexcept { if (m_stateNext) { - log::debug("server {}: switch state {} -> {}"_format(m_info.name, m_state->ident(), m_stateNext->ident())); + log::debug("server {}: switch state {} -> {}"_format(m_name, m_state->ident(), m_stateNext->ident())); m_state = std::move(m_stateNext); m_stateNext = nullptr;
--- a/lib/irccd/server.hpp Wed May 11 13:58:42 2016 +0200 +++ b/lib/irccd/server.hpp Wed May 11 21:00:49 2016 +0200 @@ -98,7 +98,6 @@ SslVerify = (1 << 2) //!< Verify SSL }; - std::string name; //!< Server's name std::string host; //!< Hostname std::string password; //!< Optional server password std::uint16_t port{6667}; //!< Server's port @@ -373,22 +372,26 @@ Signal<ServerWhois> onWhois; private: + // Identifier. + std::string m_name; + + // Various settings. ServerInfo m_info; ServerSettings m_settings; ServerIdentity m_identity; ServerCache m_cache; - /* queue of requests to send */ + // Queue of requests to send. std::queue<std::function<bool ()>> m_queue; - /* libircclient session (bridge) */ + // libircclient session (bridge). std::unique_ptr<Session> m_session; - /* States */ + // States. std::unique_ptr<ServerState> m_state; std::unique_ptr<ServerState> m_stateNext; - /* Handle libircclient callbacks */ + // Handle libircclient callbacks. void handleChannel(const char *, const char **) noexcept; void handleChannelMode(const char *, const char **) noexcept; void handleChannelNotice(const char *, const char **) noexcept; @@ -418,11 +421,12 @@ /** * Construct a server. * + * \param name the identifier * \param info the information * \param identity the identity * \param settings the settings */ - Server(ServerInfo info, ServerIdentity identity = {}, ServerSettings settings = {}); + Server(std::string name, ServerInfo info, ServerIdentity identity = {}, ServerSettings settings = {}); /** * Destructor. Close the connection if needed. @@ -430,6 +434,16 @@ virtual ~Server(); /** + * Get the server identifier. + * + * \return the id + */ + inline const std::string &name() const noexcept + { + return m_name; + } + + /** * Get the server information. * * \return the server information
--- a/lib/irccd/service-server.cpp Wed May 11 13:58:42 2016 +0200 +++ b/lib/irccd/service-server.cpp Wed May 11 21:00:49 2016 +0200 @@ -42,7 +42,7 @@ return; } - log::debug() << "server " << server->info().name << ": event onChannelMode:\n"; + log::debug() << "server " << server->name() << ": event onChannelMode:\n"; log::debug() << " origin: " << origin << "\n"; log::debug() << " channel: " << channel << "\n"; log::debug() << " mode: " << mode << "\n"; @@ -50,7 +50,7 @@ m_irccd.transportService().broadcast(json::object({ { "event", "onChannelMode" }, - { "server", server->info().name }, + { "server", server->name() }, { "origin", origin }, { "channel", channel }, { "mode", mode }, @@ -58,7 +58,7 @@ }).toJson(0)); #if defined(WITH_JS) - m_irccd.post(ServerEvent(server->info().name, origin, channel, + m_irccd.post(ServerEvent(server->name(), origin, channel, [=] (Plugin &) -> std::string { return "onChannelMode"; }, @@ -77,21 +77,21 @@ return; } - log::debug() << "server " << server->info().name << ": event onChannelNotice:\n"; + log::debug() << "server " << server->name() << ": event onChannelNotice:\n"; log::debug() << " origin: " << origin << "\n"; log::debug() << " channel: " << channel << "\n"; log::debug() << " message: " << message << std::endl; m_irccd.transportService().broadcast(json::object({ { "event", "onChannelNotice" }, - { "server", server->info().name }, + { "server", server->name() }, { "origin", origin }, { "channel", channel }, { "message", message } }).toJson(0)); #if defined(WITH_JS) - m_irccd.post(ServerEvent(server->info().name, origin, channel, + m_irccd.post(ServerEvent(server->name(), origin, channel, [=] (Plugin &) -> std::string { return "onChannelNotice"; }, @@ -110,15 +110,15 @@ return; } - log::debug() << "server " << server->info().name << ": event onConnect" << std::endl; + log::debug() << "server " << server->name() << ": event onConnect" << std::endl; m_irccd.transportService().broadcast(json::object({ { "event", "onConnect" }, - { "server", server->info().name } + { "server", server->name() } }).toJson(0)); #if defined(WITH_JS) - m_irccd.post(ServerEvent(server->info().name, /* origin */ "", /* channel */ "", + m_irccd.post(ServerEvent(server->name(), /* origin */ "", /* channel */ "", [=] (Plugin &) -> std::string { return "onConnect"; }, @@ -137,20 +137,20 @@ return; } - log::debug() << "server " << server->info().name << ": event onInvite:\n"; + log::debug() << "server " << server->name() << ": event onInvite:\n"; log::debug() << " origin: " << origin << "\n"; log::debug() << " channel: " << channel << "\n"; log::debug() << " target: " << target << std::endl; m_irccd.transportService().broadcast(json::object({ { "event", "onInvite" }, - { "server", server->info().name }, + { "server", server->name() }, { "origin", origin }, { "channel", channel } }).toJson(0)); #if defined(WITH_JS) - m_irccd.post(ServerEvent(server->info().name, origin, channel, + m_irccd.post(ServerEvent(server->name(), origin, channel, [=] (Plugin &) -> std::string { return "onInvite"; }, @@ -169,19 +169,19 @@ return; } - log::debug() << "server " << server->info().name << ": event onJoin:\n"; + log::debug() << "server " << server->name() << ": event onJoin:\n"; log::debug() << " origin: " << origin << "\n"; log::debug() << " channel: " << channel << std::endl; m_irccd.transportService().broadcast(json::object({ { "event", "onJoin" }, - { "server", server->info().name }, + { "server", server->name() }, { "origin", origin }, { "channel", channel } }).toJson(0)); #if defined(WITH_JS) - m_irccd.post(ServerEvent(server->info().name, origin, channel, + m_irccd.post(ServerEvent(server->name(), origin, channel, [=] (Plugin &) -> std::string { return "onJoin"; }, @@ -200,7 +200,7 @@ return; } - log::debug() << "server " << server->info().name << ": event onKick:\n"; + log::debug() << "server " << server->name() << ": event onKick:\n"; log::debug() << " origin: " << origin << "\n"; log::debug() << " channel: " << channel << "\n"; log::debug() << " target: " << target << "\n"; @@ -208,7 +208,7 @@ m_irccd.transportService().broadcast(json::object({ { "event", "onKick" }, - { "server", server->info().name }, + { "server", server->name() }, { "origin", origin }, { "channel", channel }, { "target", target }, @@ -216,7 +216,7 @@ }).toJson(0)); #if defined(WITH_JS) - m_irccd.post(ServerEvent(server->info().name, origin, channel, + m_irccd.post(ServerEvent(server->name(), origin, channel, [=] (Plugin &) -> std::string { return "onKick"; }, @@ -235,21 +235,21 @@ return; } - log::debug() << "server " << server->info().name << ": event onMessage:\n"; + log::debug() << "server " << server->name() << ": event onMessage:\n"; log::debug() << " origin: " << origin << "\n"; log::debug() << " channel: " << channel << "\n"; log::debug() << " message: " << message << std::endl; m_irccd.transportService().broadcast(json::object({ { "event", "onMessage" }, - { "server", server->info().name }, + { "server", server->name() }, { "origin", origin }, { "channel", channel }, { "message", message } }).toJson(0)); #if defined(WITH_JS) - m_irccd.post(ServerEvent(server->info().name, origin, channel, + m_irccd.post(ServerEvent(server->name(), origin, channel, [=] (Plugin &plugin) -> std::string { return util::parseMessage(message, server->settings().command, plugin.name()).second == util::MessageType::Command ? "onCommand" : "onMessage"; }, @@ -273,21 +273,21 @@ return; } - log::debug() << "server " << server->info().name << ": event onMe:\n"; + log::debug() << "server " << server->name() << ": event onMe:\n"; log::debug() << " origin: " << origin << "\n"; log::debug() << " target: " << target << "\n"; log::debug() << " message: " << message << std::endl; m_irccd.transportService().broadcast(json::object({ { "event", "onMe" }, - { "server", server->info().name }, + { "server", server->name() }, { "origin", origin }, { "target", target }, { "message", message } }).toJson(0)); #if defined(WITH_JS) - m_irccd.post(ServerEvent(server->info().name, origin, target, + m_irccd.post(ServerEvent(server->name(), origin, target, [=] (Plugin &) -> std::string { return "onMe"; }, @@ -306,19 +306,19 @@ return; } - log::debug() << "server " << server->info().name << ": event onMode\n"; + log::debug() << "server " << server->name() << ": event onMode\n"; log::debug() << " origin: " << origin << "\n"; log::debug() << " mode: " << mode << std::endl; m_irccd.transportService().broadcast(json::object({ { "event", "onMode" }, - { "server", server->info().name }, + { "server", server->name() }, { "origin", origin }, { "mode", mode } }).toJson(0)); #if defined(WITH_JS) - m_irccd.post(ServerEvent(server->info().name, origin, /* channel */ "", + m_irccd.post(ServerEvent(server->name(), origin, /* channel */ "", [=] (Plugin &) -> std::string { return "onMode"; }, @@ -337,7 +337,7 @@ return; } - log::debug() << "server " << server->info().name << ": event onNames:\n"; + log::debug() << "server " << server->name() << ": event onNames:\n"; log::debug() << " channel: " << channel << "\n"; log::debug() << " names: " << util::join(nicknames.begin(), nicknames.end(), ", ") << std::endl; @@ -345,13 +345,13 @@ m_irccd.transportService().broadcast(json::object({ { "event", "onNames" }, - { "server", server->info().name }, + { "server", server->name() }, { "channel", channel }, { "names", std::move(names) } }).toJson(0)); #if defined(WITH_JS) - m_irccd.post(ServerEvent(server->info().name, /* origin */ "", channel, + m_irccd.post(ServerEvent(server->name(), /* origin */ "", channel, [=] (Plugin &) -> std::string { return "onNames"; }, @@ -370,19 +370,19 @@ return; } - log::debug() << "server " << server->info().name << ": event onNick:\n"; + log::debug() << "server " << server->name() << ": event onNick:\n"; log::debug() << " origin: " << origin << "\n"; log::debug() << " nickname: " << nickname << std::endl; m_irccd.transportService().broadcast(json::object({ { "event", "onNick" }, - { "server", server->info().name }, + { "server", server->name() }, { "origin", origin }, { "nickname", nickname } }).toJson(0)); #if defined(WITH_JS) - m_irccd.post(ServerEvent(server->info().name, origin, /* channel */ "", + m_irccd.post(ServerEvent(server->name(), origin, /* channel */ "", [=] (Plugin &) -> std::string { return "onNick"; }, @@ -401,19 +401,19 @@ return; } - log::debug() << "server " << server->info().name << ": event onNotice:\n"; + log::debug() << "server " << server->name() << ": event onNotice:\n"; log::debug() << " origin: " << origin << "\n"; log::debug() << " message: " << message << std::endl; m_irccd.transportService().broadcast(json::object({ { "event", "onNotice" }, - { "server", server->info().name }, + { "server", server->name() }, { "origin", origin }, { "message", message } }).toJson(0)); #if defined(WITH_JS) - m_irccd.post(ServerEvent(server->info().name, origin, /* channel */ "", + m_irccd.post(ServerEvent(server->name(), origin, /* channel */ "", [=] (Plugin &) -> std::string { return "onNotice"; }, @@ -432,21 +432,21 @@ return; } - log::debug() << "server " << server->info().name << ": event onPart:\n"; + log::debug() << "server " << server->name() << ": event onPart:\n"; log::debug() << " origin: " << origin << "\n"; log::debug() << " channel: " << channel << "\n"; log::debug() << " reason: " << reason << std::endl; m_irccd.transportService().broadcast(json::object({ { "event", "onPart" }, - { "server", server->info().name }, + { "server", server->name() }, { "origin", origin }, { "channel", channel }, { "reason", reason } }).toJson(0)); #if defined(WITH_JS) - m_irccd.post(ServerEvent(server->info().name, origin, channel, + m_irccd.post(ServerEvent(server->name(), origin, channel, [=] (Plugin &) -> std::string { return "onPart"; }, @@ -465,19 +465,19 @@ return; } - log::debug() << "server " << server->info().name << ": event onQuery:\n"; + log::debug() << "server " << server->name() << ": event onQuery:\n"; log::debug() << " origin: " << origin << "\n"; log::debug() << " message: " << message << std::endl; m_irccd.transportService().broadcast(json::object({ { "event", "onQuery" }, - { "server", server->info().name }, + { "server", server->name() }, { "origin", origin }, { "message", message } }).toJson(0)); #if defined(WITH_JS) - m_irccd.post(ServerEvent(server->info().name, origin, /* channel */ "", + m_irccd.post(ServerEvent(server->name(), origin, /* channel */ "", [=] (Plugin &plugin) -> std::string { return util::parseMessage(message, server->settings().command, plugin.name()).second == util::MessageType::Command ? "onQueryCommand" : "onQuery"; }, @@ -501,21 +501,21 @@ return; } - log::debug() << "server " << server->info().name << ": event onTopic:\n"; + log::debug() << "server " << server->name() << ": event onTopic:\n"; log::debug() << " origin: " << origin << "\n"; log::debug() << " channel: " << channel << "\n"; log::debug() << " topic: " << topic << std::endl; m_irccd.transportService().broadcast(json::object({ { "event", "onTopic" }, - { "server", server->info().name }, + { "server", server->name() }, { "origin", origin }, { "channel", channel }, { "topic", topic } }).toJson(0)); #if defined(WITH_JS) - m_irccd.post(ServerEvent(server->info().name, origin, channel, + m_irccd.post(ServerEvent(server->name(), origin, channel, [=] (Plugin &) -> std::string { return "onTopic"; }, @@ -534,7 +534,7 @@ return; } - log::debug() << "server " << server->info().name << ": event onWhois\n"; + log::debug() << "server " << server->name() << ": event onWhois\n"; log::debug() << " nickname: " << whois.nick << "\n"; log::debug() << " username: " << whois.user << "\n"; log::debug() << " host: " << whois.host << "\n"; @@ -542,7 +542,7 @@ log::debug() << " channels: " << util::join(whois.channels.begin(), whois.channels.end()) << std::endl; m_irccd.transportService().broadcast(json::object({ - { "server", server->info().name }, + { "server", server->name() }, { "nickname", whois.nick }, { "username", whois.user }, { "host", whois.host }, @@ -550,7 +550,7 @@ }).toJson(0)); #if defined(WITH_JS) - m_irccd.post(ServerEvent(server->info().name, /* origin */ "", /* channel */ "", + m_irccd.post(ServerEvent(server->name(), /* origin */ "", /* channel */ "", [=] (Plugin &) -> std::string { return "onWhois"; }, @@ -583,14 +583,14 @@ bool ServerService::hasServer(const std::string &name) const noexcept { - return std::count_if(m_servers.cbegin(), m_servers.end(), [&] (const auto &sv) { - return sv->info().name == name; + return std::count_if(m_servers.cbegin(), m_servers.end(), [&] (const auto &server) { + return server->name() == name; }) > 0; } void ServerService::addServer(std::shared_ptr<Server> server) noexcept { - assert(!hasServer(server->info().name)); + assert(!hasServer(server->name())); using namespace std::placeholders; @@ -617,7 +617,7 @@ auto server = ptr.lock(); if (server) { - log::info("server {}: removed"_format(server->info().name)); + log::info("server {}: removed"_format(server->name())); m_servers.erase(std::find(m_servers.begin(), m_servers.end(), server)); } }); @@ -629,7 +629,7 @@ std::shared_ptr<Server> ServerService::getServer(const std::string &name) const noexcept { auto it = std::find_if(m_servers.begin(), m_servers.end(), [&] (const auto &server) { - return server->info().name == name; + return server->name() == name; }); if (it == m_servers.end()) { @@ -653,7 +653,7 @@ void ServerService::removeServer(const std::string &name) { auto it = std::find_if(m_servers.begin(), m_servers.end(), [&] (const auto &server) { - return server->info().name == name; + return server->name() == name; }); if (it != m_servers.end()) {