Commit Graph
445 Commits
Author SHA1 Message Date
Florent Le Coz f3b3d937ae Use unique_ptr to store the XmlNode’s children
Also fix some constness things
2015-09-01 14:47:57 +02:00
Florent Le Coz e8f22efe34 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)
2015-09-01 04:42:12 +02:00
Florent Le Coz df006a1916 //mode with no argument should work
The server will respond with the current channel mode, in private or
something
2015-08-19 21:22:46 +02:00
Florent Le Coz ece4b4969b If hostname resolution fails, do not try all possible ports 2015-07-09 15:30:24 +02:00
Florent Le Coz 810ea19fe3 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

fix #3078
2015-06-10 16:47:13 +02:00
Florent Le Coz 7f7c429ae4 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
usability issue.
2015-06-09 14:52:46 +02:00
Florent Le Coz 8da03f9830 Remove a useless duplicate method 2015-06-09 14:51:55 +02:00
Florent Le Coz 897b281e67 Avoid some potential race conditions by blocking the signals we manage
They are atomically unblocked in the ppoll/epoll_pwait calls, avoiding any
race condition on the check of the “stop” or “reload” booleans.
2015-05-27 23:44:23 +02:00
Florent Le Coz e454c12bd7 Do not forward CTCP commands (PING, VERSION…) to the user as private messages
Some XMPP client ping themselves inside MUCs, to know if they are still in
there, this created a flood of PING message in private.  If the user is
interested in knowing when they receive a ping or version request, they can
still read their XML logs
2015-05-19 06:43:38 +02:00
Florent Le Coz e8d7965115 Handle errors for the LIST irc command
ref #2472
2015-05-19 06:22:04 +02:00
Florent Le Coz fa466f33f4 Ignore commands that flood the user with private messages when listing chans
ref #2472
2015-05-19 06:21:59 +02:00
Florent Le Coz 2195292919 Remove a debug line (breaking our PING stuf) that should not have been commited 2015-05-19 05:15:49 +02:00
Florent Le Coz 501a3f7be2 Fix the way we we forward an XMPP ping result to the IRC server
Our CTCP notice didn't include a \01 char at the end.  We thus failed to
check the PING id when we received it ourself, because one char was missing
2015-05-19 05:13:55 +02:00
Florent Le Coz fbeb5af364 Update to latest louloulibs revision, and add test for hostname validity
fix #2694
2015-05-13 20:17:43 +02:00
Florent Le Coz 763be827c9 Fix a message.arguments size check 2015-05-11 05:43:32 +02:00
Florent Le Coz cc1255d216 Fix the way we check for the PING id 2015-05-11 05:31:47 +02:00
Florent Le Coz 7fe0dc2667 Fix the case of the nick for ping requests
fix #3041
2015-05-11 05:31:11 +02:00
Florent Le Coz ad5bd99618 Properly send error response on presence stanzas 2015-05-11 05:03:09 +02:00
Florent Le Coz 5475d16b57 Return a stanza error whenever the IRCClient for a given server does not exist
Instead of ignoring the stanza, we send back an error of type
remote-server-not-found each time it's possible.

Also avoid having to do if (!irc) return; everytime.

fix #3045
2015-05-11 04:47:31 +02:00
Florent Le Coz 221ed2553d Two trivial fixes 2015-05-07 17:18:40 +02:00
Florent Le Coz 163ace553f Handle all unknown IRC command by forwarding the arguments as a message body
This way, the users can receive the result of any IRC command (although not
parsed nor formatted in anyway) when biboumi doesn’t support it

fix #2884
2015-05-07 17:17:01 +02:00
Florent Le Coz 0a6b673b14 Support raw IRC messages
Messages received on an IRC server JID are forwarded as raw IRC messages.

fix #2486
2015-05-07 17:01:17 +02:00
Emmanuel Gil Peyrot e24ed4f70c Make sure XDG_CONFIG_HOME is absolute, as per XDG basedir spec. 2015-05-04 17:08:08 +02:00
Emmanuel Gil Peyrot ac30733800 Search for the config file in $XDG_CONFIG_DIR/biboumi.
This environment variable points to the location the user expects to
find every program’s config file, or if it isn’t set, ~/.config/biboumi
(with a fallback to . if $HOME isn’t set).

fix #2553
2015-05-04 16:50:35 +02:00
Florent Le Coz a8225dc54c Properly check for connecting or connected status before reconnecting
Note, in our context, is_connecting() includes the resolving part as well as
the actual connection (if we are using c-ares)

fix #3048
2015-04-21 15:38:22 +02:00
Florent Le Coz 61bfd1db00 Revert "Decode incoming JIDs local part according to xep 0106"
This reverts commit ad0465b320.

Conflicts:
	louloulibs
2015-04-21 02:48:28 +02:00
Florent Le Coz 6a28bde1dd Reset the signal handlers when SIGINT or SIGTERM is received
To avoid doing a double exit when receiving bot SIGINT and SIGTERM
2015-04-20 23:58:05 +02:00
Florent Le Coz ad0465b320 Decode incoming JIDs local part according to xep 0106
This let users send message to nicks such as Q@CServe.quakenet.org

fix #3047
2015-04-20 20:33:02 +02:00
Florent Le Coz d5324ac778 Re-order a few things in main.cpp 2015-04-13 01:53:53 +02:00
Florent Le Coz ffcce28c77 Do not log a warning when we receive a PONG command 2015-03-24 04:34:05 +01:00
Florent Le Coz 33cdc6010e Set the default value to biboumi.cfg 2015-03-04 05:56:08 +01:00
Florent Le Coz d31619714b Move non-specific adhoc commands into louloulibs
Only keep some biboumi-specific commands into biboumi_adhoc_commands.hpp/cpp
2015-03-02 11:04:55 +01:00
Florent Le Coz f0e07beacb Forgot to remove some XMPP files that are now in louloulibs instead 2015-03-02 10:21:01 +01:00
Florent Le Coz d600a2843f Remove all the libs that are now in louloulibs 2015-02-27 12:26:48 +01:00
Florent Le Coz 82256d40a3 Merge branch 'fixed_server' 2015-02-26 17:43:24 +01:00
Florent Le Coz c01befb054 Implement room discovery using the LIST irc command
ref #2472
2015-02-26 05:02:08 +01:00
Florent Le Coz 6a2240f593 Properly sanitize everything in the XML we send to the XMPP server
in this order:
- Make sure it is utf-8 encoded
- Remove all chars that are invalid in XML
- Escape all XML special chars (&'"<>)
2015-02-26 04:58:07 +01:00
Florent Le Coz 53e6b1da69 Fix the systemd-conditional code
By using SYSTEMD_FOUND instead of SYSTEMDDAEMON_FOUND, where I forgot to
rename it…
2015-02-26 02:56:46 +01:00
Florent Le Coz 5db0637810 Remove an unused parameter 2015-02-26 02:30:23 +01:00
Florent Le Coz c307df85c8 Do not handle the "%" char in a special way, in the fixed_server mode
Also fix some doc
2015-02-25 19:05:04 +01:00
Florent Le Coz 2df0ebf2df Add support for a fixed_irc_server configuration
This option lets the administrator choose a specific IRC server, and only
that server can be used with this biboumi instance.

In this mode, JIDs to use are changed like this:

- #chan%irc.example.com@biboumi.example.com      -> #chan@biboumi.example.com
- user!irc.example.com@biboumi.example.com       -> user!@biboumi.example.com
- #chan%irc.example.com@biboumi.example.com/Nick -> #chan@biboumi.example.com/Nick
- %irc.example.com@biboumi.example.com           -> no equivalent
- irc.example.com@biboumi.example.com            -> no equivalent
2015-02-25 18:35:30 +01:00
Florent Le Coz 1c43c3af4c Include the IRC hostname in the IRC RECEIVING and SENDING debug messages
fix #2715
2015-02-25 16:37:58 +01:00
Florent Le Coz 7115aa3b7f Add a reload add-hoc command 2015-02-24 16:28:30 +01:00
Florent Le Coz b86547dc1e Implement async DNS resolution using c-ares
fix #2533
2015-02-23 13:56:08 +01:00
Florent Le Coz a17135720e Fix typo 2015-02-22 18:00:35 +01:00
Florent Le Coz a50ca30e76 Use a timer to try reconnecting to the XMPP server only each 2 seconds
When the connection is lost, immediately try to reconnect, then try to
reconnect every 2 seconds.  This is much better than the previous “Try to
re-connect as fast as possible”.
2015-02-21 06:45:11 +01:00
Florent Le Coz 3032dc3580 Remove the XmppComponent::last_auth bool that was never used anywhere 2015-02-21 05:49:57 +01:00
Florent Le Coz 0038e15b5a Properly display [DEBUG] on debug lines, instead of [ERROR] 2015-02-21 05:43:20 +01:00
Florent Le Coz 03a8accc46 Fix “connections” typo 2015-02-21 05:30:36 +01:00
Florent Le Coz ae469c21ff Fix “cleanely” typo 2015-02-21 05:28:21 +01:00