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