~singpolyma/biboumi

c307df85c8e7d9bcd4570269bf13c3e92c3f5954 — Florent Le Coz 7 years ago 2df0ebf
Do not handle the "%" char in a special way, in the fixed_server mode

Also fix some doc
4 files changed, 19 insertions(+), 26 deletions(-)

M doc/biboumi.1.md
M src/irc/iid.cpp
M src/test.cpp
D src/utils/empty_if_fixed_server.cpp
M doc/biboumi.1.md => doc/biboumi.1.md +13 -9
@@ 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`


M src/irc/iid.cpp => src/irc/iid.cpp +1 -4
@@ 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;
    }
}

M src/test.cpp => src/test.cpp +5 -5
@@ 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);

D src/utils/empty_if_fixed_server.cpp => src/utils/empty_if_fixed_server.cpp +0 -8
@@ 1,8 0,0 @@
// #include <utils/empty_if_fixed_server.hpp>

// #include <config/config.hpp>

// namespace utils
// {
//   inline std::string empty_if_fixed_server(std::string&& str)
// }