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
If hostname resolution fails, do not try all possible ports
Send the cares error message before cleaning it
Check for timeouts on the DNS resolution using c-ares
Fix the log_* macros to not have two ; at the end of lines
Exit with 1 if the connection to the XMPP server fails
This helps the system understand if the process started correctly or not,
when systemd is not used
Do not send the admin-only adhoc commands to non-admin users
They were not able to execute them anyway, so this was just a little