Skip to content

Add HTTP wake support as alternative to Wake-on-LAN#1770

Open
stuckj wants to merge 12 commits into
moonlight-stream:masterfrom
stuckj:master
Open

Add HTTP wake support as alternative to Wake-on-LAN#1770
stuckj wants to merge 12 commits into
moonlight-stream:masterfrom
stuckj:master

Conversation

@stuckj

@stuckj stuckj commented Dec 24, 2025

Copy link
Copy Markdown
  • Add HTTP wake support as alternative to Wake-on-LAN

This adds HTTP-based wake functionality for waking PCs over VPN networks
(like Tailscale) where Layer-2 WOL magic packets cannot traverse.

Features:

  • Per-host configuration via new "Configure Wake" context menu option
  • Choice between standard WOL or HTTP wake method
  • Simple HTTP GET request to user-configured URL
  • 10-second timeout with proper error handling

The HTTP wake method is useful with services like tailscale-wakeonlan
or UpSnap that provide HTTP endpoints for triggering WOL packets on
the local network.

Addresses: #1251
Addresses: #1672

* Add HTTP wake support as alternative to Wake-on-LAN

This adds HTTP-based wake functionality for waking PCs over VPN networks
(like Tailscale) where Layer-2 WOL magic packets cannot traverse.

Features:
- Per-host configuration via new "Configure Wake" context menu option
- Choice between standard WOL or HTTP wake method
- Simple HTTP GET request to user-configured URL
- 10-second timeout with proper error handling

The HTTP wake method is useful with services like tailscale-wakeonlan
or UpSnap that provide HTTP endpoints for triggering WOL packets on
the local network.

Addresses: moonlight-stream#1251
Addresses: moonlight-stream#1672

* Add URL validation to Configure Wake dialog

* Remove outdated comment about URL placeholders

* Revert translation file changes (leave for maintainers to run lupdate)

* Address Copilot review feedback for HTTP wake feature

   - Add host validation to isValidWakeUrl() to reject URLs without host
   - Fix timeout handling by using timedOut flag and aborting reply directly
   - Use deleteLater() for QNetworkReply cleanup per Qt best practices
   - Add processEvents() to ensure reply deletion before NAM destruction
   - Set initial OK button state in onOpened and guard onUrlValidChanged
   - Move ButtonGroup declaration before RadioButtons that reference it

* More code review fixes.

* More code review fixes.

* More code review fixes.
@psyhomb

psyhomb commented Jan 5, 2026

Copy link
Copy Markdown

I think this would be a fantastic feature to combine with this project.

@stuckj

stuckj commented Jan 16, 2026

Copy link
Copy Markdown
Author

@cgutman, I don't know how you usually take contributions so just tagging in case you prefer to get a heads up about something being ready. Sorry to bug you if you'd prefer to get to PR contributions on your own time.

@stuckj

stuckj commented Feb 7, 2026

Copy link
Copy Markdown
Author

Any chance you can take a look at this @cgutman?

@cgutman cgutman added this to the v7.0 milestone Feb 8, 2026
mwd102 pushed a commit to mwd102/moonlight-qt that referenced this pull request Jun 20, 2026
mwd102 pushed a commit to mwd102/moonlight-qt that referenced this pull request Jun 20, 2026
…-stream#1194)

PcView.qml referenced qrc:/res/baseline-help_outline-24px.svg, which moonlight-stream#1194 removed
from resources.qrc when swapping Material Symbols for Material Icons. The icon swap
was missed on this line because PcView.qml was a merge-conflict file (moonlight-stream#1770 + moonlight-stream#1194).
Point it at the new help icon (help_FILL0_wght700_GRAD200_opsz48.svg), as done for
the same icon in NavigableMessageDialog.qml. Caught at runtime via 'QML QQuickImage:
Cannot open' on the PC details dialog.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

Claude-Session: https://claude.ai/code/session_019yMsXBvq2YjymGuAhExQTG
# Conflicts:
#	app/backend/computerseeker.cpp
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.

3 participants