Summary:
If the socket is local, then there is no need to through error if the port is less than 0 (i.e., negetive). The behavior is same in _ecore_con_connector_eo_base_finalize funtion. So applied the same here. There is code in ecore_con_local.c to handle if port is less than zero for local sockets.
In _ecore_con_connector_eo_base_finalize function, I've added a space just so that it shows difference in phabricator and would be easy for you to review.
Reviewers: cedric
Reviewed By: cedric
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2089
Summary:
ecore_con_local doesn't currently require any initialization, but it might need
that on some platform and not having the init make the source code non obvious.
This is just a patch to improve future maintenability.
Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>
Reviewers: cedric
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2098
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary: When ecore_init failed or when failed to initialize ecore_con_log_domain, then evil_shutdown was not called. So cleaned up code and added the fix.
@fix
Reviewers: cedric
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D1921
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
_ecore_con_init_count should not go below zero. I've added a test case to test this and also the code to fix this.
Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>
Reviewers: devilhorns
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D1603
If connect() returns 0, we must send the ECORE_CON_EVENT_SERVER_ADD event
because it wont be given by select(). select() will ONLY notice it if connect
returns -1 with errno set to EINPROGRESS.
This bug is reproductible with 100% chance using ecore_con_telnet_client example
from https://github.com/gfriloux/examples if you connect to 127.0.0.1 instead of
of an external network ip, under FreeBSD (and likely any BSD).
Seems very rare to trigger it under GNU/Linux as it seems that connect()
doesnt want to return 0 when having non blocking sockets (or is too slow),
but it seems i was having this bug too on production servers, without being
ever able to reproduce it.
Summary:
If the function jumpes to the error, the scope data is freed, this is
wrong, just the object should be destroyed, so not free, just eo_unref
the object. Cause the object is just added above the object ref count
should get 0 and obj will get removed
Test Plan: Use the ecore_con_server_client_limit_set function and set the max count to 1, at the connect of a second client the server will fail at this free.
Reviewers: tasn
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D1459
this fixes potential leak due to
ff652084e0 fixing a valgrind access
issue. make sure the server is in the list before handling error
conditions in case a callback sets delete_me (should never though).
this should fix T1508 - my testing seems to indicate so. test suite
succeeds, some manual tests of mine work. so is ay this is a good fix
that could fix critical segvs in apps using ecore-con - eg like
weather module in e
num was changed to size_t which makes it unsigned while count is a normal
(signed) int. Comparing them does not always work as expected but in this
case we already checked if count is < 0 before and would have returned if
that would be true. Thus we can safely cast count to unsigned here as it
will be greater 0 anyway.
ERR<7807>: lib/eina/eina_binbuf_template_c.x:95 eina_binbuf_append_length() *** Eina Magic Check Failed !!!
This fix a problem where eina_binbuf was used without
calling eina_binbuf_new when ECORE_CON_REMOTE_UDP is used.
inexistant DNS, or having a DNS resolution error, there isnt any event
generated for the application to know.
This is not a complete fix has you need to fix a timeout value for it to
happen, but still, it makes it possible to work around it.
More work is needed on this.
ecore_con_event_server_add() is never called (at least not in the
standard TCP connection case, so initialize svr->start_time in
ecore_con_server_add(). This shouldn't regress any other behaviour as
this is done at the very beginning and any later change to start_time
will still happen.
Signed-off-by: Daniel Willmann <d.willmann@samsung.com>