Add support for a fixed_irc_server configuration

This option lets the administrator choose a specific IRC server, and only
that server can be used with this biboumi instance.

In this mode, JIDs to use are changed like this:

- #chan%irc.example.com@biboumi.example.com      -> #chan@biboumi.example.com
- user!irc.example.com@biboumi.example.com       -> user!@biboumi.example.com
- #chan%irc.example.com@biboumi.example.com/Nick -> #chan@biboumi.example.com/Nick
- %irc.example.com@biboumi.example.com           -> no equivalent
- irc.example.com@biboumi.example.com            -> no equivalent
This commit is contained in:
Florent Le Coz
2015-02-25 18:35:30 +01:00
parent 1c43c3af4c
commit 2df0ebf2df
7 changed files with 191 additions and 34 deletions
+8
View File
@@ -0,0 +1,8 @@
// #include <utils/empty_if_fixed_server.hpp>
// #include <config/config.hpp>
// namespace utils
// {
// inline std::string empty_if_fixed_server(std::string&& str)
// }
+26
View File
@@ -0,0 +1,26 @@
#ifndef EMPTY_IF_FIXED_SERVER_HPP_INCLUDED
#define EMPTY_IF_FIXED_SERVER_HPP_INCLUDED
#include <string>
#include <config/config.hpp>
namespace utils
{
inline std::string empty_if_fixed_server(std::string&& str)
{
if (!Config::get("fixed_irc_server", "").empty())
return {};
return str;
}
inline std::string empty_if_fixed_server(const std::string& str)
{
if (!Config::get("fixed_irc_server", "").empty())
return {};
return str;
}
}
#endif /* EMPTY_IF_FIXED_SERVER_HPP_INCLUDED */