mirror of
https://github.com/seriousm4x/UpSnap.git
synced 2026-04-05 00:44:09 -04:00
send additional 2 magic packets via IP address for routed WOL (#1718)
Signed-off-by: invario <67800603+invario@users.noreply.github.com>
This commit is contained in:
@@ -34,21 +34,21 @@ func SendMagicPacket(device *core.Record) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// send wake via udp port 9
|
// send wake via udp port 9
|
||||||
if err := wakeUDP(broadcastIp, parsedMac, bytePassword); err != nil {
|
if err := wakeUDP(broadcastIp, ip, parsedMac, bytePassword); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func wakeUDP(broadcastIp string, target net.HardwareAddr, password []byte) error {
|
func wakeUDP(broadcastIp string, deviceIp string, target net.HardwareAddr, password []byte) error {
|
||||||
c, err := wol.NewClient()
|
c, err := wol.NewClient()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
defer c.Close()
|
defer c.Close()
|
||||||
|
|
||||||
// send 4 magic packets to different addresses to enhance change of waking up
|
// send 6 magic packets to different addresses to enhance chance of waking up
|
||||||
destinations := []string{
|
destinations := []string{
|
||||||
// default user-calculated broadcast to port 9
|
// default user-calculated broadcast to port 9
|
||||||
fmt.Sprintf("%s:9", broadcastIp),
|
fmt.Sprintf("%s:9", broadcastIp),
|
||||||
@@ -58,6 +58,10 @@ func wakeUDP(broadcastIp string, target net.HardwareAddr, password []byte) error
|
|||||||
"255.255.255.255:9",
|
"255.255.255.255:9",
|
||||||
// broadcast to alternative port 7
|
// broadcast to alternative port 7
|
||||||
"255.255.255.255:7",
|
"255.255.255.255:7",
|
||||||
|
// send direct to device via port 9 (for routed network WOL)
|
||||||
|
fmt.Sprintf("%s:9", deviceIp),
|
||||||
|
// send direct to device via alternative port 7 (for routed network WOL)
|
||||||
|
fmt.Sprintf("%s:7", deviceIp),
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, dest := range destinations {
|
for _, dest := range destinations {
|
||||||
|
|||||||
Reference in New Issue
Block a user