diff --git a/Core/HLE/AdhocTransportRelay.cpp b/Core/HLE/AdhocTransportRelay.cpp index 2034bd35bd..c6364e15c1 100644 --- a/Core/HLE/AdhocTransportRelay.cpp +++ b/Core/HLE/AdhocTransportRelay.cpp @@ -181,17 +181,18 @@ bool RelayTransport::PdpTakeDatagram(int id, SceNetEtherAddr *mac, uint16_t *por } static int pdp_send_postoffice(int idx, const SceNetEtherAddr *daddr, uint16_t dport, const void *data, int len) { + // Out of the group, it goes into the air and reaches nobody (pspautotests net/adhoc/pair/vanish), + // whether or not the relay session is up. + if (offAdhocNetwork() && !isLocalMac(daddr)) { + return 0; + } + AdhocSocket *internal = adhocSockets[idx]; void *pdp_sock = pdp_postoffice_recover(idx); if (pdp_sock == NULL) { return SOCKET_ERROR; } - // Out of the group, it goes into the air and reaches nobody (pspautotests net/adhoc/pair/vanish). - if (offAdhocNetwork() && !isLocalMac(daddr)) { - return 0; - } - SceNetEtherAddr fixed_daddr = *daddr; fixGameMac(&fixed_daddr);