diff --git a/src/common/socket_types.h b/src/common/socket_types.h index 9f74f2da8d..5b1e4d7b1d 100644 --- a/src/common/socket_types.h +++ b/src/common/socket_types.h @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project +// SPDX-License-Identifier: GPL-3.0-or-later + // SPDX-FileCopyrightText: Copyright 2022 yuzu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later diff --git a/src/core/internal_network/network.cpp b/src/core/internal_network/network.cpp index 73030c2809..a5cace57eb 100644 --- a/src/core/internal_network/network.cpp +++ b/src/core/internal_network/network.cpp @@ -414,6 +414,10 @@ int TranslateTypeToNative(Type type) { } } +// Some of those protocols may not be supported on some platforms +// It doesn't really matter, except that some homebrew may not work correctly +// Official software uses TCP & UDP mainly, SCTP is used by some homebrew as well +#ifdef __FreeBSD__ #define NETWORK_PROTOCOL_TRANSLATE_LIST \ NETWORK_PROTOCOL_TRANSLATE_ELEM(IP) \ NETWORK_PROTOCOL_TRANSLATE_ELEM(ICMP) \ @@ -527,6 +531,73 @@ int TranslateTypeToNative(Type type) { NETWORK_PROTOCOL_TRANSLATE_ELEM(PGM) \ NETWORK_PROTOCOL_TRANSLATE_ELEM(MPLS) \ NETWORK_PROTOCOL_TRANSLATE_ELEM(PFSYNC) +#elif defined(__linux__) +// Other platforms get fucked +#define NETWORK_PROTOCOL_TRANSLATE_LIST \ + NETWORK_PROTOCOL_TRANSLATE_ELEM(IP) \ + NETWORK_PROTOCOL_TRANSLATE_ELEM(HOPOPTS) \ + NETWORK_PROTOCOL_TRANSLATE_ELEM(ICMP) \ + NETWORK_PROTOCOL_TRANSLATE_ELEM(IGMP) \ + NETWORK_PROTOCOL_TRANSLATE_ELEM(IPIP) \ + NETWORK_PROTOCOL_TRANSLATE_ELEM(TCP) \ + NETWORK_PROTOCOL_TRANSLATE_ELEM(EGP) \ + NETWORK_PROTOCOL_TRANSLATE_ELEM(PUP) \ + NETWORK_PROTOCOL_TRANSLATE_ELEM(UDP) \ + NETWORK_PROTOCOL_TRANSLATE_ELEM(IDP) \ + NETWORK_PROTOCOL_TRANSLATE_ELEM(TP) \ + NETWORK_PROTOCOL_TRANSLATE_ELEM(DCCP) \ + NETWORK_PROTOCOL_TRANSLATE_ELEM(IPV6) \ + NETWORK_PROTOCOL_TRANSLATE_ELEM(ROUTING) \ + NETWORK_PROTOCOL_TRANSLATE_ELEM(FRAGMENT) \ + NETWORK_PROTOCOL_TRANSLATE_ELEM(RSVP) \ + NETWORK_PROTOCOL_TRANSLATE_ELEM(GRE) \ + NETWORK_PROTOCOL_TRANSLATE_ELEM(ESP) \ + NETWORK_PROTOCOL_TRANSLATE_ELEM(AH) \ + NETWORK_PROTOCOL_TRANSLATE_ELEM(ICMPV6) \ + NETWORK_PROTOCOL_TRANSLATE_ELEM(NONE) \ + NETWORK_PROTOCOL_TRANSLATE_ELEM(DSTOPTS) \ + NETWORK_PROTOCOL_TRANSLATE_ELEM(MTP) \ + NETWORK_PROTOCOL_TRANSLATE_ELEM(ENCAP) \ + NETWORK_PROTOCOL_TRANSLATE_ELEM(PIM) \ + NETWORK_PROTOCOL_TRANSLATE_ELEM(COMP) \ + NETWORK_PROTOCOL_TRANSLATE_ELEM(SCTP) \ + NETWORK_PROTOCOL_TRANSLATE_ELEM(UDPLITE) +#elif defined(_WIN32) +#define NETWORK_PROTOCOL_TRANSLATE_LIST \ + NETWORK_PROTOCOL_TRANSLATE_ELEM(HOPOPTS) \ + NETWORK_PROTOCOL_TRANSLATE_ELEM(ICMP) \ + NETWORK_PROTOCOL_TRANSLATE_ELEM(IGMP) \ + NETWORK_PROTOCOL_TRANSLATE_ELEM(GGP) \ + NETWORK_PROTOCOL_TRANSLATE_ELEM(IPV4) \ + NETWORK_PROTOCOL_TRANSLATE_ELEM(ST) \ + NETWORK_PROTOCOL_TRANSLATE_ELEM(TCP) \ + NETWORK_PROTOCOL_TRANSLATE_ELEM(CBT) \ + NETWORK_PROTOCOL_TRANSLATE_ELEM(EGP) \ + NETWORK_PROTOCOL_TRANSLATE_ELEM(IGP) \ + NETWORK_PROTOCOL_TRANSLATE_ELEM(PUP) \ + NETWORK_PROTOCOL_TRANSLATE_ELEM(UDP) \ + NETWORK_PROTOCOL_TRANSLATE_ELEM(IDP) \ + NETWORK_PROTOCOL_TRANSLATE_ELEM(RDP) \ + NETWORK_PROTOCOL_TRANSLATE_ELEM(IPV6) \ + NETWORK_PROTOCOL_TRANSLATE_ELEM(ROUTING) \ + NETWORK_PROTOCOL_TRANSLATE_ELEM(FRAGMENT) \ + NETWORK_PROTOCOL_TRANSLATE_ELEM(ESP) \ + NETWORK_PROTOCOL_TRANSLATE_ELEM(AH) \ + NETWORK_PROTOCOL_TRANSLATE_ELEM(ICMPV6) \ + NETWORK_PROTOCOL_TRANSLATE_ELEM(NONE) \ + NETWORK_PROTOCOL_TRANSLATE_ELEM(DSTOPTS) \ + NETWORK_PROTOCOL_TRANSLATE_ELEM(ND) \ + NETWORK_PROTOCOL_TRANSLATE_ELEM(ICLFXBM) \ + NETWORK_PROTOCOL_TRANSLATE_ELEM(PIM) \ + NETWORK_PROTOCOL_TRANSLATE_ELEM(PGM) \ + NETWORK_PROTOCOL_TRANSLATE_ELEM(L2TP) \ + NETWORK_PROTOCOL_TRANSLATE_ELEM(SCTP) +#else +#define NETWORK_PROTOCOL_TRANSLATE_LIST \ + NETWORK_PROTOCOL_TRANSLATE_ELEM(TCP) \ + NETWORK_PROTOCOL_TRANSLATE_ELEM(UDP) \ + NETWORK_PROTOCOL_TRANSLATE_ELEM(SCTP) +#endif Protocol TranslateProtocolFromNative(int protocol) { switch (protocol) {