forked from enlightenment/efl
101c13d582
If connect() returns 0, we must send the ECORE_CON_EVENT_SERVER_ADD event because it wont be given by select(). select() will ONLY notice it if connect returns -1 with errno set to EINPROGRESS. This bug is reproductible with 100% chance using ecore_con_telnet_client example from https://github.com/gfriloux/examples if you connect to 127.0.0.1 instead of of an external network ip, under FreeBSD (and likely any BSD). Seems very rare to trigger it under GNU/Linux as it seems that connect() doesnt want to return 0 when having non blocking sockets (or is too slow), but it seems i was having this bug too on production servers, without being ever able to reproduce it. |
||
---|---|---|
.. | ||
Ecore_Con.h | ||
Ecore_Con_Eet.h | ||
Ecore_Con_Eo.h | ||
Ecore_Con_Legacy.h | ||
dns.c | ||
dns.h | ||
ecore_con.c | ||
ecore_con_alloc.c | ||
ecore_con_ares.c | ||
ecore_con_base.eo | ||
ecore_con_client.eo | ||
ecore_con_connector.eo | ||
ecore_con_dns.c | ||
ecore_con_eet.c | ||
ecore_con_info.c | ||
ecore_con_local.c | ||
ecore_con_local_win32.c | ||
ecore_con_private.h | ||
ecore_con_server.eo | ||
ecore_con_socks.c | ||
ecore_con_ssl.c | ||
ecore_con_url.c | ||
ecore_con_url.eo |