Hello everyone,
I'm new to FreeSpace Open, but took the time to set up a standalone server on Linux for play with friends and family.
During my testing I noticed that only one person in my household could connect at a time. Looking around the forums I ran across this post
http://www.hard-light.net/forums/index.php?topic=81685.msg1629696#msg1629696 and it said to try forcing the port. Like the OP of that thread, it didn't work for me either.
Digging into the source for 3.7.2 RC4, I managed to track down a couple of places where the net code checks the incoming connections for duplicates and it is only checking against the IP address. The port (forced or otherwise) is ignored and therefore the duplicate player rejection for those passing through NAT to get to game server.
My testing has been limited to accessing an external (to my home network) Linux machine running my modified 3.7.2 RC4 as a standalone server, but I have been able to get two machines to connect and play simultaneously from behind the same router. One machine has to have a forced port set in wxLauncher, the other has been tested both with the default and a different forced port. No opening or forwarding of ports on the firewall was required.
Attached is the diff file from the stock 3.7.2 RC4 source and my modifications. I took the time to look at the SVN source and it appears it'd be equally applicable to that as well if anyone is interested. It's my first go at a patch, but should be created correctly, I believe.
A big thank you to all the people who've made FreeSpace Open possible. I hope this little contribution helps at least a few people out there.
[attachment kidnapped by pirates]