For reference, according to the iwyu run by CI, as part of the tidy task:
[13:49:05.974] /ci_container_base/src/common/pcp.cpp should add these lines:
[13:49:05.974] #include <algorithm> // for __equal_fn, equal
[13:49:05.974] #include <compare> // for operator<, strong_ordering
[13:49:05.974] #include <cstring> // for size_t, memcpy
[13:49:05.974] #include <functional> // for function
[13:49:05.974] #include <map> // for map, operator==, _Rb_tree_const_iterator
[13:49:05.974] #include <memory> // for unique_ptr
[13:49:05.974] #include <optional> // for optional, nullopt, nullopt_t
[13:49:05.974] #include <span> // for span
[13:49:05.974] #include <utility> // for pair
[13:49:05.974] #include <vector> // for vector
[13:49:05.974] #include "compat/compat.h" // for sockaddr_storage, WSAGetLastError, in_addr, socklen_t, in6_addr, sockaddr_in, AF_INET, IPPROTO_UDP, SOCK_DGRAM, MSG_D...
[13:49:05.974] #include "tinyformat.h" // for format, strprintf
[13:49:05.974] #include "util/string.h" // for string, basic_string, HasPrefix
[13:49:05.974]
[13:49:05.974] /ci_container_base/src/common/pcp.cpp should remove these lines:
[13:49:05.974] - #include <common/netif.h> // lines 7-7
[13:49:05.974] - #include <random.h> // lines 12-12
[13:49:05.974] - #include <util/readwritefile.h> // lines 15-15
(Just sharing, no need to pick this up here. A future change that enforces iwyu on the codebase will fix it either way)