efl_net_dialer_tcp: emit EOS on errors.

I/O copier and others may depend on end-of-stream to stop processing,
then emit the EOS on failures.
This commit is contained in:
Gustavo Sverzut Barbieri 2016-09-12 13:21:20 -03:00
parent 704d0818d7
commit bda935c304
1 changed files with 3 additions and 0 deletions

View File

@ -2,6 +2,7 @@
#define EFL_NET_DIALER_PROTECTED 1
#define EFL_NET_SOCKET_FD_PROTECTED 1
#define EFL_NET_SOCKET_PROTECTED 1
#define EFL_IO_READER_PROTECTED 1
#ifdef HAVE_CONFIG_H
# include <config.h>
@ -104,6 +105,7 @@ _efl_net_dialer_tcp_connected(void *data, const struct sockaddr *addr EINA_UNUSE
{
freeaddrinfo(pd->resolve.names);
pd->resolve.names = NULL;
efl_io_reader_eos_set(o, EINA_TRUE);
if (err)
efl_event_callback_call(o, EFL_NET_DIALER_EVENT_ERROR, &err);
else
@ -170,6 +172,7 @@ _efl_net_dialer_tcp_resolved(void *data, const char *host EINA_UNUSED, const cha
if (gai_error)
{
Eina_Error err = EFL_NET_DIALER_ERROR_COULDNT_RESOLVE_HOST;
efl_io_reader_eos_set(o, EINA_TRUE);
efl_event_callback_call(o, EFL_NET_DIALER_EVENT_ERROR, &err);
if (result) freeaddrinfo(result);
return;