Commit Graph
187 Commits
Author SHA1 Message Date
louiz’ f0bc6c83a8 Pass the shared_ptr by reference, to avoid useless copies 2017-03-08 19:04:15 +01:00
louiz’ 3ae4937fb4 Add missing <algorithm> include for last commit 2017-01-10 00:21:15 +01:00
louiz’ 6ececd9f39 Only try to join chans only once, even if we received multiple presences
ref #3228
2017-01-10 00:18:59 +01:00
louiz’ 4792c70635 Send a presence error from the room, when receiving command ERR_BADCHANNELKEY
fix #2886
2016-12-13 14:48:41 +01:00
louiz’ 0c8adc85f7 Move all the connect() logic from TCPSocketHandler into a subclass
This way, TCPSocketHandler only deal with the message sending/receiving, not
the connect() or anything else.  This will be used for implementing servers
(because when a client is accepted, we don’t need all the connect() and dns
resolution stuff).
2016-11-11 02:54:48 +01:00
louiz’ ae02e58b9d Some cleanups 2016-10-31 14:03:37 +01:00
louiz’ 1d2f20600a Handle IRC message 341 (invite confirmation) 2016-10-31 01:39:35 +01:00
louiz’ 5990a8bf8a Correctly handle the nick change inside the virtual channel 2016-10-24 00:19:30 +02:00
louiz’ 00eb18bae8 Refactor channel->parting to a new location 2016-10-23 23:58:03 +02:00
louiz’ 8ac8d2b242 Correctly set status="110" in the presence for the target of a kick 2016-10-07 23:28:40 +02:00
louiz’ ffad4306b9 Use LIST * instead of just LIST, because some servers don’t accept it
Also add a e2e test for the list query
2016-10-02 12:57:04 +02:00
louiz’ d1626c929f When joining a channel, send the most recent history found in the database 2016-08-22 00:44:17 +02:00
louiz’ 7d05f9b6ae Fix the author of the IRC invite 2016-08-18 21:13:42 +02:00
louiz’ 4c8fb9a0e3 Forward IRC invites to XMPP 2016-08-18 20:33:41 +02:00
louiz’ 663d4ad54a Forward mediated invitations (XMPP to IRC only) 2016-08-16 15:59:00 +02:00
louiz’ 0d2dd71de5 Don’t use ! as the separator for nicknames, use % instead
It’s now easier to use. The distinction between a nick and a channel name is
based on the first character (by default it's '#' and '&'). The user doesn’t
have to worry about which separator to use anymore.

fix #3066
2016-08-10 15:48:28 +02:00
louiz’ c1f678e450 Fix a missing include for strlen 2016-06-15 16:47:11 +02:00
louiz’ 430bf3a661 Properly calculate the maximum size of each message line, before cutting
fix #3067
2016-06-15 15:51:13 +02:00
louiz’ 849c50f9f3 Save our own host, as reported by the server 2016-06-15 15:51:13 +02:00
louiz’ 4b1c580bb9 cut messages at 512 bytes, taking into account the UTF-8 codepoints
ref #3067
2016-06-15 15:50:45 +02:00
louiz’ 80d0c19c5a Refactor, test and improve the way we cut too-long messages for IRC 2016-06-14 20:14:36 +02:00
louiz’ 5a2e611617 Show off, with some variadic templates, for the logger module 2016-06-13 20:46:30 +02:00
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’ fdddd447b3 Use “using” instead of typedef 2016-05-13 01:22:49 +02:00
louiz’ 04d28f968b Forward the topic authors, handle the author from 333 messages
fix #2
2016-04-22 10:49:07 +02:00
louiz’ 464261d4ed Support RPL_NOTPIC and 005 2016-04-22 10:49:06 +02:00
Florent Le Coz 0a352e557d Move the irc callbacks into the cpp file 2016-02-10 19:19:21 +01:00
Florent Le Coz 1f8333f23f Support a trusted SHA1 fingerprint to be configured for each IRC server 2016-01-04 13:47:27 +01:00
Florent Le Coz a38b17692e Support multi-prefix
See http://ircv3.net/specs/extensions/multi-prefix-3.1.html
ref #3103
2016-01-04 13:47:27 +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 241768836d Add the outgoing_bind option
Lets the admin choose a local address to bind each outgoing (IRC) socket.
2015-12-01 16:08:40 +01:00
Florent Le Coz e8386bd14e Provide an adhoc option to let user pass the cert verif for some IRC servers 2015-11-05 02:17:19 +01:00
Florent Le Coz 0a4041f7e9 Fix the initial IRC nickname (was using realname, by mistake) 2015-11-02 17:14:21 +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 2c932cf0f7 Fix the double sending of the USER command 2015-10-31 05:36:33 +01:00
Florent Le Coz 142516a69b Fix some trivial issues reported by cppcheck 2015-10-26 20:09:39 +01: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 84aafab604 Provide the “realname_customization” option
ref #3136
2015-10-12 16:47:27 +02:00
Florent Le Coz 6512f830fa The realname is also saved as an IrcClient member 2015-10-12 16:35:50 +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 7247228e97 Connection may be closed from our side too 2015-09-22 03:50:08 +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 532228a3ce Send a PASS IRC command if the “pass” config is sot by a user, on an IRC server
fix #3068
2015-09-18 22:09:26 +02:00
Florent Le Coz 73573ebb2a Trivial cleanup in irc_client.cpp 2015-09-06 18:57:35 +02:00
Florent Le Coz 4cfcc79114 Check the number of argument of every IRC command received from the server
Each IrcClient callback has a max and min size of argument, we call the
callback only if the parsed message has a correct number of arguments,
otherwise it is ignored (with a warning logged).
2015-09-06 18:55:48 +02:00
Florent Le Coz ece4b4969b If hostname resolution fails, do not try all possible ports 2015-07-09 15:30:24 +02:00
Florent Le Coz e454c12bd7 Do not forward CTCP commands (PING, VERSION…) to the user as private messages
Some XMPP client ping themselves inside MUCs, to know if they are still in
there, this created a flood of PING message in private.  If the user is
interested in knowing when they receive a ping or version request, they can
still read their XML logs
2015-05-19 06:43:38 +02:00
Florent Le Coz fa466f33f4 Ignore commands that flood the user with private messages when listing chans
ref #2472
2015-05-19 06:21:59 +02:00