[PR #513] Dev shared ip sessions #502

Open
opened 2026-10-15 13:01:04 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/games-on-whales/wolf/pull/513
Author: @Greaper88
Created: 9/26/2026
Status: 🔄 Open

Base: beta ← Head: dev-shared-ip-sessions


📝 Commits (4)

  • 72ca30d fix: isolate streaming sessions sharing a client IP
  • 8448999 docs: explain shared-IP handshake limitation and workaround
  • 70ed710 docs: describe requirements for complete shared-IP support
  • f52027a Merge branch 'games-on-whales:stable' into dev-shared-ip-sessions

📊 Changes

6 files changed (+164 additions, -20 deletions)

View changed files

📝 docs/modules/user/pages/troubleshooting.adoc (+36 -0)
📝 src/moonlight-server/control/control.cpp (+13 -3)
📝 src/moonlight-server/control/control.hpp (+5 -0)
📝 src/moonlight-server/rtsp/net.hpp (+27 -15)
📝 tests/testControl.cpp (+45 -1)
📝 tests/testRTSP.cpp (+38 -1)

📄 Description

Implements a partial fix for incorrect session selection when multiple Moonlight clients share an IP address, as reported in https://github.com/games-on-whales/wolf/issues/265

  • Checks all RTSP session identifiers before falling back to IP matching.
  • Rejects ambiguous IP matches in RTSP and ENet instead of selecting another client’s session.
  • Keeps RTSP response data alive until asynchronous transmission completes.

Includes regression tests and documentation. Tested with two Android clients sharing an IP, including reconnecting while the other remained connected.

Known limitation: Moonlight can discard the RTSP identifier at low bitrates. Those connections are safely rejected when IP matching is ambiguous; the documented workaround is a higher bitrate with stereo audio.

AI Disclosure: This code was modified with assistance from OpenAI Codex and passed preliminary testing in my own setup. Broader testing is still needed.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/games-on-whales/wolf/pull/513 **Author:** [@Greaper88](https://github.com/Greaper88) **Created:** 9/26/2026 **Status:** 🔄 Open **Base:** `beta` ← **Head:** `dev-shared-ip-sessions` --- ### 📝 Commits (4) - [`72ca30d`](https://github.com/games-on-whales/wolf/commit/72ca30d1439e380c959ce2f8637b7abed1a3f61c) fix: isolate streaming sessions sharing a client IP - [`8448999`](https://github.com/games-on-whales/wolf/commit/8448999f0b10bd2fca33852d29d3ec96aeb2e6d4) docs: explain shared-IP handshake limitation and workaround - [`70ed710`](https://github.com/games-on-whales/wolf/commit/70ed710aec9e138339a04f880fdcd6bce6216cf0) docs: describe requirements for complete shared-IP support - [`f52027a`](https://github.com/games-on-whales/wolf/commit/f52027aee4c9ac681ba8994fed1c73b4a96484ab) Merge branch 'games-on-whales:stable' into dev-shared-ip-sessions ### 📊 Changes **6 files changed** (+164 additions, -20 deletions) <details> <summary>View changed files</summary> 📝 `docs/modules/user/pages/troubleshooting.adoc` (+36 -0) 📝 `src/moonlight-server/control/control.cpp` (+13 -3) 📝 `src/moonlight-server/control/control.hpp` (+5 -0) 📝 `src/moonlight-server/rtsp/net.hpp` (+27 -15) 📝 `tests/testControl.cpp` (+45 -1) 📝 `tests/testRTSP.cpp` (+38 -1) </details> ### 📄 Description Implements a partial fix for incorrect session selection when multiple Moonlight clients share an IP address, as reported in https://github.com/games-on-whales/wolf/issues/265 - Checks all RTSP session identifiers before falling back to IP matching. - Rejects ambiguous IP matches in RTSP and ENet instead of selecting another client’s session. - Keeps RTSP response data alive until asynchronous transmission completes. Includes regression tests and documentation. Tested with two Android clients sharing an IP, including reconnecting while the other remained connected. Known limitation: Moonlight can discard the RTSP identifier at low bitrates. Those connections are safely rejected when IP matching is ambiguous; the documented workaround is a higher bitrate with stereo audio. AI Disclosure: This code was modified with assistance from OpenAI Codex and passed preliminary testing in my own setup. Broader testing is still needed. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
games-on-whales/wolf#502
No description provided.