summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGustavo Sverzut Barbieri <barbieri@profusion.mobi>2016-09-12 13:21:20 -0300
committerGustavo Sverzut Barbieri <barbieri@profusion.mobi>2016-09-12 13:21:20 -0300
commitbda935c304a3dee7ca4107a5579253a11635120e (patch)
tree7edbbeb4bc6988dfff260bf35ad55b3aae2737f9
parent704d0818d7f8e0676844ea47647cee868cd6ba90 (diff)
downloadefl-bda935c304a3dee7ca4107a5579253a11635120e.tar.gz
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.
-rw-r--r--src/lib/ecore_con/efl_net_dialer_tcp.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/lib/ecore_con/efl_net_dialer_tcp.c b/src/lib/ecore_con/efl_net_dialer_tcp.c
index a44be53ab1..c5ce629362 100644
--- a/src/lib/ecore_con/efl_net_dialer_tcp.c
+++ b/src/lib/ecore_con/efl_net_dialer_tcp.c
@@ -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;