I’ve been using FreeBSD 11 with the linux64 support, and have been using the 
not-included centos6.7-64bit ports patch to run some programs which depend on a 
more modern linux installation.  Specifically, I’ve been using them for 
Steamcmd, Ark:Survival Evolved, and Factorio (headless).  The latest of which 
started this journey.

It seems that a piece of code related to setting a particular socket option for 
IPv6 sockets fails under the linux compat layer:

int ipv6only = 1;
setsockopt(this->fd6, IPPROTO_IPV6, IPV6_V6ONLY, &ipv6only, sizeof(ipv6only));

Both Steamcmd and Factorio would spit out error messages like this (this one 
being from Factorio):
1.132 Error MultiplayerManager.cpp:108: MultiplayerManager failed: "Setsockopt 
failed: Protocol not available”

One of the devs for Factorio looked through a more complete trace, and their 
code, and realized that the above line of code was singled out as causing the 
error.


In trying to understand the issue, I tried their advice - disable IPv6 (which 
involved a buildworld/buildkernel) and tried the process again.  In doing so, 
their code completely skips trying to setup IPv6 at all, so the program runs 
fine.  Steamcmd also stopped producing the message, so I assume its issue is 
similar, or at least also related to  IPv6 support.  I think steamcmd is 
actually 32bit, so it should be able to verify that same message on a 10.2 
system.

Ultimately, I’m wondering if there’s a known issue with IPv6 support of linux 
apps running using the linux compat module.

Thanks,
-Joe

_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-emulation
To unsubscribe, send any mail to "[email protected]"

Reply via email to