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
2c5d3d89b0
Change IRC modes when receiving an affiliation/role change request
...
fix #2946
2015-01-24 17:33:04 +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
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
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
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
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
11a31db2d5
Send the reason of the connection close to the user
2014-07-15 15:39:25 +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
70ebbae15e
Regularly send a notification for the systemd watchdog
2014-06-30 01:03:07 +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
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
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
Florent Le Coz
04de62a4e0
Messages to room participants are forwarded to the IRC user
...
For example, both JID #chan%server@biboumi/Toto and toto!server@biboumi are
equivalent, except that if you send a message to the first one, subsequent
messages coming from the user toto will come from that same JID. This is
done to be consistent for the XMPP user, and respond from the same JID than
the 'to' of the first message.
fix #2468
2014-06-18 22:42:58 +02:00
Florent Le Coz
7c1a38999c
Rewrite the whole IID usage
...
IRC users and channels are now distinguished by the separator used in the
IID (% or !).
ref #2468
2014-06-11 02:37:11 +02:00
Florent Le Coz
6210a9d50b
Add an <error/> element when the provided form is wrong, in two ad-hoc commands
2014-06-11 01:00:02 +02:00
Florent Le Coz
5d1a567ea5
Handle the 'cancel' ad-hoc action, and return an error for unsupported actions
...
ref #2521
2014-06-11 00:49:42 +02:00
Florent Le Coz
3ea029dd98
Remove inactive ad-hoc sessions after a given time
...
ref #2521
2014-06-11 00:49:39 +02:00
Florent Le Coz
1604320a23
Make the XMPP component port configurable
...
fix #2541
2014-06-08 23:30:17 +02:00
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
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
4e27298b3a
Add an ad-hoc command to disconnect some users
2014-05-31 17:06:36 +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
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
6c2d03da4e
Send an error presence when the connection to the IRC server fails
2014-05-28 01:27:41 +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
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
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
c6059e5a21
Upgrade to C++14
2014-04-28 18:46:25 +02:00
Florent Le Coz
ae41c5dee4
Include the xhtml-im element in private messages too
2014-04-25 00:53:59 +02:00