summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2020-09-12 00:17:34 +0200
committerGitHub <noreply@github.com>2020-09-12 00:17:34 +0200
commitec634b6a8844b41d91d6c19d5faac50c35177b32 (patch)
tree4dcdbc5fb6f1393bd1cbb155e9ca3fa329e42a5e
parentMerge pull request #4310 from ogniK5377/apollo-1-prod (diff)
parentbsd: Resolve unused value within SendToImpl (diff)
downloadyuzu-ec634b6a8844b41d91d6c19d5faac50c35177b32.tar
yuzu-ec634b6a8844b41d91d6c19d5faac50c35177b32.tar.gz
yuzu-ec634b6a8844b41d91d6c19d5faac50c35177b32.tar.bz2
yuzu-ec634b6a8844b41d91d6c19d5faac50c35177b32.tar.lz
yuzu-ec634b6a8844b41d91d6c19d5faac50c35177b32.tar.xz
yuzu-ec634b6a8844b41d91d6c19d5faac50c35177b32.tar.zst
yuzu-ec634b6a8844b41d91d6c19d5faac50c35177b32.zip
-rw-r--r--src/core/hle/service/sockets/blocking_worker.h7
-rw-r--r--src/core/hle/service/sockets/bsd.cpp7
-rw-r--r--src/core/hle/service/sockets/sockets_translate.cpp24
3 files changed, 19 insertions, 19 deletions
diff --git a/src/core/hle/service/sockets/blocking_worker.h b/src/core/hle/service/sockets/blocking_worker.h
index 31ef6b821..2d53e52b6 100644
--- a/src/core/hle/service/sockets/blocking_worker.h
+++ b/src/core/hle/service/sockets/blocking_worker.h
@@ -29,7 +29,7 @@ namespace Service::Sockets {
* Worker abstraction to execute blocking calls on host without blocking the guest thread
*
* @tparam Service Service where the work is executed
- * @tparam ...Types Types of work to execute
+ * @tparam Types Types of work to execute
*/
template <class Service, class... Types>
class BlockingWorker {
@@ -109,9 +109,8 @@ private:
while (keep_running) {
work_event.Wait();
- const auto visit_fn = [service, &keep_running](auto&& w) {
- using T = std::decay_t<decltype(w)>;
- if constexpr (std::is_same_v<T, std::monostate>) {
+ const auto visit_fn = [service, &keep_running]<typename T>(T&& w) {
+ if constexpr (std::is_same_v<std::decay_t<T>, std::monostate>) {
keep_running = false;
} else {
w.Execute(service);
diff --git a/src/core/hle/service/sockets/bsd.cpp b/src/core/hle/service/sockets/bsd.cpp
index 803505452..7b9dd42d8 100644
--- a/src/core/hle/service/sockets/bsd.cpp
+++ b/src/core/hle/service/sockets/bsd.cpp
@@ -491,7 +491,7 @@ std::pair<s32, Errno> BSD::PollImpl(std::vector<u8>& write_buffer, std::vector<u
for (PollFD& pollfd : fds) {
ASSERT(pollfd.revents == 0);
- if (pollfd.fd > MAX_FD || pollfd.fd < 0) {
+ if (pollfd.fd > static_cast<s32>(MAX_FD) || pollfd.fd < 0) {
LOG_ERROR(Service, "File descriptor handle={} is invalid", pollfd.fd);
pollfd.revents = 0;
return {0, Errno::SUCCESS};
@@ -764,6 +764,7 @@ std::pair<s32, Errno> BSD::SendToImpl(s32 fd, u32 flags, const std::vector<u8>&
SockAddrIn guest_addr_in;
std::memcpy(&guest_addr_in, addr.data(), sizeof(guest_addr_in));
addr_in = Translate(guest_addr_in);
+ p_addr_in = &addr_in;
}
return Translate(file_descriptors[fd]->socket->SendTo(flags, message, p_addr_in));
@@ -795,7 +796,7 @@ s32 BSD::FindFreeFileDescriptorHandle() noexcept {
}
bool BSD::IsFileDescriptorValid(s32 fd) const noexcept {
- if (fd > MAX_FD || fd < 0) {
+ if (fd > static_cast<s32>(MAX_FD) || fd < 0) {
LOG_ERROR(Service, "Invalid file descriptor handle={}", fd);
return false;
}
@@ -809,7 +810,7 @@ bool BSD::IsFileDescriptorValid(s32 fd) const noexcept {
bool BSD::IsBlockingSocket(s32 fd) const noexcept {
// Inform invalid sockets as non-blocking
// This way we avoid using a worker thread as it will fail without blocking host
- if (fd > MAX_FD || fd < 0) {
+ if (fd > static_cast<s32>(MAX_FD) || fd < 0) {
return false;
}
if (!file_descriptors[fd]) {
diff --git a/src/core/hle/service/sockets/sockets_translate.cpp b/src/core/hle/service/sockets/sockets_translate.cpp
index 2be8f642d..139743e1d 100644
--- a/src/core/hle/service/sockets/sockets_translate.cpp
+++ b/src/core/hle/service/sockets/sockets_translate.cpp
@@ -131,21 +131,21 @@ u16 TranslatePollEventsToGuest(u16 flags) {
Network::SockAddrIn Translate(SockAddrIn value) {
ASSERT(value.len == 0 || value.len == sizeof(value));
- Network::SockAddrIn result;
- result.family = Translate(static_cast<Domain>(value.family));
- result.ip = value.ip;
- result.portno = value.portno >> 8 | value.portno << 8;
- return result;
+ return {
+ .family = Translate(static_cast<Domain>(value.family)),
+ .ip = value.ip,
+ .portno = static_cast<u16>(value.portno >> 8 | value.portno << 8),
+ };
}
SockAddrIn Translate(Network::SockAddrIn value) {
- SockAddrIn result;
- result.len = sizeof(result);
- result.family = static_cast<u8>(Translate(value.family));
- result.portno = value.portno >> 8 | value.portno << 8;
- result.ip = value.ip;
- result.zeroes = {};
- return result;
+ return {
+ .len = sizeof(SockAddrIn),
+ .family = static_cast<u8>(Translate(value.family)),
+ .portno = static_cast<u16>(value.portno >> 8 | value.portno << 8),
+ .ip = value.ip,
+ .zeroes = {},
+ };
}
Network::ShutdownHow Translate(ShutdownHow how) {