Commit Graph
209 Commits
Author SHA1 Message Date
Florent Le Coz 712b7bdfdf Correctly handle the usage of ! as a IRC user mode indicator
Since “!” is also the separator between the nickname and the user hostname,
having “!” as the user mode (e.g. !nick!~some@host.bla) would cause the nick
to be empty. Now we skip it if it is a valid user mode indicator.
2014-05-14 21:48:38 +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 f6e6b8905b Use C++14 string_literals 2014-04-29 21:50:13 +02:00
Florent Le Coz c6059e5a21 Upgrade to C++14 2014-04-28 18:46:25 +02:00
Florent Le Coz 77a84fd2d9 NOTICE from channels are displayed in the channel, with a green "[notice]" 2014-04-25 00:35:57 +02:00
Florent Le Coz 3bc6f18347 Add an explanatory topic on the dummy channel 2014-04-15 05:22:32 +02:00
Florent Le Coz 28065d3d52 Do not disconnect from the IRC server if the dummy channel is joined 2014-04-15 05:08:07 +02:00
Florent Le Coz 5739d418e2 Better way to leave the dummy room 2014-04-15 04:56:50 +02:00
Florent Le Coz cfca16bbec Ability to leave the dummy channel 2014-04-15 04:44:51 +02:00
Florent Le Coz 576fb3d132 Correctly use the dummy channel whenever we interract with an empty-string chan 2014-04-15 04:44:09 +02:00
Florent Le Coz 020325dbb0 [WIP] DummyIrcChannel 2014-04-13 15:37:56 +02:00
Florent Le Coz e971f64f92 Catch all exception produced by a received message (irc or xmpp) 2014-03-28 01:47:48 +01:00
Florent Le Coz e196d2f1f4 Do not send data if we are connected, send it only once we actually are 2014-03-24 18:37:31 +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 76b131e13a Do not try to connect to an irc server if we are connected or connecting 2014-02-25 02:10:45 +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 190c4ff176 QUIT the irc server when the last channel is left 2014-02-20 02:19:50 +01:00
Florent Le Coz 16be9af3fc Send unavailable presence to all muc when the IRC server closes the connection 2014-02-19 23:59:43 +01:00
Florent Le Coz 112197f6ab Fix the joined flag on channels, avoid sending the topic twice when joining 2014-02-19 02:38:22 +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 274859c096 Handle most generic error IRC messages 2014-02-08 08:22:42 +01:00
Florent Le Coz c8b41d5e35 Be verbose about IRC server connection failures, and handle them properly 2014-02-08 07:52:22 +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 d90c1978de Fix a bug when receiving a topic change
The number of arguments is not always the same
2014-01-04 01:59:36 +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 a075517824 Basic isupport support
CHANMODES and PREFIX only
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 483e17020d Be verbose about the connection status, and some errors 2014-01-04 01:59:35 +01:00
Florent Le Coz 9df757fc67 Handle topic changes 2014-01-04 01:59:35 +01:00
Florent Le Coz b8ce9ed43d Check that channels are joined before acting on objects in it 2014-01-04 01:59:34 +01:00
Florent Le Coz 3afb63a650 Shutdown cleanly on SIGINT 2014-01-04 01:59:14 +01:00
Florent Le Coz b29290f73a Lowercase the chan names in two missing cases 2013-12-09 03:53:01 +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 e2117bcb0a Enforce a simple limit of 400 bytes for IRC messages body
The limit for the whole message is 512 bytes, we limit the body to 400
(instead of doing a calculation based on the command name and the other
parameters), because it's simple, easy and that’s enough.

fixes #2416
2013-12-08 04:47:05 +01:00
Florent Le Coz 6fa548a194 Display all the MODE arguments in the message 2013-12-03 19:56:57 +01:00
Florent Le Coz a4c845ab6c Use the logger everywhere 2013-12-03 19:15:37 +01:00
Florent Le Coz 2662ed89e2 Add a logger class 2013-12-03 19:15:37 +01:00
Florent Le Coz 6bd176f15e Fix a parenthesis ambiguity 2013-12-03 18:49:43 +01:00
Florent Le Coz d6832fbcc9 :3 2013-11-28 21:09:27 +01:00
Florent Le Coz 1151c26c36 Channel names are case insensitive
But some servers (epiknet for example) send channel names with an uppercase
2013-11-28 02:14:42 +01:00
Florent Le Coz 61ecaab400 Re-add support for /me messages from IRC
It was recently removed because it was handled in the old "convert irc
colors" code. It now is in the right place.
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 1e122d3342 Send the motd as one single big message
We append each line to a string, and when the MOTD is
complete, we send that string at once.
2013-11-21 00:35:15 +01:00
Florent Le Coz 0859801230 Handle KICK in irc channel, both ways 2013-11-13 01:24:36 +01:00
Florent Le Coz 3cfaab9a2d Map irc commands to callbacks, in a clean way 2013-11-12 23:48:10 +01:00