mirror of
https://github.com/RPCS3/rpcs3.git
synced 2024-11-17 08:11:51 +00:00
sys_net: Fix return values being tagged as errors
This commit is contained in:
parent
20801615f3
commit
f8ea50caae
@ -457,7 +457,12 @@ error_code sys_net_bnet_connect(ppu_thread& ppu, s32 s, vm::ptr<sys_net_sockaddr
|
|||||||
|
|
||||||
if (sock.ret)
|
if (sock.ret)
|
||||||
{
|
{
|
||||||
return (result < 0) ? sys_net_error{result} : result;
|
if (result < 0)
|
||||||
|
{
|
||||||
|
return sys_net_error{result};
|
||||||
|
}
|
||||||
|
|
||||||
|
return not_an_error(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!sock.ret)
|
if (!sock.ret)
|
||||||
@ -484,7 +489,12 @@ error_code sys_net_bnet_connect(ppu_thread& ppu, s32 s, vm::ptr<sys_net_sockaddr
|
|||||||
|
|
||||||
if (result)
|
if (result)
|
||||||
{
|
{
|
||||||
return (result < 0) ? sys_net_error{result} : result;
|
if (result < 0)
|
||||||
|
{
|
||||||
|
return sys_net_error{result};
|
||||||
|
}
|
||||||
|
|
||||||
|
return not_an_error(result);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -503,7 +513,7 @@ error_code sys_net_bnet_getpeername(ppu_thread& ppu, s32 s, vm::ptr<sys_net_sock
|
|||||||
return -SYS_NET_EINVAL;
|
return -SYS_NET_EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
const auto sock = idm::check<lv2_socket>(s, [&](lv2_socket& sock) -> sys_net_error
|
const auto sock = idm::check<lv2_socket>(s, [&](lv2_socket& sock) -> s32
|
||||||
{
|
{
|
||||||
auto [res, sn_addr] = sock.getpeername();
|
auto [res, sn_addr] = sock.getpeername();
|
||||||
|
|
||||||
@ -513,7 +523,7 @@ error_code sys_net_bnet_getpeername(ppu_thread& ppu, s32 s, vm::ptr<sys_net_sock
|
|||||||
*addr = sn_addr;
|
*addr = sn_addr;
|
||||||
}
|
}
|
||||||
|
|
||||||
return sys_net_error{res};
|
return res;
|
||||||
});
|
});
|
||||||
|
|
||||||
if (!sock)
|
if (!sock)
|
||||||
@ -521,9 +531,9 @@ error_code sys_net_bnet_getpeername(ppu_thread& ppu, s32 s, vm::ptr<sys_net_sock
|
|||||||
return -SYS_NET_EBADF;
|
return -SYS_NET_EBADF;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sock.ret)
|
if (sock.ret < 0)
|
||||||
{
|
{
|
||||||
return sock.ret;
|
return sys_net_error{sock.ret};
|
||||||
}
|
}
|
||||||
|
|
||||||
return CELL_OK;
|
return CELL_OK;
|
||||||
@ -559,7 +569,7 @@ error_code sys_net_bnet_getsockname(ppu_thread& ppu, s32 s, vm::ptr<sys_net_sock
|
|||||||
return -SYS_NET_EBADF;
|
return -SYS_NET_EBADF;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sock.ret)
|
if (sock.ret < 0)
|
||||||
{
|
{
|
||||||
return sys_net_error{sock.ret};
|
return sys_net_error{sock.ret};
|
||||||
}
|
}
|
||||||
@ -599,7 +609,7 @@ error_code sys_net_bnet_getsockopt(ppu_thread& ppu, s32 s, s32 level, s32 optnam
|
|||||||
return -SYS_NET_EINVAL;
|
return -SYS_NET_EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
const auto sock = idm::check<lv2_socket>(s, [&](lv2_socket& sock) -> sys_net_error
|
const auto sock = idm::check<lv2_socket>(s, [&](lv2_socket& sock) -> s32
|
||||||
{
|
{
|
||||||
if (len < sizeof(s32))
|
if (len < sizeof(s32))
|
||||||
{
|
{
|
||||||
@ -614,7 +624,7 @@ error_code sys_net_bnet_getsockopt(ppu_thread& ppu, s32 s, s32 level, s32 optnam
|
|||||||
*optlen = out_len;
|
*optlen = out_len;
|
||||||
}
|
}
|
||||||
|
|
||||||
return static_cast<sys_net_error>(res);
|
return res;
|
||||||
});
|
});
|
||||||
|
|
||||||
if (!sock)
|
if (!sock)
|
||||||
@ -622,7 +632,12 @@ error_code sys_net_bnet_getsockopt(ppu_thread& ppu, s32 s, s32 level, s32 optnam
|
|||||||
return -SYS_NET_EBADF;
|
return -SYS_NET_EBADF;
|
||||||
}
|
}
|
||||||
|
|
||||||
return sock.ret;
|
if (sock.ret < 0)
|
||||||
|
{
|
||||||
|
return sys_net_error{sock.ret};
|
||||||
|
}
|
||||||
|
|
||||||
|
return CELL_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
error_code sys_net_bnet_listen(ppu_thread& ppu, s32 s, s32 backlog)
|
error_code sys_net_bnet_listen(ppu_thread& ppu, s32 s, s32 backlog)
|
||||||
@ -636,9 +651,9 @@ error_code sys_net_bnet_listen(ppu_thread& ppu, s32 s, s32 backlog)
|
|||||||
return -SYS_NET_EINVAL;
|
return -SYS_NET_EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
const auto sock = idm::check<lv2_socket>(s, [&](lv2_socket& sock) -> sys_net_error
|
const auto sock = idm::check<lv2_socket>(s, [&](lv2_socket& sock) -> s32
|
||||||
{
|
{
|
||||||
return static_cast<sys_net_error>(sock.listen(backlog));
|
return sock.listen(backlog);
|
||||||
});
|
});
|
||||||
|
|
||||||
if (!sock)
|
if (!sock)
|
||||||
@ -646,9 +661,9 @@ error_code sys_net_bnet_listen(ppu_thread& ppu, s32 s, s32 backlog)
|
|||||||
return -SYS_NET_EBADF;
|
return -SYS_NET_EBADF;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sock.ret)
|
if (sock.ret < 0)
|
||||||
{
|
{
|
||||||
return sock.ret;
|
return sys_net_error{sock.ret};
|
||||||
}
|
}
|
||||||
|
|
||||||
return CELL_OK;
|
return CELL_OK;
|
||||||
@ -759,7 +774,7 @@ error_code sys_net_bnet_recvfrom(ppu_thread& ppu, s32 s, vm::ptr<void> buf, u32
|
|||||||
return not_an_error(result);
|
return not_an_error(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (result > 0)
|
if (result >= 0)
|
||||||
{
|
{
|
||||||
if (addr)
|
if (addr)
|
||||||
{
|
{
|
||||||
@ -770,7 +785,7 @@ error_code sys_net_bnet_recvfrom(ppu_thread& ppu, s32 s, vm::ptr<void> buf, u32
|
|||||||
return not_an_error(result);
|
return not_an_error(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
return result;
|
return sys_net_error{result};
|
||||||
}
|
}
|
||||||
|
|
||||||
error_code sys_net_bnet_recvmsg(ppu_thread& ppu, s32 s, vm::ptr<sys_net_msghdr> msg, s32 flags)
|
error_code sys_net_bnet_recvmsg(ppu_thread& ppu, s32 s, vm::ptr<sys_net_msghdr> msg, s32 flags)
|
||||||
@ -870,10 +885,11 @@ error_code sys_net_bnet_sendto(ppu_thread& ppu, s32 s, vm::cptr<void> buf, u32 l
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (result > 0 || result == -SYS_NET_EWOULDBLOCK)
|
if (result >= 0 || result == -SYS_NET_EWOULDBLOCK)
|
||||||
{
|
{
|
||||||
return not_an_error(result);
|
return not_an_error(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
return sys_net_error{result};
|
return sys_net_error{result};
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -930,7 +946,12 @@ error_code sys_net_bnet_setsockopt(ppu_thread& ppu, s32 s, s32 level, s32 optnam
|
|||||||
return -SYS_NET_EBADF;
|
return -SYS_NET_EBADF;
|
||||||
}
|
}
|
||||||
|
|
||||||
return sock.ret;
|
if (sock.ret < 0)
|
||||||
|
{
|
||||||
|
return sys_net_error{sock.ret};
|
||||||
|
}
|
||||||
|
|
||||||
|
return not_an_error(sock.ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
error_code sys_net_bnet_shutdown(ppu_thread& ppu, s32 s, s32 how)
|
error_code sys_net_bnet_shutdown(ppu_thread& ppu, s32 s, s32 how)
|
||||||
@ -954,9 +975,9 @@ error_code sys_net_bnet_shutdown(ppu_thread& ppu, s32 s, s32 how)
|
|||||||
return -SYS_NET_EBADF;
|
return -SYS_NET_EBADF;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sock.ret)
|
if (sock.ret < 0)
|
||||||
{
|
{
|
||||||
return sock.ret;
|
return sys_net_error{sock.ret};
|
||||||
}
|
}
|
||||||
|
|
||||||
return CELL_OK;
|
return CELL_OK;
|
||||||
@ -989,7 +1010,7 @@ error_code sys_net_bnet_socket(ppu_thread& ppu, lv2_socket_family family, lv2_so
|
|||||||
auto lv2_native = std::make_shared<lv2_socket_native>(family, type, protocol);
|
auto lv2_native = std::make_shared<lv2_socket_native>(family, type, protocol);
|
||||||
if (s32 result = lv2_native->create_socket(); result < 0)
|
if (s32 result = lv2_native->create_socket(); result < 0)
|
||||||
{
|
{
|
||||||
return result;
|
return sys_net_error{result};
|
||||||
}
|
}
|
||||||
|
|
||||||
sock_lv2 = std::move(lv2_native);
|
sock_lv2 = std::move(lv2_native);
|
||||||
|
Loading…
Reference in New Issue
Block a user