diff options
Diffstat (limited to 'src/core')
| -rw-r--r-- | src/core/hle/service/sockets/bsd.cpp | 3 | ||||
| -rw-r--r-- | src/core/hle/service/sockets/sockets.h | 1 | ||||
| -rw-r--r-- | src/core/network/network.cpp | 4 | ||||
| -rw-r--r-- | src/core/network/sockets.h | 2 |
4 files changed, 10 insertions, 0 deletions
diff --git a/src/core/hle/service/sockets/bsd.cpp b/src/core/hle/service/sockets/bsd.cpp index fc93fb743..e5631c27e 100644 --- a/src/core/hle/service/sockets/bsd.cpp +++ b/src/core/hle/service/sockets/bsd.cpp | |||
| @@ -689,6 +689,9 @@ Errno BSD::SetSockOptImpl(s32 fd, u32 level, OptName optname, size_t optlen, con | |||
| 689 | case OptName::REUSEADDR: | 689 | case OptName::REUSEADDR: |
| 690 | ASSERT(value == 0 || value == 1); | 690 | ASSERT(value == 0 || value == 1); |
| 691 | return Translate(socket->SetReuseAddr(value != 0)); | 691 | return Translate(socket->SetReuseAddr(value != 0)); |
| 692 | case OptName::KEEPALIVE: | ||
| 693 | ASSERT(value == 0 || value == 1); | ||
| 694 | return Translate(socket->SetKeepAlive(value != 0)); | ||
| 692 | case OptName::BROADCAST: | 695 | case OptName::BROADCAST: |
| 693 | ASSERT(value == 0 || value == 1); | 696 | ASSERT(value == 0 || value == 1); |
| 694 | return Translate(socket->SetBroadcast(value != 0)); | 697 | return Translate(socket->SetBroadcast(value != 0)); |
diff --git a/src/core/hle/service/sockets/sockets.h b/src/core/hle/service/sockets/sockets.h index 02dbbae40..d69c86431 100644 --- a/src/core/hle/service/sockets/sockets.h +++ b/src/core/hle/service/sockets/sockets.h | |||
| @@ -46,6 +46,7 @@ enum class Protocol : u32 { | |||
| 46 | 46 | ||
| 47 | enum class OptName : u32 { | 47 | enum class OptName : u32 { |
| 48 | REUSEADDR = 0x4, | 48 | REUSEADDR = 0x4, |
| 49 | KEEPALIVE = 0x8, | ||
| 49 | BROADCAST = 0x20, | 50 | BROADCAST = 0x20, |
| 50 | LINGER = 0x80, | 51 | LINGER = 0x80, |
| 51 | SNDBUF = 0x1001, | 52 | SNDBUF = 0x1001, |
diff --git a/src/core/network/network.cpp b/src/core/network/network.cpp index a3e0664b9..0784a165d 100644 --- a/src/core/network/network.cpp +++ b/src/core/network/network.cpp | |||
| @@ -600,6 +600,10 @@ Errno Socket::SetReuseAddr(bool enable) { | |||
| 600 | return SetSockOpt<u32>(fd, SO_REUSEADDR, enable ? 1 : 0); | 600 | return SetSockOpt<u32>(fd, SO_REUSEADDR, enable ? 1 : 0); |
| 601 | } | 601 | } |
| 602 | 602 | ||
| 603 | Errno Socket::SetKeepAlive(bool enable) { | ||
| 604 | return SetSockOpt<u32>(fd, SO_KEEPALIVE, enable ? 1 : 0); | ||
| 605 | } | ||
| 606 | |||
| 603 | Errno Socket::SetBroadcast(bool enable) { | 607 | Errno Socket::SetBroadcast(bool enable) { |
| 604 | return SetSockOpt<u32>(fd, SO_BROADCAST, enable ? 1 : 0); | 608 | return SetSockOpt<u32>(fd, SO_BROADCAST, enable ? 1 : 0); |
| 605 | } | 609 | } |
diff --git a/src/core/network/sockets.h b/src/core/network/sockets.h index 5e39e7c54..caaefce7c 100644 --- a/src/core/network/sockets.h +++ b/src/core/network/sockets.h | |||
| @@ -67,6 +67,8 @@ public: | |||
| 67 | 67 | ||
| 68 | Errno SetReuseAddr(bool enable); | 68 | Errno SetReuseAddr(bool enable); |
| 69 | 69 | ||
| 70 | Errno SetKeepAlive(bool enable); | ||
| 71 | |||
| 70 | Errno SetBroadcast(bool enable); | 72 | Errno SetBroadcast(bool enable); |
| 71 | 73 | ||
| 72 | Errno SetSndBuf(u32 value); | 74 | Errno SetSndBuf(u32 value); |