summaryrefslogtreecommitdiff
path: root/src/irc
diff options
context:
space:
mode:
authorlouiz’ <louiz@louiz.org>2017-03-08 15:39:50 +0100
committerlouiz’ <louiz@louiz.org>2017-03-27 11:49:07 +0200
commitb7789fe586f375f09134a0817bd3ac19850c048f (patch)
treefdd26bf038f7a151a374a91db478775caad6d236 /src/irc
parent1017e8f46bb6c4c9f878cba5e70f7c3a4c831433 (diff)
downloadbiboumi-b7789fe586f375f09134a0817bd3ac19850c048f.tar.gz
biboumi-b7789fe586f375f09134a0817bd3ac19850c048f.tar.bz2
biboumi-b7789fe586f375f09134a0817bd3ac19850c048f.tar.xz
biboumi-b7789fe586f375f09134a0817bd3ac19850c048f.zip
Add a Persistent option on channels
fix #3230
Diffstat (limited to 'src/irc')
-rw-r--r--src/irc/irc_client.cpp14
-rw-r--r--src/irc/irc_client.hpp2
2 files changed, 4 insertions, 12 deletions
diff --git a/src/irc/irc_client.cpp b/src/irc/irc_client.cpp
index 93e463b..00eab6f 100644
--- a/src/irc/irc_client.cpp
+++ b/src/irc/irc_client.cpp
@@ -501,15 +501,7 @@ void IrcClient::send_private_message(const std::string& username, const std::str
void IrcClient::send_part_command(const std::string& chan_name, const std::string& status_message)
{
- IrcChannel* channel = this->get_channel(chan_name);
- if (channel->joined == true)
- {
- if (chan_name.empty())
- this->leave_dummy_channel(status_message);
- else
- this->send_message(IrcMessage("PART", {chan_name, status_message}));
- channel->parting = true;
- }
+ this->send_message(IrcMessage("PART", {chan_name, status_message}));
}
void IrcClient::send_mode_command(const std::string& chan_name, const std::vector<std::string>& arguments)
@@ -1160,14 +1152,14 @@ DummyIrcChannel& IrcClient::get_dummy_channel()
return this->dummy_channel;
}
-void IrcClient::leave_dummy_channel(const std::string& exit_message)
+void IrcClient::leave_dummy_channel(const std::string& exit_message, const std::string& resource)
{
if (!this->dummy_channel.joined)
return;
this->dummy_channel.joined = false;
this->dummy_channel.joining = false;
this->dummy_channel.remove_all_users();
- this->bridge.send_muc_leave(Iid("%"s + this->hostname, this->chantypes), std::string(this->current_nick), exit_message, true);
+ this->bridge.send_muc_leave(Iid("%"s + this->hostname, this->chantypes), std::string(this->current_nick), exit_message, true, resource);
}
#ifdef BOTAN_FOUND
diff --git a/src/irc/irc_client.hpp b/src/irc/irc_client.hpp
index 009d0c9..435dce6 100644
--- a/src/irc/irc_client.hpp
+++ b/src/irc/irc_client.hpp
@@ -283,7 +283,7 @@ public:
* Leave the dummy channel: forward a message to the user to indicate that
* he left it, and mark it as not joined.
*/
- void leave_dummy_channel(const std::string& exit_message);
+ void leave_dummy_channel(const std::string& exit_message, const std::string& resource);
const std::string& get_hostname() const { return this->hostname; }
std::string get_nick() const { return this->current_nick; }