2012-12-02 14:35:45 -08:00
|
|
|
|
|
|
|
### Library
|
|
|
|
|
2014-10-02 08:52:45 -07:00
|
|
|
ecore_con_eolian_files = \
|
2016-05-11 05:00:57 -07:00
|
|
|
lib/ecore_con/efl_network.eo \
|
2016-02-12 12:02:01 -08:00
|
|
|
lib/ecore_con/efl_network_client.eo \
|
2016-02-04 23:09:53 -08:00
|
|
|
lib/ecore_con/efl_network_server.eo \
|
2016-01-04 12:35:37 -08:00
|
|
|
lib/ecore_con/efl_network_connector.eo \
|
efl.net: socket, server and dialer for TCP.
Efl.Net.Server defines how to accept new connections, doing the
bind(), listen() and accept() for protocols such as TCP.
Efl.Net.Dialer defines to to reach a server.
Both are based on Efl.Net.Socket as communication interface that is
based on Efl.Io.Reader, Efl.Io.Writer and Efl.Io.Closer, thus being
usable with code such as Efl.Io.Copier.
The Server will emit an event "client,add" with the established
Socket, which is a child and can be closed by both the server or the
user.
The Dialer extends the Socket and allows for creating one given an
address, that will be resolved and connected.
TCP is the initial implementation so we an validate the
interfaces. UDP, Unix-Local and SSL will come later as derivate
classes.
The examples are documented and should cover the basic principles:
- efl_io_copier_example can accept "tcp://IP:PORT" and will work as a
"netcat", can send data from socket, file or stdin to a socket,
file, stdout or stderr.
- efl_net_server_example listens for connections and can either reply
"Hello World!" and take some data or work as an echo-server,
looping back all received data to the user.
More complex interactions that require a "chat" between client and
server will be covered with new classes later, such as a queue that
empties itself once data is read.
2016-08-17 21:53:16 -07:00
|
|
|
lib/ecore_con/efl_net_socket.eo \
|
|
|
|
lib/ecore_con/efl_net_socket_fd.eo \
|
|
|
|
lib/ecore_con/efl_net_socket_tcp.eo \
|
|
|
|
lib/ecore_con/efl_net_dialer.eo \
|
|
|
|
lib/ecore_con/efl_net_dialer_tcp.eo \
|
2016-08-19 20:55:26 -07:00
|
|
|
lib/ecore_con/efl_net_dialer_http.eo \
|
efl.net: socket, server and dialer for TCP.
Efl.Net.Server defines how to accept new connections, doing the
bind(), listen() and accept() for protocols such as TCP.
Efl.Net.Dialer defines to to reach a server.
Both are based on Efl.Net.Socket as communication interface that is
based on Efl.Io.Reader, Efl.Io.Writer and Efl.Io.Closer, thus being
usable with code such as Efl.Io.Copier.
The Server will emit an event "client,add" with the established
Socket, which is a child and can be closed by both the server or the
user.
The Dialer extends the Socket and allows for creating one given an
address, that will be resolved and connected.
TCP is the initial implementation so we an validate the
interfaces. UDP, Unix-Local and SSL will come later as derivate
classes.
The examples are documented and should cover the basic principles:
- efl_io_copier_example can accept "tcp://IP:PORT" and will work as a
"netcat", can send data from socket, file or stdin to a socket,
file, stdout or stderr.
- efl_net_server_example listens for connections and can either reply
"Hello World!" and take some data or work as an echo-server,
looping back all received data to the user.
More complex interactions that require a "chat" between client and
server will be covered with new classes later, such as a queue that
empties itself once data is read.
2016-08-17 21:53:16 -07:00
|
|
|
lib/ecore_con/efl_net_server.eo \
|
|
|
|
lib/ecore_con/efl_net_server_fd.eo \
|
|
|
|
lib/ecore_con/efl_net_server_tcp.eo \
|
2015-06-22 09:55:54 -07:00
|
|
|
lib/ecore_con/ecore_con_eet_base.eo \
|
|
|
|
lib/ecore_con/ecore_con_eet_server_obj.eo \
|
|
|
|
lib/ecore_con/ecore_con_eet_client_obj.eo \
|
2015-05-18 02:36:13 -07:00
|
|
|
lib/ecore_con/efl_network_url.eo
|
2014-10-02 08:52:45 -07:00
|
|
|
|
2016-08-19 20:55:26 -07:00
|
|
|
ecore_con_eolian_type_files = \
|
|
|
|
lib/ecore_con/efl_net_http_types.eot
|
|
|
|
|
|
|
|
|
2014-10-02 08:52:45 -07:00
|
|
|
ecore_con_eolian_c = $(ecore_con_eolian_files:%.eo=%.eo.c)
|
|
|
|
ecore_con_eolian_h = $(ecore_con_eolian_files:%.eo=%.eo.h) \
|
2016-08-19 20:55:26 -07:00
|
|
|
$(ecore_con_eolian_type_files:%.eot=%.eot.h) \
|
2014-10-02 08:52:45 -07:00
|
|
|
$(ecore_con_eolian_files:%.eo=%.eo.legacy.h)
|
2014-08-22 05:14:59 -07:00
|
|
|
|
2014-08-22 03:11:41 -07:00
|
|
|
BUILT_SOURCES += \
|
2014-10-02 08:52:45 -07:00
|
|
|
$(ecore_con_eolian_c) \
|
|
|
|
$(ecore_con_eolian_h)
|
|
|
|
|
2014-08-22 03:11:41 -07:00
|
|
|
ecoreconeolianfilesdir = $(datadir)/eolian/include/ecore-@VMAJ@
|
|
|
|
ecoreconeolianfiles_DATA = \
|
2016-08-19 20:55:26 -07:00
|
|
|
$(ecore_con_eolian_files) \
|
|
|
|
$(ecore_con_eolian_type_files)
|
2014-08-22 03:11:41 -07:00
|
|
|
|
2016-06-08 01:26:06 -07:00
|
|
|
EXTRA_DIST2 += \
|
2014-08-22 03:11:41 -07:00
|
|
|
${ecoreconeolianfiles_DATA}
|
|
|
|
|
2016-08-19 20:55:26 -07:00
|
|
|
|
2012-12-02 14:35:45 -08:00
|
|
|
lib_LTLIBRARIES += lib/ecore_con/libecore_con.la
|
|
|
|
|
2013-01-16 11:28:30 -08:00
|
|
|
installed_ecoreconmainheadersdir = $(includedir)/ecore-con-@VMAJ@
|
2012-12-02 14:35:45 -08:00
|
|
|
dist_installed_ecoreconmainheaders_DATA = \
|
|
|
|
lib/ecore_con/Ecore_Con.h \
|
2014-08-22 03:11:41 -07:00
|
|
|
lib/ecore_con/Ecore_Con_Legacy.h \
|
|
|
|
lib/ecore_con/Ecore_Con_Eo.h \
|
2015-06-22 23:17:45 -07:00
|
|
|
lib/ecore_con/Ecore_Con_Eet.h \
|
|
|
|
lib/ecore_con/Ecore_Con_Eet_Legacy.h \
|
|
|
|
lib/ecore_con/Ecore_Con_Eet_Eo.h
|
2012-12-02 14:35:45 -08:00
|
|
|
|
2014-08-22 03:11:41 -07:00
|
|
|
nodist_installed_ecoreconmainheaders_DATA = \
|
2014-10-02 08:52:45 -07:00
|
|
|
$(ecore_con_eolian_h)
|
2014-08-22 03:11:41 -07:00
|
|
|
|
2012-12-02 14:35:45 -08:00
|
|
|
lib_ecore_con_libecore_con_la_SOURCES = \
|
|
|
|
lib/ecore_con/ecore_con_alloc.c \
|
|
|
|
lib/ecore_con/ecore_con.c \
|
|
|
|
lib/ecore_con/ecore_con_eet.c \
|
|
|
|
lib/ecore_con/ecore_con_socks.c \
|
|
|
|
lib/ecore_con/ecore_con_ssl.c \
|
|
|
|
lib/ecore_con/ecore_con_url.c \
|
2015-09-02 20:22:01 -07:00
|
|
|
lib/ecore_con/ecore_con_url_curl.c \
|
|
|
|
lib/ecore_con/ecore_con_url_curl.h \
|
2015-11-09 15:52:11 -08:00
|
|
|
static_libs/http-parser/http_parser.c \
|
|
|
|
static_libs/http-parser/http_parser.h \
|
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-22 01:03:26 -07:00
|
|
|
lib/ecore_con/ecore_con_private.h \
|
efl.net: socket, server and dialer for TCP.
Efl.Net.Server defines how to accept new connections, doing the
bind(), listen() and accept() for protocols such as TCP.
Efl.Net.Dialer defines to to reach a server.
Both are based on Efl.Net.Socket as communication interface that is
based on Efl.Io.Reader, Efl.Io.Writer and Efl.Io.Closer, thus being
usable with code such as Efl.Io.Copier.
The Server will emit an event "client,add" with the established
Socket, which is a child and can be closed by both the server or the
user.
The Dialer extends the Socket and allows for creating one given an
address, that will be resolved and connected.
TCP is the initial implementation so we an validate the
interfaces. UDP, Unix-Local and SSL will come later as derivate
classes.
The examples are documented and should cover the basic principles:
- efl_io_copier_example can accept "tcp://IP:PORT" and will work as a
"netcat", can send data from socket, file or stdin to a socket,
file, stdout or stderr.
- efl_net_server_example listens for connections and can either reply
"Hello World!" and take some data or work as an echo-server,
looping back all received data to the user.
More complex interactions that require a "chat" between client and
server will be covered with new classes later, such as a queue that
empties itself once data is read.
2016-08-17 21:53:16 -07:00
|
|
|
lib/ecore_con/ecore_con_info.c \
|
|
|
|
lib/ecore_con/efl_net_socket.c \
|
|
|
|
lib/ecore_con/efl_net_socket_fd.c \
|
|
|
|
lib/ecore_con/efl_net_socket_tcp.c \
|
|
|
|
lib/ecore_con/efl_net_dialer.c \
|
|
|
|
lib/ecore_con/efl_net_dialer_tcp.c \
|
2016-08-19 20:55:26 -07:00
|
|
|
lib/ecore_con/efl_net_dialer_http.c \
|
efl.net: socket, server and dialer for TCP.
Efl.Net.Server defines how to accept new connections, doing the
bind(), listen() and accept() for protocols such as TCP.
Efl.Net.Dialer defines to to reach a server.
Both are based on Efl.Net.Socket as communication interface that is
based on Efl.Io.Reader, Efl.Io.Writer and Efl.Io.Closer, thus being
usable with code such as Efl.Io.Copier.
The Server will emit an event "client,add" with the established
Socket, which is a child and can be closed by both the server or the
user.
The Dialer extends the Socket and allows for creating one given an
address, that will be resolved and connected.
TCP is the initial implementation so we an validate the
interfaces. UDP, Unix-Local and SSL will come later as derivate
classes.
The examples are documented and should cover the basic principles:
- efl_io_copier_example can accept "tcp://IP:PORT" and will work as a
"netcat", can send data from socket, file or stdin to a socket,
file, stdout or stderr.
- efl_net_server_example listens for connections and can either reply
"Hello World!" and take some data or work as an echo-server,
looping back all received data to the user.
More complex interactions that require a "chat" between client and
server will be covered with new classes later, such as a queue that
empties itself once data is read.
2016-08-17 21:53:16 -07:00
|
|
|
lib/ecore_con/efl_net_server.c \
|
|
|
|
lib/ecore_con/efl_net_server_fd.c \
|
|
|
|
lib/ecore_con/efl_net_server_tcp.c
|
2012-12-02 14:35:45 -08:00
|
|
|
|
2016-06-08 01:26:06 -07:00
|
|
|
EXTRA_DIST2 += lib/ecore_con/ecore_con_legacy.c
|
2015-05-22 17:20:46 -07:00
|
|
|
|
2012-12-02 14:35:45 -08:00
|
|
|
if HAVE_WINDOWS
|
|
|
|
lib_ecore_con_libecore_con_la_SOURCES += lib/ecore_con/ecore_con_local_win32.c
|
|
|
|
else
|
|
|
|
lib_ecore_con_libecore_con_la_SOURCES += lib/ecore_con/ecore_con_local.c
|
|
|
|
endif
|
|
|
|
|
2013-04-24 07:43:33 -07:00
|
|
|
lib_ecore_con_libecore_con_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl @ECORE_CON_CFLAGS@
|
2014-05-15 19:26:53 -07:00
|
|
|
lib_ecore_con_libecore_con_la_LIBADD = @ECORE_CON_LIBS@ @EVIL_LIBS@
|
2013-01-14 14:36:23 -08:00
|
|
|
lib_ecore_con_libecore_con_la_DEPENDENCIES = @ECORE_CON_INTERNAL_LIBS@
|
2012-12-30 14:15:29 -08:00
|
|
|
lib_ecore_con_libecore_con_la_LDFLAGS = @EFL_LTLIBRARY_FLAGS@
|
2014-10-06 03:32:25 -07:00
|
|
|
|
2015-11-09 15:52:11 -08:00
|
|
|
lib_ecore_con_libecore_con_la_CPPFLAGS += -I$(top_srcdir)/src/static_libs/http-parser
|
|
|
|
|
2016-06-08 01:26:06 -07:00
|
|
|
EXTRA_DIST2 += \
|
2015-04-07 04:17:25 -07:00
|
|
|
tests/ecore_con/server.key \
|
2015-11-09 15:52:11 -08:00
|
|
|
tests/ecore_con/server.pem \
|
|
|
|
static_libs/http-parser/AUTHORS \
|
|
|
|
static_libs/http-parser/CONTRIBUTIONS \
|
|
|
|
static_libs/http-parser/README.md \
|
|
|
|
static_libs/http-parser/test.c \
|
|
|
|
static_libs/http-parser/contrib/parsertrace.c \
|
|
|
|
static_libs/http-parser/contrib/url_parser.c
|
2015-04-07 04:17:25 -07:00
|
|
|
|
2015-04-06 06:59:10 -07:00
|
|
|
### Unit tests
|
|
|
|
|
|
|
|
if EFL_ENABLE_TESTS
|
|
|
|
|
|
|
|
check_PROGRAMS += tests/ecore_con/ecore_con_suite
|
|
|
|
TESTS += tests/ecore_con/ecore_con_suite
|
|
|
|
|
|
|
|
tests_ecore_con_ecore_con_suite_SOURCES = \
|
|
|
|
tests/ecore_con/ecore_con_suite.c \
|
|
|
|
tests/ecore_con/ecore_con_test_ecore_con.c \
|
|
|
|
tests/ecore_con/ecore_con_test_ecore_con_url.c \
|
2015-04-15 05:50:03 -07:00
|
|
|
tests/ecore_con/ecore_con_test_ecore_con_eet.c \
|
2015-04-06 06:59:10 -07:00
|
|
|
tests/ecore_con/ecore_con_suite.h
|
|
|
|
|
|
|
|
tests_ecore_con_ecore_con_suite_CPPFLAGS = -I$(top_builddir)/src/lib/efl \
|
|
|
|
-DTESTS_SRC_DIR=\"$(top_srcdir)/src/tests/ecore_con\" \
|
|
|
|
-DTESTS_BUILD_DIR=\"$(top_builddir)/src/tests/ecore_con\" \
|
|
|
|
@CHECK_CFLAGS@ \
|
|
|
|
@ECORE_CFLAGS@ \
|
|
|
|
@ECORE_CON_CFLAGS@
|
|
|
|
|
|
|
|
tests_ecore_con_ecore_con_suite_LDADD = \
|
|
|
|
@CHECK_LIBS@ \
|
|
|
|
@USE_ECORE_LIBS@ \
|
|
|
|
@USE_ECORE_CON_LIBS@
|
|
|
|
|
|
|
|
tests_ecore_con_ecore_con_suite_DEPENDENCIES = \
|
|
|
|
@USE_ECORE_INTERNAL_LIBS@ \
|
|
|
|
@USE_ECORE_CON_INTERNAL_LIBS@
|
|
|
|
|
|
|
|
endif
|
|
|
|
|
2014-10-06 03:32:25 -07:00
|
|
|
if HAVE_ELUA
|
|
|
|
|
|
|
|
ecore_con_eolian_lua = $(ecore_con_eolian_files:%.eo=%.eo.lua)
|
|
|
|
|
|
|
|
generated_ecore_con_lua_all = $(ecore_con_eolian_lua)
|
|
|
|
|
2016-06-21 07:13:17 -07:00
|
|
|
GENERATED_LUA_BINDINGS += $(generated_ecore_con_lua_all)
|
2014-10-06 03:32:25 -07:00
|
|
|
|
|
|
|
installed_ecoreconluadir = $(datadir)/elua/modules/ecore_con
|
|
|
|
nodist_installed_ecoreconlua_DATA = $(generated_ecore_con_lua_all)
|
|
|
|
|
|
|
|
endif
|
2014-09-01 11:08:49 -07:00
|
|
|
|
|
|
|
if HAVE_JS
|
|
|
|
|
|
|
|
generated_ecore_con_js_bindings = $(ecore_con_eolian_files:%.eo=%.eo.js.cc)
|
|
|
|
|
|
|
|
GENERATED_JS_BINDINGS += $(generated_ecore_con_js_bindings)
|
|
|
|
|
|
|
|
endif
|