Commit c307df85 authored by louiz’'s avatar louiz’

Do not handle the "%" char in a special way, in the fixed_server mode

Also fix some doc
parent 2df0ebf2
......@@ -63,15 +63,19 @@ The configuration file uses a simple format of the form
If this option contains the hostname of an IRC server (for example
irc.example.org), then biboumi will enforce the connexion to that IRC
server only. This means that a JID like "#chan@irc.biboumi.org" must be
used instead of "#chan%irc.example.org@irc.biboumi.org". In that mode,
the virtual channel (see *Connect to an IRC server*) is not available and
you still need to use the ! separator to send message to an IRC user (for
example "foo!@biboumi.example.com" to send a message to foo), although the
in-room JID still work as expected ("#channel@biboumi.example.com/Nick").
This option can for example be used by an administrator that just wants to
let their users join their own IRC server using an XMPP client, but
without letting them join any other IRC servers on the internet.
server only. This means that a JID like "#chan@biboumi.example.com" must
be used instead of "#chan%irc.example.org@biboumi.example.com". In that
mode, the virtual channel (see *Connect to an IRC server*) is not
available and you still need to use the ! separator to send message to an
IRC user (for example "foo!@biboumi.example.com" to send a message to
foo), although the in-room JID still work as expected
("#channel@biboumi.example.com/Nick"). On the other hand, the '%' lose
any meaning. It can appear in the JID but will not be interpreted as a
separator (thus the JID "#channel%hello@biboumi.example.com" points to the
channel named "#channel%hello" on the configured IRC server) This option
can for example be used by an administrator that just wants to let their
users join their own IRC server using an XMPP client, while forbidding
access to any other IRC server.
`log_file`
......
......@@ -35,7 +35,7 @@ void Iid::init_with_fixed_server(const std::string& iid, const std::string& host
{
this->set_server(hostname);
const std::string::size_type sep = iid.find_first_of("%!");
const std::string::size_type sep = iid.find("!");
// Without any separator, we consider that it's a channel
if (sep == std::string::npos)
......@@ -47,9 +47,6 @@ void Iid::init_with_fixed_server(const std::string& iid, const std::string& host
// but the part behind it (the hostname) is ignored
{
this->set_local(iid.substr(0, sep));
if (iid[sep] == '%')
this->is_channel = true;
else
this->is_user = true;
}
}
......
......@@ -369,13 +369,13 @@ int main()
Iid iid2("#test%irc.example.org");
std::cout << std::to_string(iid2) << std::endl;
assert(std::to_string(iid2) == "#test");
assert(iid2.get_local() == "#test");
assert(std::to_string(iid2) == "#test%irc.example.org");
assert(iid2.get_local() == "#test%irc.example.org");
assert(iid2.get_server() == "fixed.example.com");
assert(iid2.is_channel);
assert(!iid2.is_user);
// Note that it is impossible to adress the XMPP server directly, or to
// Note that it is impossible to adress the IRC server directly, or to
// use the virtual channel, in that mode
// Iid iid3("%irc.example.org");
......@@ -391,8 +391,8 @@ int main()
Iid iid6("##channel%");
std::cout << std::to_string(iid6) << std::endl;
assert(std::to_string(iid6) == "##channel");
assert(iid6.get_local() == "##channel");
assert(std::to_string(iid6) == "##channel%");
assert(iid6.get_local() == "##channel%");
assert(iid6.get_server() == "fixed.example.com");
assert(iid6.is_channel);
assert(!iid6.is_user);
......
// #include <utils/empty_if_fixed_server.hpp>
// #include <config/config.hpp>
// namespace utils
// {
// inline std::string empty_if_fixed_server(std::string&& str)
// }
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment