> net: Add optional length checking to CService::SetSockAddr
>
> In almost all cases (the only exception is `getifaddrs`), we know the
> size of the data passed into SetSockAddr, so we can check this to be
> what is expected.
> util: Add mockable steady_clock
>
> This adds a NodeSteadyClock, which is a steady_clock that can be mocked
> with millisecond precision.
> net: Use mockable steady clock in PCP implementation
>
> This will be needed for the test harness.
> test: Add tests for PCP and NATPMP implementations
>
> Add a mock for a simple scriptable UDP server, and use this to test
> various code paths (including successful mappings, timeouts and errors)
> in the PCP and NATPMP implementations.
> qa: cover PROTOCOL_ERROR variant in PCP unit tests
This is a backport of [[https://github.com/bitcoin/bitcoin/pull/31022 | core#31022]]
Depends on D19760