forked from enlightenment/efl
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:
parent
704d0818d7
commit
bda935c304
|
@ -2,6 +2,7 @@
|
||||||
#define EFL_NET_DIALER_PROTECTED 1
|
#define EFL_NET_DIALER_PROTECTED 1
|
||||||
#define EFL_NET_SOCKET_FD_PROTECTED 1
|
#define EFL_NET_SOCKET_FD_PROTECTED 1
|
||||||
#define EFL_NET_SOCKET_PROTECTED 1
|
#define EFL_NET_SOCKET_PROTECTED 1
|
||||||
|
#define EFL_IO_READER_PROTECTED 1
|
||||||
|
|
||||||
#ifdef HAVE_CONFIG_H
|
#ifdef HAVE_CONFIG_H
|
||||||
# include <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);
|
freeaddrinfo(pd->resolve.names);
|
||||||
pd->resolve.names = NULL;
|
pd->resolve.names = NULL;
|
||||||
|
efl_io_reader_eos_set(o, EINA_TRUE);
|
||||||
if (err)
|
if (err)
|
||||||
efl_event_callback_call(o, EFL_NET_DIALER_EVENT_ERROR, &err);
|
efl_event_callback_call(o, EFL_NET_DIALER_EVENT_ERROR, &err);
|
||||||
else
|
else
|
||||||
|
@ -170,6 +172,7 @@ _efl_net_dialer_tcp_resolved(void *data, const char *host EINA_UNUSED, const cha
|
||||||
if (gai_error)
|
if (gai_error)
|
||||||
{
|
{
|
||||||
Eina_Error err = EFL_NET_DIALER_ERROR_COULDNT_RESOLVE_HOST;
|
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);
|
efl_event_callback_call(o, EFL_NET_DIALER_EVENT_ERROR, &err);
|
||||||
if (result) freeaddrinfo(result);
|
if (result) freeaddrinfo(result);
|
||||||
return;
|
return;
|
||||||
|
|
Loading…
Reference in New Issue