@@ -6962,7 +6962,7 @@ error_code sceNpSignalingGetConnectionFromPeerAddress(u32 ctx_id, np_in_addr_t p
69626962 return CELL_OK;
69636963}
69646964
6965- error_code sceNpSignalingGetLocalNetInfo (u32 ctx_id, vm::ptr<SceNpSignalingNetInfo > info)
6965+ error_code sceNpSignalingGetLocalNetInfo (u32 ctx_id, vm::ptr<SceNpSignalingNetInfoDeprecated > info)
69666966{
69676967 sceNp.warning (" sceNpSignalingGetLocalNetInfo(ctx_id=%d, info=*0x%x)" , ctx_id, info);
69686968
@@ -6973,7 +6973,8 @@ error_code sceNpSignalingGetLocalNetInfo(u32 ctx_id, vm::ptr<SceNpSignalingNetIn
69736973 return SCE_NP_SIGNALING_ERROR_NOT_INITIALIZED;
69746974 }
69756975
6976- if (!info || info->size != sizeof (SceNpSignalingNetInfo))
6976+ // Library has backward support for a version of SceNpSignalingNetInfo without npport
6977+ if (!info || (info->size != sizeof (SceNpSignalingNetInfo) && info->size != sizeof (SceNpSignalingNetInfoDeprecated)))
69776978 {
69786979 return SCE_NP_SIGNALING_ERROR_INVALID_ARGUMENT;
69796980 }
@@ -6985,7 +6986,12 @@ error_code sceNpSignalingGetLocalNetInfo(u32 ctx_id, vm::ptr<SceNpSignalingNetIn
69856986 info->nat_status = SCE_NP_SIGNALING_NETINFO_NAT_STATUS_TYPE2;
69866987 info->upnp_status = nph.get_upnp_status ();
69876988 info->npport_status = SCE_NP_SIGNALING_NETINFO_NPPORT_STATUS_OPEN;
6988- info->npport = SCE_NP_PORT;
6989+
6990+ if (info->size == sizeof (SceNpSignalingNetInfo))
6991+ {
6992+ auto new_info = vm::unsafe_ptr_cast<SceNpSignalingNetInfo>(info);
6993+ new_info->npport = SCE_NP_PORT;
6994+ }
69896995
69906996 return CELL_OK;
69916997}
0 commit comments