[ffx] Move SSH error checks to frontend. Report to user.

This takes ssh errors encountered when attempting to get a remote
control proxy and sends them to the user. Previously these errors would
be logged to the daemon log and then removed, not giving clients the
insight into what may be hanging.

Now, the error is always reported to the user, with reattempts happening
the same as before, but just on the client side. If a deemed-non-fatal
error is encountered, at which point a reconnect attempt will happen,
the error is printed for the user to see.

There are three considered-fatal SSH errors: key verification failure,
permission denied, and invalid arguments. These are all errors that
cannot be fixed no matter how many reattempts occur.

Bug: 357958365
Change-Id: Ie9adf90440a547333802ec704fa6be72501dd2c9
Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/1101154
Reviewed-by: Colin Nelson <colnnelson@google.com>
Commit-Queue: Andrew Davies <awdavies@google.com>
Reviewed-by: Clayton Wilkinson <wilkinsonclay@google.com>
Reviewed-by: Darren Chan <chandarren@google.com>
5 files changed
tree: 6079198c7e0161790e97aaf16ae17f030debb6b3
  1. boards/
  2. build/
  3. bundles/
  4. docs/
  5. examples/
  6. infra/
  7. products/
  8. scripts/
  9. sdk/
  10. src/
  11. third_party/
  12. tools/
  13. zircon/
  14. .clang-format
  15. .clang-tidy
  16. .editorconfig
  17. .git-blame-ignore-revs
  18. .gitattributes
  19. .gitignore
  20. .gitmodules
  21. .gn
  22. .ignore
  23. analysis_options.yaml
  24. AUTHORS
  25. BUILD.gn
  26. CODE_OF_CONDUCT.md
  27. CONTRIBUTING.md
  28. fuchsia.code-workspace
  29. LICENSE
  30. OWNERS
  31. PATENTS
  32. pyproject.toml
  33. pyrightconfig.json
  34. README.md
  35. rustfmt.toml
  36. shac.star
  37. shac.textproto
README.md

Fuchsia

What is Fuchsia?

Fuchsia is an open source, general purpose operating system supporting modern 64-bit Intel and ARM processors.

We expect everyone interacting with our project to respect our code of conduct.

Read more about Fuchsia's principles.

How can I build and run Fuchsia?

See Getting Started.

Where can I learn more about Fuchsia?

See fuchsia.dev.