diff options
author | liamwhite <liamwhite@users.noreply.github.com> | 2023-02-02 21:53:28 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-02-02 21:53:28 +0100 |
commit | b01698775b468a04e4d0a9bdd86035ff00e6decb (patch) | |
tree | 88f1784fe7833392caeaf713a7a616772f446b18 /src/core/hle/service/sockets/bsd.cpp | |
parent | Merge pull request #9708 from ameerj/gl-context-flush (diff) | |
download | yuzu-b01698775b468a04e4d0a9bdd86035ff00e6decb.tar yuzu-b01698775b468a04e4d0a9bdd86035ff00e6decb.tar.gz yuzu-b01698775b468a04e4d0a9bdd86035ff00e6decb.tar.bz2 yuzu-b01698775b468a04e4d0a9bdd86035ff00e6decb.tar.lz yuzu-b01698775b468a04e4d0a9bdd86035ff00e6decb.tar.xz yuzu-b01698775b468a04e4d0a9bdd86035ff00e6decb.tar.zst yuzu-b01698775b468a04e4d0a9bdd86035ff00e6decb.zip |
Diffstat (limited to 'src/core/hle/service/sockets/bsd.cpp')
-rw-r--r-- | src/core/hle/service/sockets/bsd.cpp | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/src/core/hle/service/sockets/bsd.cpp b/src/core/hle/service/sockets/bsd.cpp index bdb499268..9e94a462f 100644 --- a/src/core/hle/service/sockets/bsd.cpp +++ b/src/core/hle/service/sockets/bsd.cpp @@ -208,6 +208,7 @@ void BSD::Bind(Kernel::HLERequestContext& ctx) { const s32 fd = rp.Pop<s32>(); LOG_DEBUG(Service, "called. fd={} addrlen={}", fd, ctx.GetReadBufferSize()); + BuildErrnoResponse(ctx, BindImpl(fd, ctx.ReadBuffer())); } @@ -311,7 +312,7 @@ void BSD::SetSockOpt(Kernel::HLERequestContext& ctx) { const u32 level = rp.Pop<u32>(); const OptName optname = static_cast<OptName>(rp.Pop<u32>()); - const auto buffer = ctx.ReadBuffer(); + const std::vector<u8> buffer = ctx.ReadBuffer(); const u8* optval = buffer.empty() ? nullptr : buffer.data(); size_t optlen = buffer.size(); @@ -488,7 +489,7 @@ std::pair<s32, Errno> BSD::SocketImpl(Domain domain, Type type, Protocol protoco return {fd, Errno::SUCCESS}; } -std::pair<s32, Errno> BSD::PollImpl(std::vector<u8>& write_buffer, std::span<const u8> read_buffer, +std::pair<s32, Errno> BSD::PollImpl(std::vector<u8>& write_buffer, std::vector<u8> read_buffer, s32 nfds, s32 timeout) { if (write_buffer.size() < nfds * sizeof(PollFD)) { return {-1, Errno::INVAL}; @@ -583,7 +584,7 @@ std::pair<s32, Errno> BSD::AcceptImpl(s32 fd, std::vector<u8>& write_buffer) { return {new_fd, Errno::SUCCESS}; } -Errno BSD::BindImpl(s32 fd, std::span<const u8> addr) { +Errno BSD::BindImpl(s32 fd, const std::vector<u8>& addr) { if (!IsFileDescriptorValid(fd)) { return Errno::BADF; } @@ -594,7 +595,7 @@ Errno BSD::BindImpl(s32 fd, std::span<const u8> addr) { return Translate(file_descriptors[fd]->socket->Bind(Translate(addr_in))); } -Errno BSD::ConnectImpl(s32 fd, std::span<const u8> addr) { +Errno BSD::ConnectImpl(s32 fd, const std::vector<u8>& addr) { if (!IsFileDescriptorValid(fd)) { return Errno::BADF; } @@ -799,15 +800,15 @@ std::pair<s32, Errno> BSD::RecvFromImpl(s32 fd, u32 flags, std::vector<u8>& mess return {ret, bsd_errno}; } -std::pair<s32, Errno> BSD::SendImpl(s32 fd, u32 flags, std::span<const u8> message) { +std::pair<s32, Errno> BSD::SendImpl(s32 fd, u32 flags, const std::vector<u8>& message) { if (!IsFileDescriptorValid(fd)) { return {-1, Errno::BADF}; } return Translate(file_descriptors[fd]->socket->Send(message, flags)); } -std::pair<s32, Errno> BSD::SendToImpl(s32 fd, u32 flags, std::span<const u8> message, - std::span<const u8> addr) { +std::pair<s32, Errno> BSD::SendToImpl(s32 fd, u32 flags, const std::vector<u8>& message, + const std::vector<u8>& addr) { if (!IsFileDescriptorValid(fd)) { return {-1, Errno::BADF}; } |