}
}
if (ret != 0)
- ret = EFL_NET_DIALER_ERROR_COULDNT_CONNECT;
+ {
+ if (results)
+ {
+ memcpy(addr, results->ai_addr, results->ai_addrlen);
+ *p_addrlen = results->ai_addrlen;
+ }
+ ret = EFL_NET_DIALER_ERROR_COULDNT_CONNECT;
+ }
EINA_THREAD_CLEANUP_POP(EINA_TRUE);
}
return ret;
error:
if (err)
{
+ if (addr && addr->sa_family)
+ {
+ char buf[INET6_ADDRSTRLEN + sizeof("[]:65536")] = "";
+ if (efl_net_ip_port_fmt(buf, sizeof(buf), addr))
+ {
+ efl_net_socket_address_remote_set(o, buf);
+ efl_event_callback_call(o, EFL_NET_DIALER_EVENT_RESOLVED, NULL);
+ }
+ }
efl_io_reader_eos_set(o, EINA_TRUE);
efl_event_callback_call(o, EFL_NET_DIALER_EVENT_ERROR, &err);
}
err = _efl_net_dialer_udp_resolved_bind(o, pd, addr);
if (err == 0) break;
}
- freeaddrinfo(result);
end:
if (err)
{
+ if (result)
+ {
+ char buf[INET6_ADDRSTRLEN + sizeof("[]:65536")] = "";
+ if (efl_net_ip_port_fmt(buf, sizeof(buf), result->ai_addr))
+ {
+ efl_net_socket_address_remote_set(o, buf);
+ efl_event_callback_call(o, EFL_NET_DIALER_EVENT_RESOLVED, NULL);
+ }
+ }
+
efl_io_reader_eos_set(o, EINA_TRUE);
efl_event_callback_call(o, EFL_NET_DIALER_EVENT_ERROR, &err);
}
+ freeaddrinfo(result);
efl_unref(o);
}