@@ -2,7 +2,9 @@ package kasa
2
2
3
3
import (
4
4
"encoding/json"
5
+ "errors"
5
6
"net"
7
+ "os"
6
8
"strings"
7
9
"time"
8
10
)
@@ -41,6 +43,9 @@ func BroadcastDiscovery(timeout, probes int) (map[string]*Sysinfo, error) {
41
43
// klogger.Printf("probing %d times in %d seconds (rate: %d)\n", probes, timeout, timeout / (probes + 1) )
42
44
for {
43
45
n , addr , err := conn .ReadFromUDP (buffer )
46
+ if errors .Is (err , os .ErrDeadlineExceeded ) {
47
+ break
48
+ }
44
49
if err != nil {
45
50
klogger .Println (err .Error ())
46
51
break
@@ -90,6 +95,9 @@ func BroadcastDimmerParameters(timeout, probes int) (map[string]*DimmerParameter
90
95
// klogger.Printf("probing %d times in %d seconds (rate: %d)\n", probes, timeout, timeout / (probes + 1) )
91
96
for {
92
97
n , addr , err := conn .ReadFromUDP (buffer )
98
+ if errors .Is (err , os .ErrDeadlineExceeded ) {
99
+ break
100
+ }
93
101
if err != nil {
94
102
klogger .Println (err .Error ())
95
103
break
@@ -142,6 +150,9 @@ func BroadcastWifiParameters(timeout, probes int) (map[string]*StaInfo, error) {
142
150
buffer := make ([]byte , bufsize )
143
151
for {
144
152
n , addr , err := conn .ReadFromUDP (buffer )
153
+ if errors .Is (err , os .ErrDeadlineExceeded ) {
154
+ break
155
+ }
145
156
if err != nil {
146
157
klogger .Println (err .Error ())
147
158
break
@@ -196,6 +207,9 @@ func BroadcastEmeter(timeout, probes int) (map[string]KasaDevice, error) {
196
207
buffer := make ([]byte , bufsize )
197
208
for {
198
209
n , addr , err := conn .ReadFromUDP (buffer )
210
+ if errors .Is (err , os .ErrDeadlineExceeded ) {
211
+ break
212
+ }
199
213
if err != nil {
200
214
klogger .Println (err .Error ())
201
215
break
0 commit comments