When checking whether a gateway replied with NAT-PMP unsupported version (RFC 6887 appendix A and RFC 6886 section 3.5), PCPRequestPortMap mistakenly used PCP_RESPONSE_HDR_RESULT_OFS (3) and compared only a single byte against NATPMP_RESULT_UNSUPP_VERSION.
NAT-PMP result codes are 16-bit big-endian values starting at offset 2 (NATPMP_RESPONSE_HDR_RESULT_OFS). A 16-bit result code with low byte 1 and a non-zero high byte (such as 0x0101) would previously be incorrectly treated as UNSUPP_VERSION.
This PR fixes the check to use ReadBE16(response.data() + NATPMP_RESPONSE_HDR_RESULT_OFS) matching the rest of pcp.cpp (lines 348 and 390), and uses NATPMP_HDR_VERSION_OFS for the version field offset. A unit test is added to pcp_tests.cpp.