On 04/12/2024 23:52, Antonio Quartulli wrote:
Paolo,
On 04/12/2024 12:15, Antonio Quartulli wrote: [...]
+ mutex_lock(&tcp6_prot_mutex); + if (!ovpn_tcp6_prot.recvmsg) + ovpn_tcp_build_protos(&ovpn_tcp6_prot, &ovpn_tcp6_ops, + sock->sk->sk_prot, + sock->sk->sk_socket->ops); + mutex_unlock(&tcp6_prot_mutex);
This looks like an hack to avoid a build dependency on IPV6, I think the explicit
I happily copied this approach from espintcp.c:espintcp_init_sk() :-D
#if IS_ENABLED(CONFIG_IPV6)
at init time should be preferable
To get this done at init time I need inet6_stream_ops to be accessible, but it seems there is no EXPORT_SYMBOL() for this object.
However, I see that mptcp/protocol.c is happily accessing it. Any clue how this is possible?
I answer myself: mptcp is not tristate and it can only be compiled as built-in.
If I compile ovpn as built-in I also get everything built fine.
Paolo, do you have any recommendation? Should I patch net/ipv6/af_inet6.c and add the missing EXPORT_SYMBOL()?
Regards,