forked from enlightenment/efl
ipv6_only: use system default if unset.
only apply the value if IPv6 && set. If unset (now 0xff), then call the getter so the property is in sync with the kernel default.
This commit is contained in:
parent
681d47a6c1
commit
41231ee41b
|
@ -34,6 +34,13 @@ typedef struct _Efl_Net_Server_Tcp_Data
|
||||||
Eina_Bool ipv6_only;
|
Eina_Bool ipv6_only;
|
||||||
} Efl_Net_Server_Tcp_Data;
|
} Efl_Net_Server_Tcp_Data;
|
||||||
|
|
||||||
|
EOLIAN Efl_Object *
|
||||||
|
_efl_net_server_tcp_efl_object_constructor(Eo *o, Efl_Net_Server_Tcp_Data *pd)
|
||||||
|
{
|
||||||
|
pd->ipv6_only = 0xff;
|
||||||
|
return efl_constructor(efl_super(o, MY_CLASS));
|
||||||
|
}
|
||||||
|
|
||||||
EOLIAN static Eina_Error
|
EOLIAN static Eina_Error
|
||||||
_efl_net_server_tcp_efl_net_server_serve(Eo *o, Efl_Net_Server_Tcp_Data *pd, const char *address)
|
_efl_net_server_tcp_efl_net_server_serve(Eo *o, Efl_Net_Server_Tcp_Data *pd, const char *address)
|
||||||
{
|
{
|
||||||
|
@ -113,7 +120,12 @@ _efl_net_server_tcp_efl_net_server_serve(Eo *o, Efl_Net_Server_Tcp_Data *pd, con
|
||||||
|
|
||||||
/* apply pending value BEFORE bind() */
|
/* apply pending value BEFORE bind() */
|
||||||
if (addr.ss_family == AF_INET6)
|
if (addr.ss_family == AF_INET6)
|
||||||
|
{
|
||||||
|
if (pd->ipv6_only == 0xff)
|
||||||
|
efl_net_server_tcp_ipv6_only_get(o); /* fetch & sync */
|
||||||
|
else
|
||||||
efl_net_server_tcp_ipv6_only_set(o, pd->ipv6_only);
|
efl_net_server_tcp_ipv6_only_set(o, pd->ipv6_only);
|
||||||
|
}
|
||||||
|
|
||||||
r = bind(fd, (struct sockaddr *)&addr, addrlen);
|
r = bind(fd, (struct sockaddr *)&addr, addrlen);
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
|
|
|
@ -34,6 +34,7 @@ class Efl.Net.Server.Tcp (Efl.Net.Server.Fd) {
|
||||||
}
|
}
|
||||||
|
|
||||||
implements {
|
implements {
|
||||||
|
Efl.Object.constructor;
|
||||||
Efl.Net.Server.serve;
|
Efl.Net.Server.serve;
|
||||||
Efl.Net.Server.Fd.client_add;
|
Efl.Net.Server.Fd.client_add;
|
||||||
Efl.Net.Server.Fd.client_reject;
|
Efl.Net.Server.Fd.client_reject;
|
||||||
|
|
Loading…
Reference in New Issue