From c307df85c8e7d9bcd4570269bf13c3e92c3f5954 Mon Sep 17 00:00:00 2001 From: Florent Le Coz Date: Wed, 25 Feb 2015 19:05:04 +0100 Subject: Do not handle the "%" char in a special way, in the fixed_server mode Also fix some doc --- doc/biboumi.1.md | 22 +++++++++++++--------- src/irc/iid.cpp | 5 +---- src/test.cpp | 10 +++++----- src/utils/empty_if_fixed_server.cpp | 8 -------- 4 files changed, 19 insertions(+), 26 deletions(-) delete mode 100644 src/utils/empty_if_fixed_server.cpp diff --git a/doc/biboumi.1.md b/doc/biboumi.1.md index 9e95139..3fd5a25 100644 --- a/doc/biboumi.1.md +++ b/doc/biboumi.1.md @@ -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` diff --git a/src/irc/iid.cpp b/src/irc/iid.cpp index d4dc8ce..9d39129 100644 --- a/src/irc/iid.cpp +++ b/src/irc/iid.cpp @@ -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; } } diff --git a/src/test.cpp b/src/test.cpp index 9fa2c99..553140f 100644 --- a/src/test.cpp +++ b/src/test.cpp @@ -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); diff --git a/src/utils/empty_if_fixed_server.cpp b/src/utils/empty_if_fixed_server.cpp deleted file mode 100644 index 85fd86d..0000000 --- a/src/utils/empty_if_fixed_server.cpp +++ /dev/null @@ -1,8 +0,0 @@ -// #include - -// #include - -// namespace utils -// { -// inline std::string empty_if_fixed_server(std::string&& str) -// } -- cgit v1.2.3