Commit Graph
61 Commits
Author SHA1 Message Date
Florent Le Coz d600a2843f Remove all the libs that are now in louloulibs 2015-02-27 12:26:48 +01:00
Florent Le Coz 82256d40a3 Merge branch 'fixed_server' 2015-02-26 17:43:24 +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 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 2c5d3d89b0 Change IRC modes when receiving an affiliation/role change request
fix #2946
2015-01-24 17:33:04 +01:00
Emmanuel Gil Peyrot e4fcbd3030 Add support for password-protected IRC rooms. 2015-01-14 12:38:46 +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 12eeb4d11e Implement the PING on a server or the gateway itself
fix #2575
2014-11-12 08:14:56 +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 545ab11ff3 Support version request to IRC users 2014-06-20 11:51:49 +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 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 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 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 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 5ec05cb0ed Forward CTCP version request to XMPP 2014-05-06 22:50:37 +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 4e61b0d57e The author name from messages from the server are now nicely formated 2014-04-25 00:53:08 +02:00
Florent Le Coz 848b50185f Remove unused action_prefix_len variable 2014-04-21 22:47:20 +02:00
Florent Le Coz 14b6793d7f Joining the dummy channel connects to the irc server 2014-04-15 05:11:36 +02:00
Florent Le Coz 5739d418e2 Better way to leave the dummy room 2014-04-15 04:56:50 +02:00
Florent Le Coz 7f74f62e56 Merge branch 'master' into dummy_chan 2014-04-15 04:11:27 +02:00
Florent Le Coz 020325dbb0 [WIP] DummyIrcChannel 2014-04-13 15:37:56 +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 f6029d5bcf Add missing stdexcept includes 2014-02-24 21:03:51 +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 61ca40fa0e Delete empty bridges objects 2014-02-20 02:31:16 +01:00
Florent Le Coz 190c4ff176 QUIT the irc server when the last channel is left 2014-02-20 02:19:50 +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 fef9c8193d Also set the role and affiliation of users already in the chan 2014-01-06 01:22:43 +01:00
Florent Le Coz fbec16f1a2 Possibility to change a channel's topic 2014-01-04 01:59:36 +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 aa53276859 Keep a "connected" state in the SocketHandler class 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 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 a4c845ab6c Use the logger everywhere 2013-12-03 19:15:37 +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