Revert "Add a linger_time configuration option on IRC servers"
This reverts commit 5d801ddcd0.
This commit is contained in:
@@ -24,7 +24,6 @@
|
|||||||
<field name="realname" type="string" length="1024" default=""/>
|
<field name="realname" type="string" length="1024" default=""/>
|
||||||
<field name="verifyCert" type="boolean" default="true"/>
|
<field name="verifyCert" type="boolean" default="true"/>
|
||||||
<field name="trustedFingerprint" type="string"/>
|
<field name="trustedFingerprint" type="string"/>
|
||||||
<field name="lingerTime" type="integer" default="0"/>
|
|
||||||
|
|
||||||
<field name="encodingOut" type="string" default="ISO-8859-1"/>
|
<field name="encodingOut" type="string" default="ISO-8859-1"/>
|
||||||
<field name="encodingIn" type="string" default="ISO-8859-1"/>
|
<field name="encodingIn" type="string" default="ISO-8859-1"/>
|
||||||
|
|||||||
+1
-21
@@ -12,7 +12,6 @@
|
|||||||
#include <database/database.hpp>
|
#include <database/database.hpp>
|
||||||
#include "result_set_management.hpp"
|
#include "result_set_management.hpp"
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
#include <utils/timed_events.hpp>
|
|
||||||
|
|
||||||
using namespace std::string_literals;
|
using namespace std::string_literals;
|
||||||
|
|
||||||
@@ -892,7 +891,7 @@ void Bridge::send_muc_leave(const Iid& iid, const std::string& nick,
|
|||||||
}
|
}
|
||||||
IrcClient* irc = this->find_irc_client(iid.get_server());
|
IrcClient* irc = this->find_irc_client(iid.get_server());
|
||||||
if (self && irc && irc->number_of_joined_channels() == 0)
|
if (self && irc && irc->number_of_joined_channels() == 0)
|
||||||
this->quit_or_start_linger_timer(iid.get_server());
|
irc->send_quit_command("");
|
||||||
}
|
}
|
||||||
|
|
||||||
void Bridge::send_nick_change(Iid&& iid,
|
void Bridge::send_nick_change(Iid&& iid,
|
||||||
@@ -1244,22 +1243,3 @@ void Bridge::set_record_history(const bool val)
|
|||||||
this->record_history = val;
|
this->record_history = val;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void Bridge::quit_or_start_linger_timer(const std::string& irc_hostname)
|
|
||||||
{
|
|
||||||
#ifdef USE_DATABASE
|
|
||||||
auto options = Database::get_irc_server_options(this->get_bare_jid(),
|
|
||||||
irc_hostname);
|
|
||||||
const auto timeout = std::chrono::seconds(options.lingerTime.value());
|
|
||||||
#else
|
|
||||||
const auto timeout = 0s;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
const auto event_name = "IRCLINGER:" + irc_hostname + ".." + this->get_bare_jid();
|
|
||||||
TimedEvent event(std::chrono::steady_clock::now() + timeout, [this, irc_hostname]() {
|
|
||||||
IrcClient* irc = this->find_irc_client(irc_hostname);
|
|
||||||
if (irc)
|
|
||||||
irc->send_quit_command("");
|
|
||||||
}, event_name);
|
|
||||||
TimedEventsManager::instance().add_event(std::move(event));
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -236,11 +236,6 @@ public:
|
|||||||
#ifdef USE_DATABASE
|
#ifdef USE_DATABASE
|
||||||
void set_record_history(const bool val);
|
void set_record_history(const bool val);
|
||||||
#endif
|
#endif
|
||||||
/**
|
|
||||||
* Start a timer that will send a QUIT command after the
|
|
||||||
* configured linger time is expired.
|
|
||||||
*/
|
|
||||||
void quit_or_start_linger_timer(const std::string& irc_hostname);
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -319,16 +319,6 @@ void ConfigureIrcServerStep1(XmppComponent&, AdhocSession& session, XmlNode& com
|
|||||||
XmlSubNode encoding_in_value(encoding_in, "value");
|
XmlSubNode encoding_in_value(encoding_in, "value");
|
||||||
encoding_in_value.set_inner(options.encodingIn.value());
|
encoding_in_value.set_inner(options.encodingIn.value());
|
||||||
}
|
}
|
||||||
|
|
||||||
XmlSubNode linger_time(x, "field");
|
|
||||||
linger_time["var"] = "linger_time";
|
|
||||||
linger_time["type"] = "text-single";
|
|
||||||
linger_time["desc"] = "The number of seconds to wait before sending a QUIT command, after the last channel on that server has been left.";
|
|
||||||
linger_time["label"] = "Linger time";
|
|
||||||
{
|
|
||||||
XmlSubNode linger_time_value(linger_time, "value");
|
|
||||||
linger_time_value.set_inner(std::to_string(options.lingerTime.value()));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void ConfigureIrcServerStep2(XmppComponent&, AdhocSession& session, XmlNode& command_node)
|
void ConfigureIrcServerStep2(XmppComponent&, AdhocSession& session, XmlNode& command_node)
|
||||||
@@ -408,10 +398,6 @@ void ConfigureIrcServerStep2(XmppComponent&, AdhocSession& session, XmlNode& com
|
|||||||
value && !value->get_inner().empty())
|
value && !value->get_inner().empty())
|
||||||
options.encodingIn = value->get_inner();
|
options.encodingIn = value->get_inner();
|
||||||
|
|
||||||
else if (field->get_tag("var") == "linger_time" &&
|
|
||||||
value && !value->get_inner().empty())
|
|
||||||
options.lingerTime = value->get_inner();
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
options.update();
|
options.update();
|
||||||
|
|||||||
@@ -2277,7 +2277,6 @@ if __name__ == '__main__':
|
|||||||
"/iq/commands:command/dataform:x[@type='form']/dataform:field[@type='text-single'][@var='realname']/dataform:value[text()='realname']",
|
"/iq/commands:command/dataform:x[@type='form']/dataform:field[@type='text-single'][@var='realname']/dataform:value[text()='realname']",
|
||||||
"/iq/commands:command/dataform:x[@type='form']/dataform:field[@type='text-single'][@var='encoding_in']/dataform:value[text()='latin-1']",
|
"/iq/commands:command/dataform:x[@type='form']/dataform:field[@type='text-single'][@var='encoding_in']/dataform:value[text()='latin-1']",
|
||||||
"/iq/commands:command/dataform:x[@type='form']/dataform:field[@type='text-single'][@var='encoding_out']/dataform:value[text()='UTF-8']",
|
"/iq/commands:command/dataform:x[@type='form']/dataform:field[@type='text-single'][@var='encoding_out']/dataform:value[text()='UTF-8']",
|
||||||
"/iq/commands:command/dataform:x[@type='form']/dataform:field[@type='text-single'][@var='linger_time']/dataform:value[text()='0']",
|
|
||||||
"/iq/commands:command/commands:actions/commands:next",
|
"/iq/commands:command/commands:actions/commands:next",
|
||||||
),
|
),
|
||||||
after = partial(save_value, "sessionid", partial(extract_attribute, "/iq[@type='result']/commands:command[@node='configure']", "sessionid"))
|
after = partial(save_value, "sessionid", partial(extract_attribute, "/iq[@type='result']/commands:command[@node='configure']", "sessionid"))
|
||||||
|
|||||||
Reference in New Issue
Block a user