Florent Le Coz
60d340be19
TIL std::string::end and std::string::begin…
2015-09-23 19:11:48 +02:00
Florent Le Coz
2380a84ba5
Make sure the user-provided username does not contain spaces
2015-09-23 19:08:18 +02:00
Florent Le Coz
f904d57940
Provide username and realname IRC server options
...
Used in the USER command when connecting to the IRC server, instead of the
first nick.
fix #3028
2015-09-23 18:47:29 +02:00
Florent Le Coz
f6d9b7d7a1
Fix two small warnings
2015-09-22 04:01:09 +02:00
Florent Le Coz
ceec989077
Add a field (in the configure form) to specifiy an after-connect IRC command
2015-09-21 18:56:37 +02:00
Florent Le Coz
890cfe9099
Provide Ports and TLS Ports IRC-server ad-hoc options
...
This let any user choose which ports to use when connecting to the IRC
server. This also lets the user choose whether or not to force TLS usage (by
setting no non-TLS port).
fix #2731
2015-09-21 04:27:23 +02:00
Florent Le Coz
1691cf8f64
Introduce the configure ad-hoc command on irc servers
...
Provides two options for now, and they have no effect yet
2015-09-18 22:09:26 +02:00
Florent Le Coz
45e8fe56a6
Add an AdhocCommandsHandler to store commands specific to IRC servers
2015-09-18 22:09:26 +02:00
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
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
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
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
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
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
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
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
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