path: root/src/lib/ecore_ipc (follow)
AgeCommit message (Collapse)Author
2019-05-22ecore_ipc: close dialer io closer when dialer is deleted.Hosang Kim
Summary: dialer uses copier class, so dialer's close on invalidate flag is EINA_FALSE. Therefore dialer io closer is not closed automatically. Reviewers: barbieri, raster, Hermet, zmike Reviewed By: zmike Subscribers: zmike, cedric, #reviewers, #committers Tags: #efl Differential Revision:
2019-03-08efl-net: namespace events to avoid naming conflictsMike Blumenkrantz
Reviewed-by: Cedric BAIL <> Differential Revision:
2019-02-01replace hton and ntoh family functions with ones defined in einaVincent Torri
Summary: This fixes especially the execution of edje_cc on Windows Test Plan: execution of edje_cc Reviewers: cedric, raster Subscribers: #reviewers, #committers Tags: #efl Differential Revision:
2018-12-20cmake: remove!Marcel Hollerbach
This build was never complete and also was not maintained probebly. It is also dropped in favour of meson which is cool, merged, works & is fast. Differential Revision:
2018-10-02here comes mesonMarcel Hollerbach
a new shiny buildtool that currently completes in the total of ~ 4 min.. 1 min. conf time 2:30 min. build time Where autotools takes: 1:50 min. conf time 3:40 min. build time. meson was taken because it went quite good for enlightenment, and is a traction gaining system that is also used by other mayor projects. Additionally, the DSL that is defined my meson makes the configuration of the builds a lot easier to read. Further informations can be gathered from the README.meson Right now, bindings & windows support are missing. It is highly recommented to use meson 0.48 due to optimizations in meson that reduced the time the meson call would need. Co-authored-by: Mike Blumenkrantz <> Differential Revision: Depends on D7011
2018-05-01ecore: move close_on_destructor to close_on_invalidate as that describe the ↵Cedric BAIL
behavior best. Fix all use to correctly behave on invalidate.
2018-04-11ecore ipc - fix send to skip data payload if null/0Carsten Haitzler (Rasterman)
conversion to efl.nmet didnt deal with null/0 zised payloads properly and tried to send them, resulting in lots of ERR complaints which were not errors. fix that to not try and send such empty payloads @fix
2018-03-26ecore ipc - fix flush to not lose messagesCarsten Haitzler (Rasterman)
it wasn't looking at the copier queue "todo" at all thus skipping it on flush. this will fix flushing of ecore ipc message buffers. this happens to also now fix terminology's "one process" mode. @fix
2018-03-03Revert "cxx: Fix manual code after efl_app change."Carsten Haitzler (Rasterman)
This reverts commit 135154303bea691c6f7f9472a5dec32d9103c38d. Revert "efl: move signal events from efl.loop to" This reverts commit 3dbca39f98288580c62a43c179ac11621433ec88. Revert "efl: add test suite for efl_app" This reverts commit 3e94be5d73256a7f5c02d3a9474173226be7beff. Revert "efl: create Efl.App class, the parent of Efl.Loop" This reverts commit 28fe00b94e55575c15684959b89a614d5a579309. Go back to before because I think this should be done with superclassing here not a parent object. reasons? 1. multiple loops per single thread make no sense. so if multilpe loop objects they wont be contained in a single app object and then deleted like this. 2. the app object is not really sharable in this design so it cant be accessed from other threads 3. it makes it harder to get the main loop or app object (well 2 func calls one calling the other and more typing. it is longer to type and more work where it is not necessary, and again it can't work from other threads unless we go duplicating per thread and then what is the point of splittyign out the signal events from efl.loop then?) etc.
2018-02-26efl: create Efl.App class, the parent of Efl.LoopMike Blumenkrantz
2018-01-18all: Simplify definition of EAPIVincent Torri
This will help in the transition from Autotools to Meson. This has been tested on Windows for which EFL_XXX_BUILD were first introduced.
2018-01-04efl: remove _MSC_VER (Visual Studio macro) usage in source codeVincent Torri
2018-01-02efl loop - rename ecore_main_loop_get to efl_main_loop_getCarsten Haitzler (Rasterman)
ecore_main_loop_get() is really a new "eo api" but it's using our old ecore_* namespace, so move to the new efl namespace.
2017-11-26ecore ipc/con: fix nasty ... they dont mutually excludeCarsten Haitzler (Rasterman)
by deleting the socket they wont mutually exclude at bind which means eny new server just nides the pror one and you can get lots of copies of the same server. this wasnt the case before. it shouldnt have been. i think ther was an rm path for stale sockets when connecting failed or something. anyway... this here was causing multilpe efreetd's and all sorts of nastiness. this is the root cause. so... fix it. @fix
2017-10-13ecore_ipc: rename parameters and annotations for doxygenJinYong Park
Summary: Some parameters' name are different in annotations and statements, so it occurs doxygen warning. To fix it, change it appropriately. Test Plan: API Doxygen Revision Reviewers: raster, cedric, jpeg, myoungwoon, Jaehyun_Cho Differential Revision: Signed-off-by: Cedric Bail <>
2017-09-29ecore_con: simplify Efl.Net.Server.Ssl by inheriting from Efl.Net.Server.Tcp.Cedric BAIL
2017-09-29ecore_con: add an intermediate Efl.Net.Server.IpCedric BAIL
2017-09-26ecore_ipc: Unregister log domain on shutdownJean-Philippe Andre
An old comment mentioned that this was explicitely not unregistered, but I believe the comment isn't valid since ecore_event_type_flush() was introduced.
2017-07-27Ecore_Conn: Enable CLOEXEC by default.Guilherme Iscaro
This flag should be enabled by default in order to avoid socket leaks.
2017-07-27Ecore_IPC: Preserve Ecore_Con legacy behaviour.Guilherme Iscaro
This patch sets some Ecore_Con flags that were missing after the EO migration. These flags must be set in order maintain the Ecore_IPC behaviour before Ecore_Con EO was implemented. Fixes T5722
2017-06-09ecore-ipc: don't return dead clients in ecore_ipc_server_clients_getMike Blumenkrantz
@fix fix T5383
2017-03-29ecore_ipc: use new efl_net_*_windows classes.Gustavo Sverzut Barbieri
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: