jayji pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=b52725cef54d6e3238544daa64e99173420cd46b
commit b52725cef54d6e3238544daa64e99173420cd46b Author: Jiwon Kim <jiwon177....@samsung.com> Date: Thu Sep 1 19:08:11 2016 +0200 efl_net: check definition 'SO_REUSEPORT' for port reuse flag Summary: The port reuse feature and 'SO_REUSEPORT' flag are not supported by a few linux In case of linux kernel, it supported from v 3.9 (https://kernelnewbies.org/Linux_3.9) On the lower version of kernel, compile is failed Reviewers: barbieri, jayji Reviewed By: jayji Subscribers: akanad, id213sin, cedric, jpeg Differential Revision: https://phab.enlightenment.org/D4256 --- src/lib/ecore_con/efl_net_server_fd.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/lib/ecore_con/efl_net_server_fd.c b/src/lib/ecore_con/efl_net_server_fd.c index 33448c6..0e33e8e 100644 --- a/src/lib/ecore_con/efl_net_server_fd.c +++ b/src/lib/ecore_con/efl_net_server_fd.c @@ -332,6 +332,7 @@ _efl_net_server_fd_reuse_port_set(Eo *o, Efl_Net_Server_Fd_Data *pd, Eina_Bool r fd = efl_loop_fd_get(o); if (fd < 0) return EINA_TRUE; /* postpone until fd_set() */ +#ifdef SO_REUSEPORT value = reuse_port; if (setsockopt(fd, SOL_SOCKET, SO_REUSEPORT, &value, sizeof(value)) < 0) { @@ -340,8 +341,11 @@ _efl_net_server_fd_reuse_port_set(Eo *o, Efl_Net_Server_Fd_Data *pd, Eina_Bool r pd->reuse_port = old; return EINA_FALSE; } - return EINA_TRUE; +#else + pd->reuse_port = EINA_FALSE; + return EINA_FALSE; +#endif } EOLIAN static Eina_Bool @@ -356,6 +360,7 @@ _efl_net_server_fd_reuse_port_get(Eo *o, Efl_Net_Server_Fd_Data *pd) /* if there is a fd, always query it directly as it may be modified * elsewhere by nasty users. */ +#ifdef SO_REUSEPORT valuelen = sizeof(value); if (getsockopt(fd, SOL_SOCKET, SO_REUSEPORT, &value, &valuelen) < 0) { @@ -366,6 +371,9 @@ _efl_net_server_fd_reuse_port_get(Eo *o, Efl_Net_Server_Fd_Data *pd) pd->reuse_port = !!value; /* sync */ return pd->reuse_port; +#else + return EINA_FALSE; +#endif } EOLIAN static void --