ecore_con: handle timeout of the attempt to connect.

This has been the fix that prevent random ecore_con DNS tests to fail for me. This should also in case
of failure make the timeout of the ecore_con itself be honored which wasn't anymore.

@fix

Differential Revision: https://phab.enlightenment.org/D7402
This commit is contained in:
Cedric BAIL 2018-11-30 15:48:13 -08:00 committed by Marcel Hollerbach
parent 913ea32a7a
commit 67993500da
2 changed files with 7 additions and 1 deletions

View File

@ -1341,13 +1341,19 @@ _ecore_con_server_dialer_error(void *data, const Efl_Event *event)
{
Ecore_Con_Server *svr = data;
Eina_Error *perr = event->info;
static int nested = EINA_FALSE;
if (svr->delete_me) return;
if (nested) return;
nested = EINA_TRUE;
WRN("error reaching server %s: %s", efl_net_dialer_address_dial_get(svr->dialer), eina_error_msg_get(*perr));
if (_ecore_con_post_event_server_error(svr, eina_error_msg_get(*perr)))
_ecore_con_server_dialer_close(svr);
nested = EINA_FALSE;
}
static void
@ -1413,6 +1419,7 @@ EFL_CALLBACKS_ARRAY_DEFINE(_ecore_con_server_dialer_cbs,
{ EFL_IO_BUFFERED_STREAM_EVENT_SLICE_CHANGED, _ecore_con_server_dialer_slice_changed },
{ EFL_IO_BUFFERED_STREAM_EVENT_READ_FINISHED, _ecore_con_server_dialer_read_finished },
{ EFL_IO_BUFFERED_STREAM_EVENT_FINISHED, _ecore_con_server_dialer_finished },
{ EFL_IO_BUFFERED_STREAM_EVENT_ERROR, _ecore_con_server_dialer_error },
{ EFL_NET_DIALER_EVENT_ERROR, _ecore_con_server_dialer_error },
{ EFL_NET_DIALER_EVENT_RESOLVED, _ecore_con_server_dialer_resolved },
{ EFL_NET_DIALER_EVENT_CONNECTED, _ecore_con_server_dialer_connected });

View File

@ -41,7 +41,6 @@ _efl_net_dialer_simple_inner_io_error(void *data, const Efl_Event *event)
{
Eo *o = data;
efl_event_callback_call(o, EFL_NET_DIALER_EVENT_ERROR, event->info);
efl_event_callback_call(o, EFL_IO_BUFFERED_STREAM_EVENT_ERROR, event->info);
}
static void