Send an error presence when the connection to the IRC server fails
Only close/unmanage the socket if we are connected/connecting
Since the socket is now only created and managed whenever the connection is
being established, we only close the socket and if it was created (we use -1
to denote the fact that is not yet created, or has been closed) and we only
unmanage the socket if it is effectively managed.
Fix a by-one error in the CHANTYPES parsing
Use the CHANTYPES values to differentiate channel or user notices
It also happens to fix #2517 because this used to create buggy channels
named "auth" and stuf like that.
Add support for CHANTYPES isupport element, to know the prefixes of channels
Support IPv6 connections
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.
If both write and read events are available on a socket, only do the read
Because the read handler may discover that the connection has been closed,
and then remove the socket from the poller. It that case it is no longer
valid to try to call the write handler (which may try to reconnect, but
since that socket is no longer managed, this is not OK).
Also do that cut of message on \n for private messages, and handle /me
Split the messages on \n when sending them back to the XMPP user
Only call get_last_child() if the node has children
Explain that the behaviour is otherwise undefined, in the comment.
"Chat message" is not the same as "any kind of message"
Stanza:get_name() only returns the name of the tag, without the namespace
Disconnect the user from all its IRC servers whenever he returns an error
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. !firstname.lastname@example.org) would cause the nick
to be empty. Now we skip it if it is a valid user mode indicator.
[cmake] Do not print useless messages when an optional lib is not found
Forward iq version results to IRC
Correctly do the error handling when we receive an iq
Forward CTCP version request to XMPP