Commit Graph
1480 Commits
Author SHA1 Message Date
Florent Le Coz 23f32ba39e Implement TLS support using Botan
For now, it tries two TLS ports and then connects to the non-tls port.  In
the future we would like the user to be able to configure that.

fix #2435
2014-06-08 05:07:54 +02:00
Florent Le Coz fa07130991 Little doc fix 2014-06-06 02:15:35 +02:00
Florent Le Coz be6265544a Make the destructor of the SocketHandler class protected non-virtual 2014-06-05 02:24:03 +02:00
Florent Le Coz 1706a92f0c Update the documentation 2014-06-03 02:11:29 +02:00
Florent Le Coz c530fb9156 Do not send an item-not-found presence from an invalid JID 2014-05-31 17:24:18 +02:00
Florent Le Coz 4a9beff74d Remove some unused function parameters names 2014-05-31 17:10:22 +02:00
Florent Le Coz a593d806dd Document the admin configuration option 2014-05-31 17:08:49 +02:00
Florent Le Coz 4e27298b3a Add an ad-hoc command to disconnect some users 2014-05-31 17:06:36 +02:00
Florent Le Coz f5b61f0feb Add the libuuid dependency to the INSTALL file 2014-05-30 16:16:18 +02:00
Florent Le Coz c2311b2893 Send (every 240s) a PING command to all connected irc servers
fix #2452
2014-05-30 16:08:23 +02:00
Florent Le Coz 5c9d2c23ba TimedEventsManager is now a singleton 2014-05-30 15:51:43 +02:00
Florent Le Coz 5cca518c2d Timed events can have a name, and can be canceled based on their name 2014-05-30 15:42:01 +02:00
Florent Le Coz a63faf6fa9 Use libuuid to generate unique IDs for iq and adhoc sessions 2014-05-30 13:39:00 +02:00
Florent Le Coz 8eb9e535a3 Use pkg-config first to find libraries 2014-05-30 13:15:13 +02:00
Florent Le Coz 86c6f36fae Add missing files (for adhoc command support) 2014-05-30 04:03:36 +02:00
Florent Le Coz d33a3b7d35 XmlNode::get_children, to get a list of matching children instead of the first 2014-05-30 04:00:29 +02:00
Florent Le Coz 6bde78b574 XmlNode’s copy constructor now recursively copies the children nodes as well 2014-05-30 04:00:23 +02:00
Florent Le Coz eb9a201870 Implement the support for adhoc commands
We have two basic example commands. But it’s not entirely finished because
there are some error checks that we don’t do.

ref #2521
2014-05-30 03:58:17 +02:00
Florent Le Coz 1c93afc9a7 Change the way the namespaces are handled in the XmlNode class 2014-05-28 17:40:45 +02:00
Florent Le Coz a350caf6e0 Move the logging + config test on first position 2014-05-28 17:40:45 +02:00
Florent Le Coz d9d30dd782 Use a timed event to force the exit 2 seconds after an exit signal is received
fix #2469
2014-05-28 17:31:28 +02:00
Florent Le Coz 5999e6e0c3 Introduce the timed events 2014-05-28 17:31:28 +02:00
Florent Le Coz e033b6a3ae On connection in-progress, save the whole addrinfo struct, not just ai_addr 2014-05-28 02:03:36 +02:00
Florent Le Coz 6c2d03da4e Send an error presence when the connection to the IRC server fails 2014-05-28 01:27:41 +02:00
Florent Le Coz 7b31bea75b Only close/unmanage the socket if we are connected/connecting
Since the socket is now only created and managed whenever the connection is
being established, we only close the socket and if it was created (we use -1
to denote the fact that is not yet created, or has been closed) and we only
unmanage the socket if it is effectively managed.

fix #2529
2014-05-27 23:47:45 +02:00
Florent Le Coz 34739728f9 Fix a by-one error in the CHANTYPES parsing 2014-05-27 02:35:39 +02:00
Florent Le Coz aea923bcb9 Use the CHANTYPES values to differentiate channel or user notices
It also happens to fix #2517 because this used to create buggy channels
named "auth" and stuf like that.
2014-05-27 02:30:11 +02:00
Florent Le Coz 796af0531e Add support for CHANTYPES isupport element, to know the prefixes of channels 2014-05-27 02:17:58 +02:00
Florent Le Coz 23e8e32f84 Support IPv6 connections
fix #2522
2014-05-27 01:06:45 +02:00
Florent Le Coz 5507adbe94 SocketHandlers own the poller and add themself into it only when the socket is created
We want to call socket() with the parameters provided by getaddrinfo, so we
can’t addd the fd into the poller immediately. We need to wait the
connection attempt, and then the SocketHandler can call add_socket_handler
itself, if the connection succeeds, or is in progress.
2014-05-27 01:01:44 +02:00
Florent Le Coz 6b0ffb5fc2 If both write and read events are available on a socket, only do the read
Because the read handler may discover that the connection has been closed,
and then remove the socket from the poller. It that case it is no longer
valid to try to call the write handler (which may try to reconnect, but
since that socket is no longer managed, this is not OK).
2014-05-26 22:27:43 +02:00
Florent Le Coz 7fb0b671bb Also do that cut of message on \n for private messages, and handle /me 2014-05-25 17:50:03 +02:00
Florent Le Coz 01cd6eb516 Split the messages on \n when sending them back to the XMPP user 2014-05-25 17:49:58 +02:00
Florent Le Coz df765faab9 Only call get_last_child() if the node has children
Explain that the behaviour is otherwise undefined, in the comment.
2014-05-15 00:47:20 +02:00
Florent Le Coz 7c7da2cedb "Chat message" is not the same as "any kind of message" 2014-05-15 00:32:31 +02:00
Florent Le Coz bafde1af9f Stanza:get_name() only returns the name of the tag, without the namespace 2014-05-15 00:32:31 +02:00
Florent Le Coz 12c8b1ae0b Disconnect the user from all its IRC servers whenever he returns an error
fix #2524
2014-05-15 00:32:31 +02:00
Florent Le Coz 712b7bdfdf Correctly handle the usage of ! as a IRC user mode indicator
Since “!” is also the separator between the nickname and the user hostname,
having “!” as the user mode (e.g. !nick!~some@host.bla) would cause the nick
to be empty. Now we skip it if it is a valid user mode indicator.
2014-05-14 21:48:38 +02:00
Florent Le Coz 634e7cf125 mini reorder 2014-05-11 03:37:07 +02:00
Florent Le Coz 23db31cff1 [cmake] Do not print useless messages when an optional lib is not found 2014-05-11 03:36:42 +02:00
Florent Le Coz 579ca4bdb6 Forward iq version results to IRC 2014-05-07 02:02:47 +02:00
Florent Le Coz 04fe15a1e7 Correctly do the error handling when we receive an iq 2014-05-06 23:07:30 +02:00
Florent Le Coz 5ec05cb0ed Forward CTCP version request to XMPP 2014-05-06 22:50:37 +02:00
Florent Le Coz f35db5ceba Implement next_id() to 2014-05-06 22:39:09 +02:00
Florent Le Coz 18b27793de Use epoll on linux by default, poll otherwise 2014-04-30 02:30:19 +02:00
Florent Le Coz dd552b1e34 Link with systemd instead of systemd-daemon 2014-04-30 02:03:24 +02:00
Florent Le Coz 28d244631d Add missing std::string_literals 2014-04-29 23:51:32 +02:00
Florent Le Coz 65f219594d Fix a little indentation 2014-04-29 21:56:05 +02:00
Florent Le Coz f6e6b8905b Use C++14 string_literals 2014-04-29 21:50:13 +02:00
Florent Le Coz 594bac1e84 Remove binary.hpp and use the c++14 feature 0b 2014-04-28 19:44:09 +02:00