Age | Commit message (Collapse) | Author | |
---|---|---|---|
2014-07-02 | Add a level of inheritance above SocketHandler | Florent Le Coz | |
SocketHandler has been renamed to TCPSocketHandler SocketHandler is now a simple interface with a few methods, used only by Poller. This way we can inherite from the new SocketHandler class, to handle other types of sockets, and still make them manageable by the poller without any change in the Poller class. | |||
2014-06-22 | Delete the timeout event using the correct socket number, instead of -1 | Florent Le Coz | |
Was causing the event to not be removed in case of connection failure, which lead to a dangling timed event named “timeout-1”, which was called later, by some other SocketHandler for which even the socket creation failed (so, its socket is -1), with a pointer to the previous SocketHandler which has disappeared for a long time: segmentation fault etc. | |||
2014-06-19 | Make the Botan rng, credential_manager etc be static | Florent Le Coz | |
This actually makes the session_manager be useful, and saves a few octets of memory for the other ones | |||
2014-06-08 | Add a TimedEvent to cancel the connection to a server after 5 seconds | Florent Le Coz | |
2014-06-08 | Implement TLS support using Botan | Florent Le Coz | |
For now, it tries two TLS ports and then connects to the non-tls port. In the future we would like the user to be able to configure that. fix #2435 | |||
2014-06-05 | Make the destructor of the SocketHandler class protected non-virtual | Florent Le Coz | |
2014-05-28 | On connection in-progress, save the whole addrinfo struct, not just ai_addr | Florent Le Coz | |
2014-05-27 | Only close/unmanage the socket if we are connected/connecting | Florent Le Coz | |
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 #2529 | |||
2014-05-27 | Support IPv6 connections | Florent Le Coz | |
fix #2522 | |||
2014-05-27 | SocketHandlers own the poller and add themself into it only when the socket ↵ | Florent Le Coz | |
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-26 | If both write and read events are available on a socket, only do the read | Florent Le Coz | |
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). | |||
2014-04-29 | Add missing std::string_literals | Florent Le Coz | |
2014-04-29 | Use C++14 string_literals | Florent Le Coz | |
2014-04-15 | Call on_connection_failed() when the connection fails to be established | Florent Le Coz | |
2014-04-15 | Remove a useless debug log line | Florent Le Coz | |
2014-03-24 | Reconnected immediately to the XMPP whenever it closes the connection | Florent Le Coz | |
2014-03-24 | Do not send data if we are connected, send it only once we actually are | Florent Le Coz | |
2014-03-10 | Remove useless cast | Florent Le Coz | |
2014-03-03 | Fix a bus error by not going above an array boundary | Florent Le Coz | |
2014-02-28 | Avoid unnecessary copies by recv()ing data directly into the expat buffer | Florent Le Coz | |
2014-02-27 | Use scatter/gather io with sendmsg to avoid concataning strings all the time | Florent Le Coz | |
2014-02-26 | Fix a wrong comment | Florent Le Coz | |
2014-02-22 | Consider that the connect() succeded if errno EISCONN | Florent Le Coz | |
Apparently on some systems, subsquent connect() calls may fail with EISCONN error, to indicate that the connection succeded in the background, instead of returning 0. | |||
2014-02-22 | Save the addrinfo values for reuse on subsequent connect() call | Florent Le Coz | |
2014-02-22 | Connection to servers does not block the process anymore | Florent Le Coz | |
2014-02-20 | Do not receive SIGPIPE when send() is called on a closed socket | Florent Le Coz | |
The error is handled using the return value | |||
2014-02-19 | Send unavailable presence to all muc when the IRC server closes the connection | Florent Le Coz | |
2014-02-08 | Enable TCP keepalive on sockets | Florent Le Coz | |
2014-02-08 | Add missing logger include | Florent Le Coz | |
2014-02-08 | Use strerror and log_error instead of perrror | Florent Le Coz | |
2014-02-08 | Be verbose about IRC server connection failures, and handle them properly | Florent Le Coz | |
2014-01-13 | Add missing stdexcept includes | Florent Le Coz | |
2014-01-04 | Add missing errno.h includes | Florent Le Coz | |
2014-01-04 | Do not throw an exception when recv returns and error, just close the socket | Florent Le Coz | |
2014-01-04 | Keep a "connected" state in the SocketHandler class | Florent Le Coz | |
2014-01-04 | Shutdown cleanly on SIGINT | Florent Le Coz | |
2013-12-24 | connect() returns a boolean | Florent Le Coz | |
2013-12-23 | Read a variable number of bytes, 4096 by default | Florent Le Coz | |
2013-12-03 | Use the logger everywhere | Florent Le Coz | |
2013-11-21 | Let the user choose the poller to use through cmake POLLER option | Florent Le Coz | |
Use ccmake, or cmake -i, or cmake -DPOLLER=EPOLL, for example | |||
2013-11-21 | Use epoll | Florent Le Coz | |
2013-11-10 | Add include for perror | Florent Le Coz | |
2013-11-03 | Exit the poller when it handles no connection at all | Florent Le Coz | |
2013-11-02 | Move the basic socket implementation into the SocketHandler class | Florent Le Coz | |
(that is, the read/write/connect/etc) Because this code is actually common for both the IrcClient and XmppComponent class. These two classes have to implement some higher level callbacks (parsing the data provided in the buffers, doing stuff when the connection is done) instead of doing the read/write/connect low level things. | |||
2013-11-02 | Basic IRC message parsing/sending | Florent Le Coz | |
2013-11-02 | First step of the connection skeleton | Florent Le Coz | |
Basic connect, socket creating, polling, recving, etc. |