Provide Ports and TLS Ports IRC-server ad-hoc options
This let any user choose which ports to use when connecting to the IRC
server. This also lets the user choose whether or not to force TLS usage (by
setting no non-TLS port).
Send a PASS IRC command if the “pass” config is sot by a user, on an IRC server
Introduce the configure ad-hoc command on irc servers
Provides two options for now, and they have no effect yet
XmlNode::add_child can also take a copy of a node
Add an AdhocCommandsHandler to store commands specific to IRC servers
Store the target jid in the AdhocSession objects
Introduce an optional Database module
Create a xdg_path function
Trivial cleanup in irc_client.cpp
Check the number of argument of every IRC command received from the server
Each IrcClient callback has a max and min size of argument, we call the
callback only if the parsed message has a correct number of arguments,
otherwise it is ignored (with a warning logged).
Use unique_ptr to store the XmlNode’s children
Also fix some constness things
Little cleanup of the XmlNode class
Use map instead of unordered map (it's not slower, and it's shorter).
Use the default move constructor.
XmlNode::to_string uses an ostringstream instead of a string
On my poor benchmark, it was infinitesimally faster.
XmlNodes are now always closed
Remove the close() method and closed attribute. Remove all the calls to
close(). (Save one bool per XmlNode, yay, and save a few ifs and some
useless function calls. At best it should be unnoticeably faster and lighter
and save a few keystrokes in the future)
//mode with no argument should work
The server will respond with the current channel mode, in private or
louloulibs is part of the repository, so no need to check for its presence
Display the resolved IP in debug logs