Commit Graph
144 Commits
Author SHA1 Message Date
louiz’ 2d11a5f494 Support multiple nick session, except for IQs
ref #2556
2016-06-08 01:42:43 +02:00
louiz’ 507d0c2cbe Forward everything to all concerned XMPP resources 2016-06-08 01:42:43 +02:00
louiz’ 66609cfba2 Remove all usage of std::list 2016-06-08 01:42:43 +02:00
louiz’ 711861d40e Add methods to know which resource is on which server or channel 2016-06-08 01:42:43 +02:00
louiz’ af42073830 Style fix
Move all constructors at the top of classes
2016-05-04 14:16:40 +02:00
louiz’ 04d28f968b Forward the topic authors, handle the author from 333 messages
fix #2
2016-04-22 10:49:07 +02:00
Florent Le Coz 79cdf170d2 Use the configured encoding value when decoding received messages 2016-01-04 13:47:26 +01:00
Florent Le Coz 7e2427148e Use references instead of raw pointer, to store the “parent” object
In Bridge and IrcClient
2015-12-21 14:51:26 +01:00
Florent Le Coz 1f6eea62f4 Add an ad-hoc command to disconnect a user from one or more IRC server
fix #3077
2015-12-03 21:15:22 +01:00
Florent Le Coz 34fc1d4010 Implement a basic webirc support
See https://kiwiirc.com/docs/webirc

fix #3135
2015-10-31 06:17:35 +01:00
Florent Le Coz 6c42286109 Remove some useless includes 2015-10-31 05:36:18 +01:00
Florent Le Coz e7a91badcd Use “using” instead of typedef 2015-10-24 15:21:05 +02:00
Florent Le Coz 1aa2c2d857 Introduce the realname_from_jid option
When set to true, the realname and username are extracted (by default) from
the user’s JID

fix #3136
2015-10-12 17:14:29 +02:00
Florent Le Coz f1de6d0320 Add Bridge::get_bare_jid 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 df006a1916 //mode with no argument should work
The server will respond with the current channel mode, in private or
something
2015-08-19 21:22:46 +02:00
Florent Le Coz e8d7965115 Handle errors for the LIST irc command
ref #2472
2015-05-19 06:22:04 +02:00
Florent Le Coz 2195292919 Remove a debug line (breaking our PING stuf) that should not have been commited 2015-05-19 05:15:49 +02:00
Florent Le Coz 501a3f7be2 Fix the way we we forward an XMPP ping result to the IRC server
Our CTCP notice didn't include a \01 char at the end.  We thus failed to
check the PING id when we received it ourself, because one char was missing
2015-05-19 05:13:55 +02:00
Florent Le Coz 763be827c9 Fix a message.arguments size check 2015-05-11 05:43:32 +02:00
Florent Le Coz cc1255d216 Fix the way we check for the PING id 2015-05-11 05:31:47 +02:00
Florent Le Coz 7fe0dc2667 Fix the case of the nick for ping requests
fix #3041
2015-05-11 05:31:11 +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 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
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 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 56eb5df28a Mini comment fix 2014-06-18 18:46:41 +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
Emmanuel Gil Peyrot 3d9183557f Convert \n to <br/> in xhtml body
fix #2539
2014-06-08 05:35:36 +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