Return error on inner decode failure instead of hanging, split flash-status output
This commit is contained in:
@@ -224,15 +224,10 @@ func cmdFlashStatus(args []string) error {
|
|||||||
slog.Error("flash-status error", "via", t.name, "err", err)
|
slog.Error("flash-status error", "via", t.name, "err", err)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
slog.Info("flash-status",
|
log := slog.With("via", t.name)
|
||||||
"via", t.name,
|
log.Info("flash-status", "boot_partition", status.BootPartition)
|
||||||
"boot_partition", status.BootPartition,
|
log.Info("slot-a", "valid", status.SlotA.Valid, "version", status.SlotA.Version, "hash_ok", status.SlotA.HashOK)
|
||||||
"slot_a_valid", status.SlotA.Valid,
|
log.Info("slot-b", "valid", status.SlotB.Valid, "version", status.SlotB.Version, "hash_ok", status.SlotB.HashOK)
|
||||||
"slot_a_version", status.SlotA.Version,
|
|
||||||
"slot_a_hash_ok", status.SlotA.HashOK,
|
|
||||||
"slot_b_valid", status.SlotB.Valid,
|
|
||||||
"slot_b_version", status.SlotB.Version,
|
|
||||||
"slot_b_hash_ok", status.SlotB.HashOK)
|
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -75,7 +75,7 @@ func roundTrip[T any](c *Client, req any) ([]Response[T], error) {
|
|||||||
}
|
}
|
||||||
var inner any
|
var inner any
|
||||||
if err := msgpack.Unmarshal(env.Payload, &inner); err != nil {
|
if err := msgpack.Unmarshal(env.Payload, &inner); err != nil {
|
||||||
continue
|
return nil, fmt.Errorf("decode response: %w", err)
|
||||||
}
|
}
|
||||||
if devErr, ok := inner.(*DeviceError); ok {
|
if devErr, ok := inner.(*DeviceError); ok {
|
||||||
return nil, devErr
|
return nil, devErr
|
||||||
|
|||||||
Reference in New Issue
Block a user