Florent Le Coz
3960e4d5af
Functions to provide xml-valid strings
...
By removing invalid chars, see http://www.w3.org/TR/xml/#charsets
2013-12-15 00:34:13 +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
cb718def0c
Put utils::tolower definition in its own cpp file
2013-12-08 18:02:24 +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
050cf1fd60
xml-escape the tail in an XmlNode
2013-12-02 13:15:51 +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
2921f53657
Print some stuff when ./test is running
2013-11-28 01:18:26 +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
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
fba01f4646
Remove incomplete implementation of remove_irc_colors
2013-11-27 00:37:23 +01:00
Florent Le Coz
959291afe6
Set the parent of a node passed to add_child, and return it for conveniance
2013-11-27 00:37:23 +01:00
Florent Le Coz
12a18ca748
TIL override and final
2013-11-21 19:38:31 +01:00
Florent Le Coz
bfcc9cdc74
Send XMPP multi-line messages as multiple IRC messages
2013-11-21 00:58:14 +01:00
Florent Le Coz
70a58a8f71
Merge branch 'epolletc'
2013-11-21 00:37:01 +01:00
Florent Le Coz
b72908548d
Let the user choose the poller to use through cmake POLLER option
...
Use ccmake, or cmake -i, or cmake -DPOLLER=EPOLL, for example
2013-11-21 00:35:15 +01:00
Florent Le Coz
b569240a55
Use epoll
2013-11-21 00:35:15 +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
e7a441e798
Add a test for xml escape/unescape
2013-11-16 12:08:32 +01:00
Florent Le Coz
a85e1abaaa
Fix a warning
2013-11-14 23:39:28 +01:00
Emmanuel Gil Peyrot
83219052c3
Fix JID parsing
2013-11-14 23:31:32 +01:00
Florent Le Coz
8c33a01e68
Include stdlib.h for atoi
2013-11-13 01:39:26 +01:00
Florent Le Coz
abce2fc92e
Do not crash on special chars in the content of message
...
That’s ugly, and we need to sanitize everything properly, and also handle
these special messages.
2013-11-13 01:36:30 +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
Florent Le Coz
5817a95b5e
Basic handling of modes, both ways
2013-11-12 23:48:10 +01:00
Florent Le Coz
b60cbda4f9
Read the served hostname from the config file
2013-11-12 22:35:27 +01:00
Florent Le Coz
2be4811d14
Unescape XML before sending messages over IRC
2013-11-11 00:29:44 +01:00
Florent Le Coz
096a4e3baf
Handle nick changes, both ways
2013-11-11 00:24:34 +01:00
Florent Le Coz
f0d9273da6
Add a Config module, and use it to get the password from a file
2013-11-10 20:47:11 +01:00
Florent Le Coz
10d5287177
Handle private messages, both ways
2013-11-10 06:33:04 +01:00
Florent Le Coz
7ba2d0fb45
Handle the ACTION (/me) IRC command, both ways
2013-11-10 05:41:22 +01:00
Florent Le Coz
a992e281c4
Connect to localhost instead of the served hostname
...
Because the XMPP component connection is only available locally, the XMPP
servers proably only listen on 127.0.0.1 instead of 0.0.0.0.
2013-11-10 05:10:54 +01:00
Florent Le Coz
0bb7ee0127
Handle IRC QUIT command
2013-11-10 05:08:50 +01:00
Florent Le Coz
af4fc92c21
Fix the include of the config.h
2013-11-10 03:35:31 +01:00
Florent Le Coz
5cb81cace0
And actually use the values found by cmake
2013-11-10 03:29:12 +01:00
Florent Le Coz
ef014f7ddf
Properly detect iconv features to compile
2013-11-10 03:18:08 +01:00
Florent Le Coz
6a43d350be
Add include for perror
2013-11-10 03:08:45 +01:00
Florent Le Coz
3d92360310
Use the Expat library directly instead of relying on expatpp
...
And now we handle namespaces, yay.
And a nice little test.
2013-11-10 02:30:22 +01:00
Florent Le Coz
8acd7a02ae
Aaaand, I forgot to add files
2013-11-09 23:20:12 +01:00
Florent Le Coz
7c67149935
Implement part and join, both ways
2013-11-09 23:17:48 +01:00
Florent Le Coz
f38b31a63e
Remove IRC colors from the body when forwarding it to XMPP
2013-11-09 21:40:29 +01:00
Florent Le Coz
af5548897a
Cosmetic
2013-11-09 06:29:15 +01:00
Florent Le Coz
ccebe901d7
Check UTF-8 encoding, and convert strings to UTF-8
...
Handle conversion errors properly by inserting � instead. Add a binary
header to provide portable way to write binary literals (I like them) Also
add a test file. ref #2404
2013-11-09 06:01:47 +01:00
Florent Le Coz
a418b6ed5d
Send and receive messages
...
Also correctly respond to PING with the id, escape some XML content, but not
always
2013-11-07 01:53:09 +01:00