Commit Graph
805 Commits
Author SHA1 Message Date
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
Florent Le Coz 4069c5e4ac Add a missing #include for sockaddr_in6 2015-01-26 21:15:09 +01:00
Florent Le Coz 51c28a2dbb Fix the include guard of revstr.hpp 2015-01-26 21:12:40 +01:00
Florent Le Coz 2c5d3d89b0 Change IRC modes when receiving an affiliation/role change request
fix #2946
2015-01-24 17:33:04 +01:00
Florent Le Coz a447214f10 Remove a recent debug line that should not be there 2015-01-14 13:56:27 +01:00
Florent Le Coz 4203384e2a Do not send an empty password at all, if the user didn't provide one 2015-01-14 13:53:25 +01:00
Florent Le Coz 60569993b4 Make the password work when we join our first channel on that server
Because we need to wait for the welcome message, when we connect to the
server, before sending the JOIN command, we need to also save the value of
the password to reuse it when we actually send the JOIN command
2015-01-14 13:48:34 +01:00
Florent Le Coz f9e259c266 Fix a little bit of style stuf from previous commit 2015-01-14 13:36:42 +01:00
Emmanuel Gil Peyrot e4fcbd3030 Add support for password-protected IRC rooms. 2015-01-14 12:38:46 +01:00
Florent Le Coz e2e2f30894 Remove a dummy commented line 2015-01-12 22:57:08 +01:00
Florent Le Coz b79dbefbe7 If we sent a message to a user, their notices are considered private messages
fix #2882
2015-01-12 22:50:06 +01:00
Florent Le Coz f4fb961df5 And another trivial -Weffc++ warning 2014-12-17 13:55:41 +01:00
Florent Le Coz 720e31a511 Fix a few issues reported by static analyzers 2014-12-17 13:37:57 +01:00
Florent Le Coz 0ab5ecea13 Cache the result of jidprep()
Avoid doing repetitive calculations, if we call jidprep() on the same JID multiple times
2014-11-24 03:38:10 +01:00
Florent Le Coz 2bb4a347cd Improve dependencies checks in the build process
- Rename all Find*.cmake files to uppercase, to make things more consistent,
  and fix some issues with them (notably the REQUIRED flag)

- Rename SYSTEMDDAEMON to SYSTEMD and only use the libsystemd instead of
  libsystemd-daemon because it's deprecated for a long time now

- Provide a WITH_* and WITHOUT_* switch for all optional dependencies

- Document things in the INSTALL file
2014-11-13 06:44:15 +01:00
Florent Le Coz 12eeb4d11e Implement the PING on a server or the gateway itself
fix #2575
2014-11-12 08:14:56 +01:00
Florent Le Coz 80789c2e92 send_iq_result can have a "from" with just the domain name 2014-11-12 08:13:09 +01:00
Florent Le Coz 4a8bcd3cbd Implement PING to in-room participant
ref #2575
2014-11-12 08:13:02 +01:00
Florent Le Coz c20bdd6879 Add utils::revstr 2014-11-12 08:13:02 +01:00
Florent Le Coz d8da7984b2 Implement PING, user to user only (XMPP and IRC side, using CTCP PING)
ref #2757
2014-11-12 08:12:43 +01:00
Florent Le Coz e1d69806ed Rename iq_responder_callback_t to irc_… and add the equivalent to wait for iqs 2014-11-12 06:17:25 +01:00
Florent Le Coz 41e8a3ba9b Send a proper error on IRC message 438 (nickname change too fast)
fix #2576
2014-08-08 00:47:05 +02:00
Florent Le Coz e3ea0d62c7 Use generic send_presence_error() instead of almost identical specializations 2014-08-08 00:46:27 +02:00
Florent Le Coz b39ed80dbb Add two missing type="error" in some presence errors 2014-07-21 22:05:15 +02:00
Florent Le Coz 609722b4e7 Merge branch 'v1'
Conflicts:
	src/network/socket_handler.hpp
2014-07-15 15:56:37 +02:00
Florent Le Coz 6a4e17cb0a Fix IPv6 support (sockaddr size)
Since struct sockaddr is too small to contain an IPv6, we use struct
sockaddr_in6 instead, and we cast it where needed
2014-07-15 15:50:35 +02:00
Florent Le Coz 11a31db2d5 Send the reason of the connection close to the user 2014-07-15 15:39:25 +02:00
Florent Le Coz 8c34576ea0 Move some members of TCPSocketHandler into the SocketHandler class 2014-07-03 03:31:50 +02:00
Florent Le Coz 04d999168a Add a level of inheritance above SocketHandler
SocketHandler has been renamed to TCPSocketHandler
SocketHandler is now a simple interface with a few methods, used only by
Poller.

This way we can inherite from the new SocketHandler class, to handle other
types of sockets, and still make them manageable by the poller without any
change in the Poller class.
2014-07-02 03:01:09 +02:00
Florent Le Coz cec9fed1f4 Fix a typo 2014-06-30 01:33:45 +02:00
Florent Le Coz 735ae278f3 Enable assert() even in release mode, in the test_suite 2014-06-30 01:27:41 +02:00
Florent Le Coz 01c1ea14f7 Use systemd-daemon logging prefix if available 2014-06-30 01:04:03 +02:00
Florent Le Coz 70ebbae15e Regularly send a notification for the systemd watchdog 2014-06-30 01:03:07 +02:00
Florent Le Coz 48ed47207c Add missing <string> include in timed_events.hpp
fix #2552
2014-06-28 18:38:50 +02:00
Florent Le Coz 6f181acc65 Fix ad-hoc “disconnect user” command. Do not add the <error/> on success 2014-06-25 15:36:06 +02:00
Florent Le Coz 7b785cf552 Delete the timeout event using the correct socket number, instead of -1
Was causing the event to not be removed in case of connection failure, which
lead to a dangling timed event named “timeout-1”, which was called later, by
some other SocketHandler for which even the socket creation failed (so, its
socket is -1), with a pointer to the previous SocketHandler which has
disappeared for a long time: segmentation fault etc.
2014-06-22 23:56:51 +02:00
Florent Le Coz 545ab11ff3 Support version request to IRC users 2014-06-20 11:51:49 +02:00
Florent Le Coz b747f2825c Respond to IQ version on the gateway, a server or a chan with biboumi version
ref #2455
2014-06-20 10:45:42 +02:00
Florent Le Coz aaf7177413 Write the software version, including the git hash, in config.h using cmake 2014-06-20 10:45:38 +02:00
Florent Le Coz 2117838cf9 Return a proper iq when the IRC server responds to our kick
A result or an error, depending on the type of message
2014-06-19 22:22:29 +02:00
Florent Le Coz 26ffc8fe12 Implement a way to add callbacks, waiting for an IRC event to return an iq 2014-06-19 22:21:49 +02:00