Commit Graph

253 Commits

Author SHA1 Message Date
Carsten Haitzler 865b10d739 ecore-con - dont complain about socket setup issues when api handles it
ecore-con api returns failure cases and ecore-con shouldt go spamming
stderr with this as it's inteded to be handled at the api level, so
slience!
2016-06-13 18:12:33 +09:00
Daniel Kolesa b1946ca5d6 eolian: utilize the new void_ptr builtin across eo files
This lets me narrow down the remaining cases of pointers across the EFL.
The void pointers will later need to be reevaluated on per-case basis and
replaced appropriately where possible/feasible.
2016-06-02 13:00:26 +01:00
Tom Hacohen a6a2338962 Revert "Eo: Remove eo_del() and make eo_unref() the replacement."
This reverts commit 546ff7bbba.

It seems that eo_del() is useful and removing it was creating bugs.
The issue is that the way we defined parents in eo, both the parent and
the programmer share a reference to the object. When we eo_unref() that
reference as the programmer, eo has no way to know it's this specific
reference we are freeing, and not a general one, so in some
circumstances, for example:
eo_ref(child);
eo_unref(child); // trying to delete here
eo_unref(container); // container is deleted here
eo_unref(child); // child already has 0 refs before this point.

We would have an issue with references and objects being freed too soon
and in general, issue with the references.

Having eo_del() solves that, because this one explicitly unparents if
there is a parent, meaning the reference ownership is explicitly taken
by the programmer.

eo_del() is essentially a convenience function around "check if has
parent, and if so unparent, otherwise, unref". Which should be used when
you want to delete an object although it has a parent, and is equivalent
to eo_unref() when it doesn't have one.
2016-06-01 13:33:21 +01:00
Mike Blumenkrantz b7dc576ec8 ecore-con: print win32 svr->path on pipe creation failure
ref T3758
2016-05-31 14:03:48 -04:00
Daniel Kolesa 6fc482aa9b eolian: utilize the new builtin string type across eo files 2016-05-31 16:05:43 +01:00
Carsten Haitzler 1eba9d9de0 ecore-con - simplify down to a single libc resolver
Summary:
this removes the cares/ares based resolver and the compiled-in dns.c
resolver, modified the getaddrinfo based resolver to use threads not
forking (almost halving its size) and now makes that the only resolver
we have. getaddrinfo handles ipv6 and ipv4 (according to docs). this
simplifies code paths, drops code size of the efl tree by about 11k
lines of code, makes it easier to test and more robust to future
changes with ip resolving as it now just relies on libc. we won't have
coverity complaints on dns.c imported code anymore to fix and don't
have tokeep up with bugfixes/security from the upstream imported code.
this means we use a single resolver on all platforms (windows, mac,
linux) as opposed to before where cares was used for windows, and
dns.c on linux/mac. oh and the forking original was broken since our
move to eo too. so it couldnt even compile if enabled, letalone work.

so fix bug with missing /etc/resolv.conf that dns.c couldn't cope
with, fix testability, fix maintainability and reduce efl codebase size.

this fixes T3668

@fix
@improve

Subscribers: cedric, seoz, jpeg

Maniphest Tasks: T3668

Differential Revision: https://phab.enlightenment.org/D3971
2016-05-24 09:20:49 +09:00
Daniel Kolesa e984e5a11a eolian: remove pointers from complex and class types
Complex types (i.e. list, array, hash, accessor etc.) now do not require
pointers with them anymore (the pointer is implied) and the same goes for
class handles. Eolian now explicitly disallows creating pointers to these
as well. This is the first part of the work to remove pointers from Eolian
completely, with the goal of simplifying the DSL (higher level) and therefore
making it easier for bindings (as well as easier API usage).

@feature
2016-05-23 15:58:33 +01:00
Cedric Bail 75a53ece10 eo: for consistency use object like all our API. 2016-05-18 08:18:04 -07:00
Tom Hacohen 546ff7bbba Eo: Remove eo_del() and make eo_unref() the replacement.
We used to have eo_del() as the mirrored action to eo_add(). No longer,
now you just always eo_unref() to delete an object. This change makes it
so the reference of the parent is shared with the reference the
programmer has. So eo_parent_set(obj, NULL) can free an object, and so
does eo_unref() (even if there is a parent).

This means Eo no longer complains if you have a parent during deletion.
2016-05-17 16:23:23 +01:00
Tom Hacohen 96c4c88070 Efl: Remove "legacy_prefix: null;" as it's now the default. 2016-05-12 17:27:35 +01:00
Daniel Kolesa 7e94eb22b4 eolian: mark pure virtual funcs outside of implements
This is a better syntax and should've been like this in the first place.
2016-05-12 16:15:24 +01:00
Tom Hacohen c5ea7962e9 Eet: Fix namespacing to use . and not _. 2016-05-12 12:20:34 +01:00
Tom Hacohen 7c96c972bd Ecore con: Fix namespacing to use . and not _. 2016-05-12 12:20:34 +01:00
Tom Hacohen 70b5f3875e Efl network: Remove the no longer needed .Base hack. 2016-05-11 13:00:57 +01:00
Stefan Schmidt 204a252abe docs: efl_network: class descriptions for connector and URL 2016-04-26 14:01:17 +02:00
Stefan Schmidt 727f58524a docs: efl_network: enhance the EO classes for client and server 2016-04-26 14:01:17 +02:00
Stefan Schmidt 9897cf495b docs: efl_network: enhance documentation in base class
Fix some of the existing documentation and add some for events and the class.
2016-04-26 14:01:17 +02:00
Tom Hacohen f14305024e Eo event: rename Eo_Event->event_info to Eo_Event->info.
The previous naming was redundant and too long.
2016-04-12 15:23:55 +01:00
Stefan Schmidt dadfe4ffb9 docs: add descriptions for ecore_con_eet_{client,server} EO classes 2016-04-11 16:52:43 +02:00
Stefan Schmidt c0afe61dd0 docs: add description to ecore_con_eet_base class 2016-04-11 16:52:43 +02:00
Daniel Zaoui 49f0f09661 Ecore_Con: protect access to internal data 2016-04-10 15:15:08 +03:00
Tom Hacohen 8706d03b43 Change the EFL according to the renaming of the eo_add() current object. 2016-03-15 15:25:54 +00:00
Tom Hacohen f24210caac Revert "Automatic migration to the new eo_add syntax."
This reverts commit 4f949a2757.
2016-03-11 12:29:03 +00:00
Tom Hacohen 4f949a2757 Automatic migration to the new eo_add syntax. 2016-03-09 16:09:14 +00:00
Tom Hacohen 23a6b12183 Fix migration script mistakes and compilation warnings.
Mostly unused vars following the removal of eo_do_ret().
However, there are some cases where the migration script got some things
wrong, and I had to manually fix them.
2016-03-03 09:58:08 +00:00
Tom Hacohen f21ade6123 Automatic migration to Eo4.
I just ran my script (email to follow) to migrate all of the EFL
automatically. This commit is *only* the automatic conversion, so it can
be easily reverted and re-run.
2016-03-03 09:58:08 +00:00
Tom Hacohen e71e6561ee Eo callbacks: Migrate all of the EFL to the new event cb signatures. 2016-02-29 11:33:27 +00:00
Srivardhan Hebbar 865624dab0 ecore_con: changing from Ecore.Con.Base to Efl.Network.Base.
Summary: Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>

Reviewers: cedric

Subscribers: jpeg

Differential Revision: https://phab.enlightenment.org/D3696

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2016-02-18 11:25:21 -08:00
Srivardhan Hebbar 8a18b0749d ecore_con: fix compilation issues on Windows
Summary:
I do not have a windows setup. So tested by building with option --with-windows-version and it built successfully. Let me know if there are more
issues.

Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>

Reviewers: jpeg, vtorri, cedric

Reviewed By: cedric

Maniphest Tasks: T3192

Differential Revision: https://phab.enlightenment.org/D3708

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2016-02-17 14:09:55 -08:00
Tom Hacohen 65367180bf Ecore con eet: Fix Eolian warnings.
This includes either migrating types to eolian, fixing namespace or
importing extra types.
2016-02-17 09:39:53 +00:00
Tom Hacohen de2d282309 Ecore con base: Fix Eolian warnings.
This includes either migrating types to eolian, fixing namespace or
importing extra types.
2016-02-16 10:02:10 +00:00
Srivardhan Hebbar b1e1186b8e ecore_con: change Ecore.Con.Client to Efl.Network.Client.
Summary: Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>

Reviewers: cedric

Subscribers: jpeg

Differential Revision: https://phab.enlightenment.org/D3663

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2016-02-12 21:25:55 +01:00
Tom Hacohen 3dd4b218da Ecore con dns: Fix eo file warnings. 2016-02-12 14:29:27 +00:00
Tom Hacohen d4bd7d7033 Ecore con local: properly clean up fd on error.
This wasn't done correctly in the previous commit. First of all, the
order of cleanup was wrong, the cleanup area should only be called if
failures occurred after the fd allocation, not before. Also, fd should
be reinitialised to -1 once we close the socket.
2016-02-05 11:48:36 +00:00
Awadhesh Singh f05577c3ae Ecore con: Close server socket fd on failure.
Summary:
Socket fd must be closed to avoid file discripter leak.
Programs can usually only open a limited number of file descriptors,
so if this happens a lot, it may turn into a problem.

@fix

Reviewers: raster, Hermet, wonsik, spacegrapher, cedric, jpeg, tasn

Reviewed By: tasn

Subscribers: cedric, alok25, yashu21985, singh.amitesh

Differential Revision: https://phab.enlightenment.org/D3660
2016-02-05 11:44:41 +00:00
Srivardhan Hebbar fca9ff1322 ecore_con: changing Ecore.Con.Server to Efl.Network.Server.
Summary: Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>

Reviewers: cedric

Subscribers: jpeg

Differential Revision: https://phab.enlightenment.org/D3549

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2016-02-05 08:10:52 +01:00
Jean-Philippe Andre 22324f21b3 EFL: Mark EOLIAN functions as static when possible
This affects mostly evas filters.
2016-01-13 15:34:20 +09:00
Jean Guyomarc'h 2ecd11e221 ecore_con: fix compiling on OS X
IPV6_ADD_MEMBERSHIP does not exist on OS X, and seems to be obsolete,
according to my glibc's bits/in.h.
IPV6_JOIN_GROUP, however, exists on both.

@fix
2016-01-07 12:03:04 +01:00
Srivardhan Hebbar dc56052150 ecore_con: from ecore_con_connector to efl_network_connector.
Summary:
Changed ecore_con_connector.eo to efl_network_connector.eo as part of
migrating to efl_network.

Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>

Reviewers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D3427

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2016-01-04 12:35:41 -08:00
Cedric BAIL 1a9e42d124 ecore_con: fix typo preventing IPv6 multicast to work.
Thanks Vincent Torri for spotting it.
2015-12-28 14:01:15 -08:00
Felipe Magno de Almeida a3db1dddd3 efl-js: JavaScript Eolian binding
To configure efl sources with bindings to use in nodejs add ––with-js=nodejs in configure flags to generate node files

$ configure --with-js=nodejs

and compile normally with:

$ make
$ make install

To use, you have to require efl:

efl = require('efl')

The bindings is divided in two parts: generated and manually
written. The generation uses the Eolian library for parsing Eo files
and generate C++ code that is compiled against V8 interpreter library
to create a efl.node file that can be required in a node.js instance.

@feature
2015-12-23 23:59:40 -02:00
Tom Hacohen f44d786fa1 Ecore con socks: Add missing break statement to switch.
This looks like an obvious case of missing break. If it wasn't a missing
break, there should have been at least a comment. Looking at the code it
looks like a break is needed. Also, I suspect this code path is never
really tested, and that's why we never hit it.

Tests are not failing either way.

CID1039379
2015-12-08 11:05:19 +00:00
Vincent Torri 3b44645363 efl: add binary mode to f(re)open() calls
This allows better compatibility with Windows

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-12-05 21:04:36 +01:00
Chidambar Zinnoury 4983ac6d36 ecore con: Fix UDP sockets.
The client structure holds a file descriptor, which is not initialized (which means 0) in case of UDP as there is no client-specific socket.

 However, we check for the file descriptor being positive before closing it in the client destructor, which means that we actually end up closing the 0 file descriptor.

 That means that things were going crazy with real strange things happening afterwards…
2015-11-20 17:46:38 +01:00
Srivardhan Hebbar 4f24deac44 ecore_con: Moving dns.c and dns.h to static_libs.
Summary:
Took the license file from https://github.com/wahern/dns
The dns.c and dns.h are taken from here.

Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>

Reviewers: cedric

Differential Revision: https://phab.enlightenment.org/D3314
2015-11-10 14:10:02 -08:00
Vincent Torri 2712260d75 ecore_con: fix warning on Windows
The macro ERROR is already defined on Windows, renaming it to ERROR_SSL.

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-11-09 10:26:39 -08:00
Cedric BAIL ae5e2c8284 emile/ecore_con: drop SSLv3 support due to security issue.
SSLv3 has been compromised a year ago by what is known as POODLE
(https://en.wikipedia.org/wiki/POODLE). Every major browser have now
dropped support for SSLv3 and distribution are starting to do so also.
It is a good timing for us to do so, especially as it breaks build on
some distribution.
2015-11-02 14:22:42 -08:00
Vincent Torri 506092beda ecore_con: remove debug
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-10-12 17:21:59 -07:00
Vincent Torri 1057a45493 Ecore_Con: make sure to create named pipe with a unique name
Named pipes created with CreateNamedPipe() must have a unique name,
so append the process Id to the name

@fix

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-10-12 17:21:59 -07:00
Tom Hacohen 681328feb5 Ecore con: Prevent possible use of uninitialised buffer on the stack.
I'm not actually sure if it's a false, because finding the possible
options is hard. Just to be safe, it's better to set buf to "" in the
else case. I'm doing this instead of initialising the variable so the
compiler/static analyser will be able to warn us if there are other code
paths that should probably set buf, but don't.

CID 1316016

@fix
2015-10-04 16:31:43 +01:00