louiz’
9fa1852c7e
Send status code='332' on biboumi or IRC server’s shutdown
2017-07-08 18:10:47 +02:00
louiz’
8cf0b833c4
Make the IRC channel configuration form available from the MUC config
...
fix #3250
2017-05-11 21:15:43 +02:00
louiz’
7f2127a7ea
Add the archive ID to messages when they are sent to users
...
This makes us compatible with mam 6.0
fix #3249
2017-03-30 18:16:44 +02:00
louiz’
1a09c965eb
Remove two sneaky log_debug
2017-03-29 23:32:43 +02:00
louiz’
a3844c1d9f
Change mam namespace to mam:2, instead of mam:1
2017-03-29 16:28:25 +02:00
louiz’
0ab40dc1ab
Refactoring louloulibs and cmake
...
Use OBJECT libraries
Remove the louloulibs directory
Write FOUND variables in the cache
2017-03-14 21:45:23 +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
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
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
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
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
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
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
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
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
6ebb586b6c
Respond to a disco query the gateway jid itself
2014-04-24 19:36:14 +02:00
Florent Le Coz
a20c60a0d8
Messages coming from the IRC server are of type "chat"
2014-04-10 20:11:17 +02:00
Florent Le Coz
3c5f823621
Send a stanza error when receiving bad stanzas
...
Whether this is a bad-request (missing XML attributes or elements) or an
internal server error.
2014-03-28 01:16:05 +01:00
Florent Le Coz
e47b164a43
Send an error presence whenever a user tries to join an invalid room
2014-03-24 21:08:09 +01:00
Florent Le Coz
cdc3183d9e
Introduce two new bool, to know if the xmpp component should try to reconnect
...
If we never succeeded our connection+auth process, means we should probably
not attempt any-more, and just give up. If we ever did, this means a
reconnect is a good idea
2014-03-24 20:39:59 +01:00
Florent Le Coz
ffc820e234
Reconnected immediately to the XMPP whenever it closes the connection
2014-03-24 20:31:02 +01:00
Florent Le Coz
86d4347af8
Avoid unnecessary copies by recv()ing data directly into the expat buffer
2014-02-28 01:14:38 +01:00
Florent Le Coz
99aba5667d
Connection to servers does not block the process anymore
2014-02-22 21:42:24 +01:00
Florent Le Coz
cf9f3a1f28
Include role and affiliation in the join presence of the nick change process
2014-02-17 01:43:58 +01:00
Florent Le Coz
abcf16bc28
Log (xmpp) stream-level errors
2014-02-17 01:31:19 +01:00
Florent Le Coz
e840704b58
Convert received modes into roles and affiliations
2014-01-04 01:59:36 +01:00
Florent Le Coz
acf769d83a
Use isupport informations to know the user modes when joining
...
Also remove the duplicate send_self_join methods, user only send_user_join
2014-01-04 01:59:36 +01:00
Florent Le Coz
43cc60e4a9
Handle nickname conflicts by sending the correct XMPP error presence
2014-01-04 01:59:35 +01:00
Florent Le Coz
e8e592d1ac
Remove disconnected IrcClients
2014-01-04 01:59:35 +01:00
Florent Le Coz
3afb63a650
Shutdown cleanly on SIGINT
2014-01-04 01:59:14 +01:00
Florent Le Coz
983477084c
connect() returns a boolean
2013-12-24 14:03:40 +01:00
Florent Le Coz
b11126a19d
Provide a JID for IRC users, and add a stringprep dependency for this
2013-12-08 20:14:12 +01:00
Florent Le Coz
e6f20d3c0f
Implement IRC format to xhtml-im conversion
...
The generated XML is very verbose because each IRC formatting tag makes us
close a <span/> element and reopen it with the new style applied. However,
this works quite well and is easy to implement.
2013-11-28 01:18:26 +01:00
Florent Le Coz
12a18ca748
TIL override and final
2013-11-21 19:38:31 +01:00
Florent Le Coz
0859801230
Handle KICK in irc channel, both ways
2013-11-13 01:24:36 +01:00
Florent Le Coz
096a4e3baf
Handle nick changes, both ways
2013-11-11 00:24:34 +01:00
Florent Le Coz
7c67149935
Implement part and join, both ways
2013-11-09 23:17:48 +01:00