[roll] Roll fuchsia [ffx] Use scope ID strings for ssh.

Scope ID here refers to a link-local IPv6 address scope ID.

Instead of running ssh commands with scope ID's as integers, use
verified scope ID strings.

This adds a `ScopedSocketAddr` struct to be used in ssh and related
commands. This structure is intended to format a stable scope ID in the
form of a string. It also, when constructed, will verify the
scope ID of the address, returning an error if it cannot be found.

The approach taken here is to prevent having to rewrite the majority
of ffx daemon related code. It is not necessarily the most complete.
Inside the daemon is several layers (in several directions) of
address structs: TargetAddrInfo, TargetIp, TargetIpPort, TargetInfo,
TargetAddr, etc. Some of these are directly useful as they abstract
things like vsock connections, but most have dubious usefulness,
especially with the advent of moving more functionality away from the
daemon. Ideally this `ScopedSocketAddr` would be pushed closer and
closer to the first invocation of the user, therefore preventing invalid
scope ID's from making it to the `ssh` command invocation.

Original-Bug: 411230336

Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/1260729
Original-Revision: d21abea81e7eb12008b45e4a29291ca2a2d6bb02
GitOrigin-RevId: 65ed52ed1621480240681b8b06f2b946357f9c3e
Change-Id: Iff9c7bc00118a5f8a4f95d868cad5044dc3ead99
1 file changed
tree: 8d8371fe8e2505a75f15d68b4eb79a0e7e8cc5db
  1. ctf/
  2. git-hooks/
  3. infra/
  4. third_party/
  5. cts
  6. firmware
  7. flower
  8. jiri.lock
  9. MILESTONE
  10. minimal
  11. prebuilts
  12. README.md
  13. stem
  14. test_durations
  15. toolchain
README.md

Integration

This repository contains Fuchsia's Global Integration manifest files.

Making changes

All changes should be made to the internal version of this repository. Our infrastructure automatically updates this version when the internal one changes.

Currently all changes must be made by a Google employee. Non-Google employees wishing to make a change can ask for assistance in one of the communication channels documented at get involved.

Obtaining the source

First install Jiri.

Next run:

$ jiri init
$ jiri import minimal https://fuchsia.googlesource.com/integration
$ jiri update

Third party

Third party projects should have their own subdirectory in ./third_party.