path: root/src/lib/ecore_ipc (unfollow)
AgeCommit message (Collapse)Author
2017-03-09ecore_ipc: avoid crash during shutdown due to Ecore_Event queue.Cedric BAIL
2017-02-15doxygen: fix typos and some wrong expressions in API reference.Myoungwoon Roy, Kim
Summary: I had fixed some typos and some wrong expressions, such as capital letters, singular, and orders of groups in API reference doxygen. Test Plan: Doxygen revision Reviewers: stefan, cedric, raster, Jaehyun_Cho, jpeg Subscribers: conr2d Differential Revision: Signed-off-by: Cedric BAIL <>
2017-02-02cmake: add ecore_ipc.Gustavo Sverzut Barbieri
2016-12-19ecore_con/ecore_ipc: flush should wait for connection.Gustavo Sverzut Barbieri
Some applications will create the handle, immediately send data, flush and delete it, expecting the data to be sent to remote peer. This is a bad behavior as the application would become unresponsive until the connection is established, data can be written (since depends on server consuming it), then allow it to be closed. A proper behavior here would be to chain based on events, with the usage of a copier would be simply wait for "done" event. However the legacy API allowed this and terminology depends on this awkward "feature", thus be bug-compatible. This fixes T5015.
2016-12-19ecore_con/ecore_ipc legacy: fail early for local sockets.Gustavo Sverzut Barbieri
In the old/legacy API the socket would be opened early in non-blocking mode (connect returned errno==EINPROGRESS), with UNIX socket being path-validated early and returning NULL as 'server' handle. Some applications relied on this instead of monitoring the "ERROR" events, considering the connection to be successful if there was a handle -- this was the case with Terminology after it moved from DBus to Ecore_Ipc. Although this is not correct, we must keep compatibility and thus we stat() in compatibility layer, failing early as the old API would do.
2016-12-19ecore_con/ecore_ipc: keep log domain alive after shutdown.Gustavo Sverzut Barbieri
These legacy API had the nasty behavior of keeping handles alive until the pending events were dispatched, this could happen after the module itself was shutdown, resulting in log to unregistered domains. Then do not unregister the domain -- eina_shutdown will avoid leaks anyway.
2016-12-12add missing includes for BSD.Gustavo Sverzut Barbieri
Thanks @netstar.
2016-12-02ecore_ipc: silence a maybe unitialized warningStefan Schmidt
I always got this during the build: lib/ecore_ipc/ecore_ipc.c:537:6: warning: ‘old_mask’ may be used uninitialized in this function [-Wmaybe-uninitialized] Looking at the code it really is a false positive. Gettign the mask is behind an if it is the same if condistion used before writing it. Anyway, silencing the warning here.
2016-11-25efl_net_server_unix: add leading_directories_create property.Gustavo Sverzut Barbieri
This allows us to crete any parent directories that are missing.
2016-11-25efl_io_copier_flush: add may_block and ignore_line_delimiter parameters.Gustavo Sverzut Barbieri
The may_block parameter is useful to force a flush without blocking on read/write, sometimes particularly useful if ignore_line_delimiter is true, then you get the data events without blocking -- as if a server sending some content misses a trailing line delimiter, you do not want to block on recv() but still want to flush data to user. The ignore_line_delimiter parameter is useful if we're going to close the copier and want to flush pending data which may exist due missing trailing terminator. The close method will also force that if destination can take more data.
2016-11-23ecore_ipc: isolate legacy within ifdefs.Gustavo Sverzut Barbieri
Compile out the legacy code when running on platforms that support Efl.Net.Dialer.Unix and Efl.Net.Server.Unix.
2016-11-23ecore_ipc: fix user after free in error handling.Gustavo Sverzut Barbieri
Fixes Coverity 1366274.
2016-11-23ecore_ipc: convert ecore_ipc_server_add() to Efl_Net_Server.Gustavo Sverzut Barbieri
Each client (Ecore_Ipc_Client) is very similar to the handle configured by ecore_ipc_server_connect() (the dialer), except we do not have events such as "connected" and "error", as well as we don't delete the socket as it's owned by the server, instead we close it. The UNIX socket is configured similarly to ecore_con, setting the same masks and mode for directories.
2016-11-23ecore_ipc: free(address) on dialer error.Gustavo Sverzut Barbieri
2016-11-23ecore_ipc: dialers should use max_buf_size = -1.Gustavo Sverzut Barbieri
nothing appears to break, but let's use the same value as legacy.
2016-11-23ecore_ipc: rename 'server' to 'legacy_server'.Gustavo Sverzut Barbieri
Since the plan is to introduce a server based on efl_net_server, first rename the existing handle with 'legacy_' prefix.
2016-11-23ecore_ipc: implement ecore_con_server_connect() using Efl.Net.Dialer.Gustavo Sverzut Barbieri
Use the new Efl.Net.Dialer classes to implement ecore_con_server_connect() scenario. Note that since Windows still doesn't provide any equivalent to Efl.Net.Dialer.Unix, we keep the legacy code for it.
2016-11-23ecore_ipc: check if client is still alive efore emitting 'del' event.Gustavo Sverzut Barbieri
Using the ecore_ipc_server_example with -m/--single-message, if we deleted the client from the callback it would find a dead "cl". As the "cl" handle is removed from svr->clients before it's deleted, it's safe to check if we have that handle in the list before proceeding.
2016-11-23ecore_ipc: refactor client data processing in its own function.Gustavo Sverzut Barbieri
When we move to efl_net we'll reuse the same function to process incoming data, thus refactor the code in their own function so it can be reused.
2016-11-22ecore_ipc: refactor server data processing in its own function.Gustavo Sverzut Barbieri
When we move to efl_net we'll reuse the same function to process incoming data, thus refactor the code in their own function so it can be reused.
2016-11-22ecore_ipc: refactor code related to event posting.Gustavo Sverzut Barbieri
When we move to efl_net we'll reuse the same event posting, thus refactor the code in their own function so it can be reused.
2016-11-22ecore_ipc: fix copy & paste error.Gustavo Sverzut Barbieri
2016-11-22ecore_ipc: delete if 'delete_me' was set.Gustavo Sverzut Barbieri
The flag 'delete_me' is set when there are pending events to be dispatched. Once these events are freed, they will check if the server was pending delete and call ecore_ipc_server_del() again, thus we must not return, otherwise data will be leaked.
2016-11-22ecore_ipc: remove unused headers.Gustavo Sverzut Barbieri
2016-11-22ecore_ipc: log domain can be static, it's not shared with other files.Gustavo Sverzut Barbieri
2016-10-10ecore_ipc: fix typos in documentation group namesJee-Yong Um
Summary: fix typos in documentation group names to grouping APIs correctly Reviewers: cedric, jpeg, Hermet Reviewed By: Hermet Differential Revision:
2016-10-04ecore_file/ipc: clean up documentationJee-Yong Um
Summary: move comment from c source to header and adjust ingroup relationship Reviewers: cedric, jpeg, Hermet Reviewed By: Hermet Differential Revision:
2016-07-11If there is situation when server is closed prior to client, the client ↵Prince Kumar Dubey
pointer pointing to server must be reset and check must be there during client deletion Summary: During mobile product testing, we got a crash with callstack which suggest server is getting deleted prior to client. On valgrind analysis we found invalid write operation with same callstack. callstack is pasted in comment section. Test Plan: create a situation where server got deleted prior to client. Reviewers: raster, cedric Subscribers: govi, rajeshps, jpeg Differential Revision:
2015-11-13ecore_ipc: use Eina_Bool for one-bit bitfieldStefan Schmidt
Make sure we are using a unsigned var here. Best go with a Eina_Bool directly.
2015-10-02ecore_ipc: fix typo in ecore_ipc_server_send() API docAmitesh Singh
2015-07-28ecore_ipc: remove redundant codeThiep Ha
Summary: buf is always NULL (already freed and set to NULL). We don't need to add NULL checking and free it. Reviewers: raster, cedric, Hermet Subscribers: seoz, cedric Differential Revision: Signed-off-by: Cedric BAIL <>
2015-05-07ecore: remove the need to order the header correctly for Windows.Cedric BAIL
2014-12-12ecore_ipc: coverity issue - you cannot return without freeShinwoo Kim
Summary: The allocated memory is not released before return. Lost track of the CID. Test Plan: Run static analysis tool such as prevent Reviewers: raster, cedric Reviewed By: cedric Subscribers: cedric, seoz Differential Revision: Signed-off-by: Cedric BAIL <>
2014-10-20ecore_ipc: update missing API documentation.Pierre Le Magourou
2014-01-07fix typos in EFL documentsJihoon Kim
2013-12-26efl: Unified eina critical manro to CRI.Daniel Juyung Seo
Being annoyed by different types of eina critical macros - CRI, CRIT, CRITICAL -, I concluded to unify them to one. Discussed on IRC and finally, CRI was chosen to meet the consistency with other macros - ERR, WRN, INF, DBG - in terms of the number of characters. If there is any missing bits, please let me know.
2013-11-28ecore_ipc: prevent a double free.Cedric Bail
According to clang static analyzer it is possible to find a path where buf and svr->buf are pointing to the same array, better be safe than sorry. Arguably this code could be more readable if it was using Eina_Binbuf.
2013-10-02ecore_ipc: use the new eina_swap*().Cedric Bail
2013-07-16fix clang bad free better. :)Carsten Haitzler (Rasterman)
2013-07-16fix clang bad free complaintCarsten Haitzler (Rasterman)
2013-07-09somehow buf is freed once its put into an event.. but before event isCarsten Haitzler (Rasterman)
processed. don't allow this.
2013-07-08Initialize 'buf' to NULL (to avoid compiler warning)Chris Michael
Signed-off-by: Chris Michael <>
2013-07-08Fix memleaks reported by Coverity: Setting 'buf' to NULL (withoutChris Michael
freeing first) leaks the storage that buf Did point to (which could have been from a realloc above). NB: Fixes Coverity CID1039277, CID1039278 Signed-off-by: Chris Michael <>
2013-07-08Fix formattingChris Michael
Signed-off-by: Chris Michael <>
2013-03-16ecore_con: improve portability.Cedric Bail
2013-01-10efl: remove checks for socket.h, net/*, arpa/*Lucas De Marchi
SVN revision: 82585
2012-12-28efl/ecore_ipc: fix doxygen hierarchy.Gustavo Sverzut Barbieri
SVN revision: 81837
2012-12-24all efl object deletion functions now take NULL without crashing or erroringMike Blumenkrantz
SVN revision: 81667
2012-12-18efl: Created Ecore group and added existing Ecore groups to it.Jonas M. Gastal
SVN revision: 81293
2012-12-02merge: add escape ecore, fix several bugsVincent Torri
SVN revision: 79995