aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle/service/ssl/ssl.cpp
diff options
context:
space:
mode:
authorlizzie <lizzie@eden-emu.dev>2026-06-27 08:50:24 +0200
committercrueter <crueter@eden-emu.dev>2026-06-27 08:50:24 +0200
commitd8a8169eb20935b777fbaf322fa2d43e8f29d005 (patch)
treee55a23c5c77a2c24b31b3a64911b1b23a07b5391 /src/core/hle/service/ssl/ssl.cpp
parent81c6e56713fec564b7bd6519f9f4f760d5680bac (diff)
[hle/bsd] do not use rust-result wannabe Expected in functions (#4075)
rust has Result<T,E> but we don't really need that in c++, also the header just sucks, objectively Signed-off-by: lizzie lizzie@eden-emu.dev Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4075 Reviewed-by: CamilleLaVey <camillelavey99@gmail.com> Reviewed-by: crueter <crueter@eden-emu.dev>
Diffstat (limited to 'src/core/hle/service/ssl/ssl.cpp')
-rw-r--r--src/core/hle/service/ssl/ssl.cpp41
1 files changed, 19 insertions, 22 deletions
diff --git a/src/core/hle/service/ssl/ssl.cpp b/src/core/hle/service/ssl/ssl.cpp
index b66c686b2a..766673c653 100644
--- a/src/core/hle/service/ssl/ssl.cpp
+++ b/src/core/hle/service/ssl/ssl.cpp
@@ -160,29 +160,26 @@ private:
auto bsd = system.ServiceManager().GetService<Service::Sockets::BSD>("bsd:u");
ASSERT_OR_EXECUTE(bsd, { return ResultInternalError; });
- auto res = bsd->DuplicateSocketImpl(fd);
- if (!res.has_value()) {
- LOG_ERROR(Service_SSL, "Failed to duplicate socket with fd {}", fd);
- return ResultInvalidSocket;
- }
-
- const s32 duplicated_fd = *res;
-
- if (do_not_close_socket) {
- *out_fd = duplicated_fd;
- } else {
- *out_fd = -1;
- fd_to_close = duplicated_fd;
- }
-
- std::optional<std::shared_ptr<Network::SocketBase>> sock = bsd->GetSocket(duplicated_fd);
- if (!sock.has_value()) {
- LOG_ERROR(Service_SSL, "invalid socket fd {} after duplication", duplicated_fd);
- return ResultInvalidSocket;
+ auto const res_v = bsd->DuplicateSocketImpl(fd);
+ if (auto *res = std::get_if<s32>(&res_v)) {
+ const s32 duplicated_fd = *res;
+ if (do_not_close_socket) {
+ *out_fd = duplicated_fd;
+ } else {
+ *out_fd = -1;
+ fd_to_close = duplicated_fd;
+ }
+ std::optional<std::shared_ptr<Network::SocketBase>> sock = bsd->GetSocket(duplicated_fd);
+ if (!sock.has_value()) {
+ LOG_ERROR(Service_SSL, "invalid socket fd {} after duplication", duplicated_fd);
+ return ResultInvalidSocket;
+ }
+ socket = std::move(*sock);
+ backend->SetSocket(socket);
+ return ResultSuccess;
}
- socket = std::move(*sock);
- backend->SetSocket(socket);
- return ResultSuccess;
+ LOG_ERROR(Service_SSL, "Failed to duplicate socket with fd {}", fd);
+ return ResultInvalidSocket;
}
Result SetHostNameImpl(const std::string& hostname) {