Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add support for PXO's NAT hole punch #570

Merged
merged 1 commit into from
Sep 9, 2024

Conversation

notimaginative
Copy link
Contributor

Pull Request Type

  • GitHub Workflow changes
  • Documentation or Wiki changes
  • Build and Dependency changes
  • Runtime changes
    • Render changes
    • Audio changes
    • Input changes
    • Network changes
    • Other changes

Description

Adds support for PXO's NAT hole punch feature allowing game servers to be used on PXO without having to set up port mapping. Also works with some types of CG-NAT. The PXO tracker does the vast majority of the work needed for this feature, so client changes are minimal.

Related Issues

Screenshots (if applicable)

Checklist

  • I have tested my changes locally and verified that they work as intended.
  • I have documented any new or modified functionality.
  • I have reviewed the changes to ensure they do not introduce any unnecessary complexity or duplicate code.
  • I understand that by submitting this pull request, I am agreeing to license my contributions under the project's license.

Additional Comments

This feature has full IPv6 support, however since Descent3 does not yet support IPv6 those bits of the code have either been removed of commented out with an appropriate note. Adding this ability back once IPv6 is supported should be trivial.

A brief description of how this feature works was prepared for those who do FreeSpace multiplayer support so that they could better help anyone experiencing trouble:
PXO Nat Hole Punch.pdf

Copy link
Member

@Lgt2x Lgt2x left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice, I had no idea this hole punch technique was a thing :) Thanks for pointing the doc. I also recommend reading the Wikipedia page about it for anyone interested, especially the flow chart!

@Lgt2x Lgt2x merged commit 76ddbef into DescentDevelopers:main Sep 9, 2024
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants