louiz’
0ab40dc1ab
Refactoring louloulibs and cmake
...
Use OBJECT libraries
Remove the louloulibs directory
Write FOUND variables in the cache
2017-03-14 21:45:23 +01:00
Florent Le Coz
d600a2843f
Remove all the libs that are now in louloulibs
2015-02-27 12:26:48 +01:00
Florent Le Coz
b86547dc1e
Implement async DNS resolution using c-ares
...
fix #2533
2015-02-23 13:56:08 +01:00
Florent Le Coz
8c34576ea0
Move some members of TCPSocketHandler into the SocketHandler class
2014-07-03 03:31:50 +02:00
Florent Le Coz
04d999168a
Add a level of inheritance above SocketHandler
...
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-07-02 03:01:09 +02:00
Florent Le Coz
77fe8b89a3
Make the Botan rng, credential_manager etc be static
...
This actually makes the session_manager be useful, and saves a few octets of
memory for the other ones
2014-06-19 01:04:40 +02:00
Florent Le Coz
8b30e312bb
Add a TimedEvent to cancel the connection to a server after 5 seconds
2014-06-08 15:13:08 +02:00
Florent Le Coz
23f32ba39e
Implement TLS support using Botan
...
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-08 05:07:54 +02:00
Florent Le Coz
be6265544a
Make the destructor of the SocketHandler class protected non-virtual
2014-06-05 02:24:03 +02:00
Florent Le Coz
e033b6a3ae
On connection in-progress, save the whole addrinfo struct, not just ai_addr
2014-05-28 02:03:36 +02:00
Florent Le Coz
23e8e32f84
Support IPv6 connections
...
fix #2522
2014-05-27 01:06:45 +02:00
Florent Le Coz
5507adbe94
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.
2014-05-27 01:01:44 +02: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
df774d45a9
Use scatter/gather io with sendmsg to avoid concataning strings all the time
2014-02-27 23:43:05 +01:00
Florent Le Coz
e2b9e80244
Fix a wrong comment
2014-02-26 01:15:44 +01:00
Florent Le Coz
730cc6e1bd
Save the addrinfo values for reuse on subsequent connect() call
2014-02-22 23:35:14 +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
c8b41d5e35
Be verbose about IRC server connection failures, and handle them properly
2014-02-08 07:52:22 +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
983477084c
connect() returns a boolean
2013-12-24 14:03:40 +01:00
Florent Le Coz
2ecb637f0c
Read a variable number of bytes, 4096 by default
2013-12-23 17:07:43 +01:00
Florent Le Coz
358b53faef
Move the basic socket implementation into the SocketHandler class
...
(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 23:39:00 +01:00
Florent Le Coz
7869ef2ace
First step of the connection skeleton
...
Basic connect, socket creating, polling, recving, etc.
2013-11-02 03:19:24 +01:00