[netstack] Add BaseSocket.Shutdown fidl method

The deprecated DatagramSocket.Shutdown fidl method is not used anywhere
anymore. This commit removes it. But until the next ABI transition, we
still need to keep the now deprecated BaseSocket.Shutdown2 method.

Remove the legacy test target where shutdown(2) implementation called
zx_socket_shutdown on the zircon socket, and instead add a new legacy
test target in which fdio uses the now deprecated Shutdown2 fidl method.

Now that no clients shutdown the zircon sockets themselves, the loopPoll
can be removed from netstack, because netstack calls shutdown on the
endpoint directly when the BaseSocket.Shutdown fidl method is called.

Note that this commit also fixes a dormant bug introduced in
commit a31257b11c3ff92523d776498541165ddc3d0160, where the
implementation of the fidl method Shutdown for StreamSocket would never
call Shutdown on the endpoint. It revealed itself when loopPoll was
removed.

Bug: 78129
Change-Id: I0c7193bcb0905121a08f03898c1c29f469c74f71
Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/558885
Reviewed-by: Tamir Duberstein <tamird@google.com>
Reviewed-by: Roland McGrath <mcgrathr@google.com>
Commit-Queue: Arthur Sfez <asfez@google.com>
API-Review: Bruno Dal Bo <brunodalbo@google.com>
8 files changed
tree: 9d9a1186516bc9e0aa269632db68768e0ed2aabb
  1. boards/
  2. build/
  3. buildtools/
  4. bundles/
  5. docs/
  6. examples/
  7. garnet/
  8. products/
  9. scripts/
  10. sdk/
  11. src/
  12. third_party/
  13. tools/
  14. zircon/
  15. .clang-format
  16. .clang-tidy
  17. .git-blame-ignore-revs
  18. .gitattributes
  19. .gitignore
  20. .gn
  21. .style.yapf
  22. AUTHORS
  23. BUILD.gn
  24. CODE_OF_CONDUCT.md
  25. CONTRIBUTING.md
  26. LICENSE
  27. OWNERS
  28. PATENTS
  29. README.md
  30. rustfmt.toml
README.md

Fuchsia

Pink + Purple == Fuchsia (a new operating system)

What is Fuchsia?

Fuchsia is a modular, capability-based operating system. Fuchsia runs on modern 64-bit Intel and ARM processors.

Fuchsia is an open source project with a code of conduct that we expect everyone who interacts with the project to respect.

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.