@@ -177,21 +177,21 @@ func identify(pm *packagemanager.PackageManager, port *discovery.Port) ([]*rpc.B
177177// List returns a list of boards found by the loaded discoveries.
178178// In case of errors partial results from discoveries that didn't fail
179179// 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 ) {
181181 pm := commands .GetPackageManager (req .GetInstance ().Id )
182182 if pm == nil {
183- return nil , & arduino.InvalidInstanceError {}
183+ return nil , nil , & arduino.InvalidInstanceError {}
184184 }
185185
186186 dm := pm .DiscoveryManager ()
187- dm .Start ()
187+ discoveryStartErrors = dm .Start ()
188188 time .Sleep (time .Duration (req .GetTimeout ()) * time .Millisecond )
189189
190190 retVal := []* rpc.DetectedPort {}
191191 for _ , port := range dm .List () {
192192 boards , err := identify (pm , port )
193193 if err != nil {
194- return nil , err
194+ return nil , discoveryStartErrors , err
195195 }
196196
197197 // 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) {
202202 }
203203 retVal = append (retVal , b )
204204 }
205- return retVal , nil
205+ return retVal , discoveryStartErrors , nil
206206}
207207
208208// Watch returns a channel that receives boards connection and disconnection events.
0 commit comments