@@ -177,21 +177,21 @@ func identify(pm *packagemanager.PackageManager, port *discovery.Port) ([]*rpc.B
177
177
// List returns a list of boards found by the loaded discoveries.
178
178
// In case of errors partial results from discoveries that didn't fail
179
179
// are returned.
180
- func List (req * rpc.BoardListRequest ) (r []* rpc.DetectedPort , e error ) {
180
+ func List (req * rpc.BoardListRequest ) (r []* rpc.DetectedPort , discoveryStartErrors [] error , e error ) {
181
181
pm := commands .GetPackageManager (req .GetInstance ().Id )
182
182
if pm == nil {
183
- return nil , & arduino.InvalidInstanceError {}
183
+ return nil , nil , & arduino.InvalidInstanceError {}
184
184
}
185
185
186
186
dm := pm .DiscoveryManager ()
187
- dm .Start ()
187
+ discoveryStartErrors = dm .Start ()
188
188
time .Sleep (time .Duration (req .GetTimeout ()) * time .Millisecond )
189
189
190
190
retVal := []* rpc.DetectedPort {}
191
191
for _ , port := range dm .List () {
192
192
boards , err := identify (pm , port )
193
193
if err != nil {
194
- return nil , err
194
+ return nil , discoveryStartErrors , err
195
195
}
196
196
197
197
// boards slice can be empty at this point if neither the cores nor the
@@ -202,7 +202,7 @@ func List(req *rpc.BoardListRequest) (r []*rpc.DetectedPort, e error) {
202
202
}
203
203
retVal = append (retVal , b )
204
204
}
205
- return retVal , nil
205
+ return retVal , discoveryStartErrors , nil
206
206
}
207
207
208
208
// Watch returns a channel that receives boards connection and disconnection events.
0 commit comments