efl/src/lib/ecore_con
Carsten Haitzler bd2f189d4c ecore_con - move libproxy to a slave binary with stdin/out msging
so here's the ugly problem. libproxy. yes. we've discussed memory
usage (e.g. it may have to execute javascript and pull in lots of deps
etc.) but we dlopene'd on the fly. ok... but this didn't solve another
issue i hit:

libproxy was causing enlightenment to abort(). some internal bit of
libproxy was raising a c++ exception. this wasn't caught. this causes
an abort(). takes down your entire desktop. FANTASTIC. this is bad. i
wouldnt' expect a library we depend on to be THIS anti-social but
libproxy seemingly is. it SHOULd catch its error sand just propagate
back to us so we can handle gracefully.

there reall is no way around this - isolate libproxy. it's even worse
that libproxy can load arbitrary modules that come from anywhere sho
who knows what issues this can cause. isolation is the best solution i
can think of.

so this makes an elf+net_proxy_helper we spawn the first time we need
a proxy lookup. we re-use that binary again and again until it exits
(it should exit after 10 seconds of being idle with no requests coming
in/pending). it'll respawn again later if needed. this involves now
the efl net threads having to marshall back to mainloop to do the
spawn and to write to the proxy process (reading is done by async exe
data events and the data is passed down a thread queue to the waitng
efl net thread). if the exe dies with pending requests unanswered then
it's respawned again and the req's are re-sent to it... just in case.
it has a limit on how often it'll respawn quickly.

this seems to work in my limited testing. this ALSO now isolates
memory usage of libproxy to another slave process AND this process
will die taking its memory with it once it's been idle for long
enough. that;s also another good solution to keeping libproxy impact
at bay.
2017-01-09 15:29:33 +09:00
..
Ecore_Con.h ecore_con: Ecore_Con_Server now on top of Efl_Net! 2016-12-10 08:44:06 -02:00
Ecore_Con_Eet.h ecore_con: switch from EO to BETA API 2016-06-14 16:01:37 +02:00
Ecore_Con_Eet_Eo.h ecore_con: eoifying ecore_con_eet. 2015-06-22 18:55:57 +02:00
Ecore_Con_Eet_Legacy.h ecore_con: eoifying ecore_con_eet. 2015-06-22 18:55:57 +02:00
Ecore_Con_Eo.h efl_net_socket_udp: expose init() as protected method. 2016-12-19 17:11:46 -02:00
ecore_con.c ecore_con - move libproxy to a slave binary with stdin/out msging 2017-01-09 15:29:33 +09:00
ecore_con_alloc.c ecore_con: Ecore_Con_Server now on top of Efl_Net! 2016-12-10 08:44:06 -02:00
ecore_con_eet.c ecore_con: Ecore_Con_Server now on top of Efl_Net! 2016-12-10 08:44:06 -02:00
ecore_con_eet_base.eo docs: ecore_con: document newly added extern struct item 2016-12-12 09:34:33 +01:00
ecore_con_eet_client_obj.eo Change the EFL to follow the new Eo rename. 2016-08-11 17:04:43 +01:00
ecore_con_eet_server_obj.eo Change the EFL to follow the new Eo rename. 2016-08-11 17:04:43 +01:00
ecore_con_legacy.c ecore_con_legacy: fix compatibility behavior (eos-mark on receiver done). 2016-12-20 10:18:33 -02:00
ecore_con_local.c ecore_con: Ecore_Con_Server now on top of Efl_Net! 2016-12-10 08:44:06 -02:00
ecore_con_local_win32.c ecore_con: fix work on Windows 2016-11-29 15:15:26 +02:00
ecore_con_private.h ecore_con - move libproxy to a slave binary with stdin/out msging 2017-01-09 15:29:33 +09:00
ecore_con_proxy_helper.c ecore_con - move libproxy to a slave binary with stdin/out msging 2017-01-09 15:29:33 +09:00
ecore_con_socks.c ecore_con: Ecore_Con_Server now on top of Efl_Net! 2016-12-10 08:44:06 -02:00
ecore_con_url.c Ecore_Con_Url/Curl: add consistency for _c init/shutdown 2016-12-23 23:03:24 +02:00
ecore_con_url_curl.c Ecore_Con_Url/Curl: add referencing on _c structure 2016-12-23 23:02:45 +02:00
ecore_con_url_curl.h Ecore_Con_Url/Curl: add referencing on _c structure 2016-12-23 23:02:45 +02:00
efl_net-connman.c efl_net_session and efl_net_control for ConnMan 2016-11-08 22:40:34 -02:00
efl_net-connman.h efl_net_session and efl_net_control for ConnMan 2016-11-08 22:40:34 -02:00
efl_net_control-connman.c efl_net_session and efl_net_control for ConnMan 2016-11-08 22:40:34 -02:00
efl_net_control-none.c efl_net_{control,session}: allow "none" backend. 2016-11-18 18:20:25 -02:00
efl_net_control.eo efl_net_{control,session}: allow "none" backend. 2016-11-18 18:20:25 -02:00
efl_net_control_access_point-connman.c efl_net_session and efl_net_control for ConnMan 2016-11-08 22:40:34 -02:00
efl_net_control_access_point-none.c efl_net_{control,session}: allow "none" backend. 2016-11-18 18:20:25 -02:00
efl_net_control_access_point.eo docs: efl_net_control*: ad missing docs in efl_net_control* 2016-11-11 15:30:55 +01:00
efl_net_control_technology-connman.c efl_net_session and efl_net_control for ConnMan 2016-11-08 22:40:34 -02:00
efl_net_control_technology-none.c efl_net_{control,session}: allow "none" backend. 2016-11-18 18:20:25 -02:00
efl_net_control_technology.eo docs: efl_net_control*: ad missing docs in efl_net_control* 2016-11-11 15:30:55 +01:00
efl_net_dialer.c efl.net: socket, server and dialer for TCP. 2016-08-22 18:25:14 -03:00
efl_net_dialer.eo efl_net: move error COULDNT_RESOLVE_HOST to broader scope. 2016-12-12 02:30:33 -02:00
efl_net_dialer_http.c ecore_con - move libproxy to a slave binary with stdin/out msging 2017-01-09 15:29:33 +09:00
efl_net_dialer_http.eo ecore con: use new property impl syntax 2016-12-27 16:58:07 +01:00
efl_net_dialer_simple.c more eo simplified to use Eina_Slice instead of pointer to. 2016-12-19 15:30:56 -02:00
efl_net_dialer_simple.eo ecore con: use new property impl syntax 2016-12-27 16:58:07 +01:00
efl_net_dialer_ssl.c do not emit events from efl_io_closer_close() on destructor. 2016-12-20 10:18:32 -02:00
efl_net_dialer_ssl.eo ecore con: use new property impl syntax 2016-12-27 16:58:07 +01:00
efl_net_dialer_tcp.c do not emit events from efl_io_closer_close() on destructor. 2016-12-20 10:18:32 -02:00
efl_net_dialer_tcp.eo efl_net_dialer: improve proxy docs. 2016-09-19 01:18:14 -03:00
efl_net_dialer_udp.c do not emit events from efl_io_closer_close() on destructor. 2016-12-20 10:18:32 -02:00
efl_net_dialer_udp.eo efl_net_*_udp: make UDP usable, including multicast. 2016-10-25 10:11:48 -02:00
efl_net_dialer_unix.c do not emit events from efl_io_closer_close() on destructor. 2016-12-20 10:18:32 -02:00
efl_net_dialer_unix.eo addded efl_net_{socket,dialer,server}_unix 2016-10-26 19:01:03 -02:00
efl_net_dialer_websocket.c Efl.Loop.User: Use prefix to rename efl_loop_user_loop_get 2016-10-06 12:24:59 +09:00
efl_net_dialer_websocket.eo ecore con: use new property impl syntax 2016-12-27 16:58:07 +01:00
efl_net_http_types.eot docs: ecore_con: document missing structs 2016-10-27 18:22:42 +02:00
efl_net_ip_address.c more eo simplified to use Eina_Slice instead of pointer to. 2016-12-19 15:30:56 -02:00
efl_net_ip_address.eo more eo simplified to use Eina_Slice instead of pointer to. 2016-12-19 15:30:56 -02:00
efl_net_server.c efl.net: socket, server and dialer for TCP. 2016-08-22 18:25:14 -03:00
efl_net_server.eo efl_net: move error COULDNT_RESOLVE_HOST to broader scope. 2016-12-12 02:30:33 -02:00
efl_net_server_fd.c efl_net: fix formatting warnings from windows. 2016-12-09 19:33:40 -02:00
efl_net_server_fd.eo ecore con: use new property impl syntax 2016-12-27 16:58:07 +01:00
efl_net_server_simple.c efl_net_server_simple: fix leak reported by eo_debug 2016-12-09 13:47:04 -02:00
efl_net_server_simple.eo ecore con: use new property impl syntax 2016-12-27 16:58:07 +01:00
efl_net_server_ssl.c efl_net_server_ssl: monitor context del and unref on destructor. 2016-12-08 16:00:01 -02:00
efl_net_server_ssl.eo ecore con: use new property impl syntax 2016-12-27 16:58:07 +01:00
efl_net_server_tcp.c efl_net: move error COULDNT_RESOLVE_HOST to broader scope. 2016-12-12 02:30:33 -02:00
efl_net_server_tcp.eo docs: ecore_con: add missing docs for new efl_net_* components 2016-11-07 15:58:54 +01:00
efl_net_server_udp.c efl_net: move error COULDNT_RESOLVE_HOST to broader scope. 2016-12-12 02:30:33 -02:00
efl_net_server_udp.eo ecore_con: fix time to live value name and type 2016-11-18 16:20:55 +01:00
efl_net_server_udp_client.c do not emit events from efl_io_closer_close() on destructor. 2016-12-20 10:18:32 -02:00
efl_net_server_udp_client.eo ecore con: use new property impl syntax 2016-12-27 16:58:07 +01:00
efl_net_server_unix.c efl_net: move error COULDNT_RESOLVE_HOST to broader scope. 2016-12-12 02:30:33 -02:00
efl_net_server_unix.eo efl_net_server_unix: add leading_directories_create property. 2016-11-25 18:01:29 -02:00
efl_net_session-connman.c ecore_con: fix pointers type mismatches 2016-11-12 10:39:18 +01:00
efl_net_session-none.c efl_net_{control,session}: allow "none" backend. 2016-11-18 18:20:25 -02:00
efl_net_session.eo efl_net_{control,session}: allow "none" backend. 2016-11-18 18:20:25 -02:00
efl_net_socket.c efl.net: socket, server and dialer for TCP. 2016-08-22 18:25:14 -03:00
efl_net_socket.eo docs: efl_net_socket: add missing docs for efl_net_socket 2016-11-11 15:34:08 +01:00
efl_net_socket_fd.c do not emit events from efl_io_closer_close() on destructor. 2016-12-20 10:18:32 -02:00
efl_net_socket_fd.eo ecore con: use new property impl syntax 2016-12-27 16:58:07 +01:00
efl_net_socket_simple.c efl_net_{socket,dialer,server}_simple: easy to use, buffered network sockets. 2016-11-25 17:27:32 -02:00
efl_net_socket_simple.eo ecore con: use new property impl syntax 2016-12-27 16:58:07 +01:00
efl_net_socket_ssl.c do not emit events from efl_io_closer_close() on destructor. 2016-12-20 10:18:32 -02:00
efl_net_socket_ssl.eo ecore con: use new property impl syntax 2016-12-27 16:58:07 +01:00
efl_net_socket_tcp.c efl_net: fix formatting warnings from windows. 2016-12-09 19:33:40 -02:00
efl_net_socket_tcp.eo ecore con: use new property impl syntax 2016-12-27 16:58:07 +01:00
efl_net_socket_udp.c efl_io_reader/writer: always set 'can_*' to FALSE on errors. 2016-12-20 10:18:32 -02:00
efl_net_socket_udp.eo ecore con: use new property impl syntax 2016-12-27 16:58:07 +01:00
efl_net_socket_unix.c efl_net: use SOCKET_FMT to format SOCKET so it works on UNIX and Windows. 2016-11-18 12:53:32 -02:00
efl_net_socket_unix.eo ecore con: use new property impl syntax 2016-12-27 16:58:07 +01:00
efl_net_ssl_conn-gnutls.c efl_net_socket_ssl: initial SSL wrapper. 2016-10-31 19:39:33 -02:00
efl_net_ssl_conn-none.c efl_net_socket_ssl: initial SSL wrapper. 2016-10-31 19:39:33 -02:00
efl_net_ssl_conn-openssl.c openssl 1.1 build break fixes 2017-01-04 17:47:38 +09:00
efl_net_ssl_context.c efl_net: spell check s/revogation/revocation/g 2016-12-12 02:30:33 -02:00
efl_net_ssl_context.eo efl_net: spell check s/revogation/revocation/g 2016-12-12 02:30:33 -02:00
efl_net_ssl_ctx-gnutls.c efl_net: spell check s/revogation/revocation/g 2016-12-12 02:30:33 -02:00
efl_net_ssl_ctx-none.c efl_net_socket_ssl: initial SSL wrapper. 2016-10-31 19:39:33 -02:00
efl_net_ssl_ctx-openssl.c openssl 1.1 build break fixes 2017-01-04 17:47:38 +09:00
efl_net_ssl_types.eot efl_net_socket_ssl: initial SSL wrapper. 2016-10-31 19:39:33 -02:00
efl_net_types.eot efl_net: move error COULDNT_RESOLVE_HOST to broader scope. 2016-12-12 02:30:33 -02:00