mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2025-07-22 01:54:31 +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;
|
||||
} 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) {
|
||||
ErrSceToPosix(result);
|
||||
return -1;
|
||||
|
@ -62,4 +62,9 @@ int P2PSocket::GetPeerName(OrbisNetSockaddr* addr, u32* namelen) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int P2PSocket::write(const void* buf, size_t len) {
|
||||
LOG_ERROR(Lib_Net, "(STUBBED) called");
|
||||
return 0;
|
||||
}
|
||||
|
||||
} // namespace Libraries::Net
|
@ -458,4 +458,13 @@ int PosixSocket::GetSocketOptions(int level, int optname, void* optval, u32* opt
|
||||
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
|
@ -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 write(const void* buf, size_t len) = 0;
|
||||
virtual bool IsValid() const = 0;
|
||||
virtual net_socket Native() const = 0;
|
||||
std::mutex m_mutex;
|
||||
@ -82,6 +83,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 write(const void* buf, size_t len) override;
|
||||
bool IsValid() const override {
|
||||
return sock != -1;
|
||||
}
|
||||
@ -104,6 +106,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 write(const void* buf, size_t len) override;
|
||||
bool IsValid() const override {
|
||||
return true;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user