mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2025-07-22 01:54:31 +00:00
Extract socket read to a method in Socket
This commit is contained in:
parent
aa684452eb
commit
4d6263f368
@ -492,7 +492,7 @@ s64 PS4_SYSV_ABI read(s32 fd, void* buf, size_t nbytes) {
|
||||
}
|
||||
return result;
|
||||
} else if (file->type == Core::FileSys::FileType::Socket) {
|
||||
s64 result = ::read(file->socket->Native(), buf, nbytes);
|
||||
s64 result = file->socket->read(buf, nbytes);
|
||||
if (result < 0) {
|
||||
ErrSceToPosix(result);
|
||||
return -1;
|
||||
|
@ -62,6 +62,11 @@ int P2PSocket::GetPeerName(OrbisNetSockaddr* addr, u32* namelen) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int P2PSocket::read(void* buf, size_t len) {
|
||||
LOG_ERROR(Lib_Net, "(STUBBED) called");
|
||||
return 0;
|
||||
}
|
||||
|
||||
int P2PSocket::write(const void* buf, size_t len) {
|
||||
LOG_ERROR(Lib_Net, "(STUBBED) called");
|
||||
return 0;
|
||||
|
@ -458,6 +458,14 @@ int PosixSocket::GetSocketOptions(int level, int optname, void* optval, u32* opt
|
||||
return 0;
|
||||
}
|
||||
|
||||
int PosixSocket::read(void* buf, size_t len) {
|
||||
#ifdef _WIN32
|
||||
return recv(sock, buf, len, 0);
|
||||
#else
|
||||
return ::read(sock, buf, len);
|
||||
#endif
|
||||
}
|
||||
|
||||
int PosixSocket::write(const void* buf, size_t len) {
|
||||
#ifdef _WIN32
|
||||
return send(sock, buf, len, 0);
|
||||
|
@ -52,6 +52,7 @@ struct Socket {
|
||||
virtual int Connect(const OrbisNetSockaddr* addr, u32 namelen) = 0;
|
||||
virtual int GetSocketAddress(OrbisNetSockaddr* name, u32* namelen) = 0;
|
||||
virtual int GetPeerName(OrbisNetSockaddr* addr, u32* namelen) = 0;
|
||||
virtual int read(void* buf, size_t len) = 0;
|
||||
virtual int write(const void* buf, size_t len) = 0;
|
||||
virtual bool IsValid() const = 0;
|
||||
virtual net_socket Native() const = 0;
|
||||
@ -83,6 +84,7 @@ struct PosixSocket : public Socket {
|
||||
int Connect(const OrbisNetSockaddr* addr, u32 namelen) override;
|
||||
int GetSocketAddress(OrbisNetSockaddr* name, u32* namelen) override;
|
||||
int GetPeerName(OrbisNetSockaddr* addr, u32* namelen) override;
|
||||
int read(void* buf, size_t len) override;
|
||||
int write(const void* buf, size_t len) override;
|
||||
bool IsValid() const override {
|
||||
return sock != -1;
|
||||
@ -106,6 +108,7 @@ struct P2PSocket : public Socket {
|
||||
int Connect(const OrbisNetSockaddr* addr, u32 namelen) override;
|
||||
int GetSocketAddress(OrbisNetSockaddr* name, u32* namelen) override;
|
||||
int GetPeerName(OrbisNetSockaddr* addr, u32* namelen) override;
|
||||
int read(void* buf, size_t len) override;
|
||||
int write(const void* buf, size_t len) override;
|
||||
bool IsValid() const override {
|
||||
return true;
|
||||
|
Loading…
Reference in New Issue
Block a user