Merge pull request #4053 from nikowolf123/fix/libkernel-close-guest-sockets
fix(libkernel): close guest sockets in sceKernelClose
This commit is contained in:
commit
ed14cb4e0a
|
|
@ -212,6 +212,7 @@ int OpenInDirectory_nid_no_patch(int directory, const char* path, int flags, std
|
|||
}
|
||||
|
||||
int APS5_VABI sceKernelClose(int d) {
|
||||
if (d >= GuestSockets::FirstDescriptor) return GuestSockets::Close(d) == 0 ? 0 : SceKernelError(*__error_nid_postfix());
|
||||
File::ForgetRandomDevice(d);
|
||||
File::ForgetDescriptor(d);
|
||||
#ifdef _WIN32
|
||||
|
|
|
|||
|
|
@ -30,6 +30,7 @@ int APS5_VABI accept_nid_postfix(int, void*, std::uint32_t*);
|
|||
int APS5_VABI fcntl_nid_postfix(int, int, ...);
|
||||
int APS5_VABI poll_nid_postfix(PollDescriptor*, std::uint32_t, int);
|
||||
int APS5_VABI close_nid_postfix(int);
|
||||
int APS5_VABI sceKernelClose(int);
|
||||
std::int64_t APS5_VABI read_nid_postfix(int, void*, std::uint64_t);
|
||||
std::int64_t APS5_VABI write_nid_postfix(int, const char*, std::int64_t);
|
||||
std::int64_t APS5_VABI _read_nid_postfix(int, void*, std::size_t);
|
||||
|
|
@ -167,6 +168,8 @@ int main() {
|
|||
Require(pwrite_nid_disambig1_nid_postfix(server, request, 1, 0) == -1 && *__error_nid_postfix() == 9);
|
||||
Require(preadv_nid_postfix(server, positionedIov, 1, 0) == -1 && *__error_nid_postfix() == 9);
|
||||
Require(pwritev_nid_postfix(server, positionedIov, 1, 0) == -1 && *__error_nid_postfix() == 9);
|
||||
Require(close_nid_postfix(listener) == 0);
|
||||
Require(sceKernelClose(listener) == 0);
|
||||
Require(sceKernelClose(listener) == KernelBadDescriptor);
|
||||
Require(close_nid_postfix(listener) == -1 && *__error_nid_postfix() == 9);
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue