diff options
Diffstat (limited to 'src/common')
| -rw-r--r-- | src/common/demangle.cpp | 2 | ||||
| -rw-r--r-- | src/common/detached_tasks.cpp | 4 | ||||
| -rw-r--r-- | src/common/socket_types.h | 17 |
3 files changed, 19 insertions, 4 deletions
diff --git a/src/common/demangle.cpp b/src/common/demangle.cpp index 3310faf86..6e117cb41 100644 --- a/src/common/demangle.cpp +++ b/src/common/demangle.cpp | |||
| @@ -23,7 +23,7 @@ std::string DemangleSymbol(const std::string& mangled) { | |||
| 23 | SCOPE_EXIT({ std::free(demangled); }); | 23 | SCOPE_EXIT({ std::free(demangled); }); |
| 24 | 24 | ||
| 25 | if (is_itanium(mangled)) { | 25 | if (is_itanium(mangled)) { |
| 26 | demangled = llvm::itaniumDemangle(mangled.c_str(), nullptr, nullptr, nullptr); | 26 | demangled = llvm::itaniumDemangle(mangled.c_str()); |
| 27 | } | 27 | } |
| 28 | 28 | ||
| 29 | if (!demangled) { | 29 | if (!demangled) { |
diff --git a/src/common/detached_tasks.cpp b/src/common/detached_tasks.cpp index da64848da..f2ed795cc 100644 --- a/src/common/detached_tasks.cpp +++ b/src/common/detached_tasks.cpp | |||
| @@ -30,8 +30,8 @@ DetachedTasks::~DetachedTasks() { | |||
| 30 | void DetachedTasks::AddTask(std::function<void()> task) { | 30 | void DetachedTasks::AddTask(std::function<void()> task) { |
| 31 | std::unique_lock lock{instance->mutex}; | 31 | std::unique_lock lock{instance->mutex}; |
| 32 | ++instance->count; | 32 | ++instance->count; |
| 33 | std::thread([task{std::move(task)}]() { | 33 | std::thread([task_{std::move(task)}]() { |
| 34 | task(); | 34 | task_(); |
| 35 | std::unique_lock thread_lock{instance->mutex}; | 35 | std::unique_lock thread_lock{instance->mutex}; |
| 36 | --instance->count; | 36 | --instance->count; |
| 37 | std::notify_all_at_thread_exit(instance->cv, std::move(thread_lock)); | 37 | std::notify_all_at_thread_exit(instance->cv, std::move(thread_lock)); |
diff --git a/src/common/socket_types.h b/src/common/socket_types.h index 0a801a443..63824a5c4 100644 --- a/src/common/socket_types.h +++ b/src/common/socket_types.h | |||
| @@ -3,17 +3,22 @@ | |||
| 3 | 3 | ||
| 4 | #pragma once | 4 | #pragma once |
| 5 | 5 | ||
| 6 | #include <optional> | ||
| 7 | #include <string> | ||
| 8 | |||
| 6 | #include "common/common_types.h" | 9 | #include "common/common_types.h" |
| 7 | 10 | ||
| 8 | namespace Network { | 11 | namespace Network { |
| 9 | 12 | ||
| 10 | /// Address families | 13 | /// Address families |
| 11 | enum class Domain : u8 { | 14 | enum class Domain : u8 { |
| 12 | INET, ///< Address family for IPv4 | 15 | Unspecified, ///< Represents 0, used in getaddrinfo hints |
| 16 | INET, ///< Address family for IPv4 | ||
| 13 | }; | 17 | }; |
| 14 | 18 | ||
| 15 | /// Socket types | 19 | /// Socket types |
| 16 | enum class Type { | 20 | enum class Type { |
| 21 | Unspecified, ///< Represents 0, used in getaddrinfo hints | ||
| 17 | STREAM, | 22 | STREAM, |
| 18 | DGRAM, | 23 | DGRAM, |
| 19 | RAW, | 24 | RAW, |
| @@ -22,6 +27,7 @@ enum class Type { | |||
| 22 | 27 | ||
| 23 | /// Protocol values for sockets | 28 | /// Protocol values for sockets |
| 24 | enum class Protocol : u8 { | 29 | enum class Protocol : u8 { |
| 30 | Unspecified, ///< Represents 0, usable in various places | ||
| 25 | ICMP, | 31 | ICMP, |
| 26 | TCP, | 32 | TCP, |
| 27 | UDP, | 33 | UDP, |
| @@ -48,4 +54,13 @@ constexpr u32 FLAG_MSG_PEEK = 0x2; | |||
| 48 | constexpr u32 FLAG_MSG_DONTWAIT = 0x80; | 54 | constexpr u32 FLAG_MSG_DONTWAIT = 0x80; |
| 49 | constexpr u32 FLAG_O_NONBLOCK = 0x800; | 55 | constexpr u32 FLAG_O_NONBLOCK = 0x800; |
| 50 | 56 | ||
| 57 | /// Cross-platform addrinfo structure | ||
| 58 | struct AddrInfo { | ||
| 59 | Domain family; | ||
| 60 | Type socket_type; | ||
| 61 | Protocol protocol; | ||
| 62 | SockAddrIn addr; | ||
| 63 | std::optional<std::string> canon_name; | ||
| 64 | }; | ||
| 65 | |||
| 51 | } // namespace Network | 66 | } // namespace Network |