76 lines
3.1 KiB
Diff
76 lines
3.1 KiB
Diff
|
For 32-bit Android `socklen_t` is defined as `int32_t`.
|
||
|
|
||
|
--- a/include/host/wasi/environ.h
|
||
|
+++ b/include/host/wasi/environ.h
|
||
|
@@ -964,7 +964,7 @@
|
||
|
|
||
|
WasiExpect<void> sockGetOpt(__wasi_fd_t Fd, int32_t Level, int32_t Name,
|
||
|
void *FlagPtr,
|
||
|
- uint32_t *FlagSizePtr) const noexcept {
|
||
|
+ socklen_t *FlagSizePtr) const noexcept {
|
||
|
auto Node = getNodeOrNull(Fd);
|
||
|
if (unlikely(!Node)) {
|
||
|
return WasiUnexpect(__WASI_ERRNO_BADF);
|
||
|
--- a/include/host/wasi/inode.h
|
||
|
+++ b/include/host/wasi/inode.h
|
||
|
@@ -540,7 +540,7 @@
|
||
|
WasiExpect<void> sockShutdown(__wasi_sdflags_t SdFlags) const noexcept;
|
||
|
|
||
|
WasiExpect<void> sockGetOpt(int32_t Level, int32_t Name, void *FlagPtr,
|
||
|
- uint32_t *FlagSizePtr) const noexcept;
|
||
|
+ socklen_t *FlagSizePtr) const noexcept;
|
||
|
WasiExpect<void> sockSetOpt(int32_t Level, int32_t Name, void *FlagPtr,
|
||
|
uint32_t FlagSizePtr) const noexcept;
|
||
|
|
||
|
--- a/include/host/wasi/vinode.h
|
||
|
+++ b/include/host/wasi/vinode.h
|
||
|
@@ -603,7 +603,7 @@
|
||
|
}
|
||
|
|
||
|
WasiExpect<void> sockGetOpt(int32_t Level, int32_t OptName, void *FlagPtr,
|
||
|
- uint32_t *FlagSizePtr) const noexcept {
|
||
|
+ socklen_t *FlagSizePtr) const noexcept {
|
||
|
return Node.sockGetOpt(Level, OptName, FlagPtr, FlagSizePtr);
|
||
|
}
|
||
|
WasiExpect<void> sockSetOpt(int32_t Level, int32_t OptName, void *FlagPtr,
|
||
|
--- a/include/host/wasi/wasifunc.h
|
||
|
+++ b/include/host/wasi/wasifunc.h
|
||
|
@@ -455,7 +455,7 @@
|
||
|
|
||
|
Expect<uint32_t> body(Runtime::Instance::MemoryInstance *MemInst, int32_t Fd,
|
||
|
int32_t Level, int32_t Name, uint32_t FlagPtr,
|
||
|
- uint32_t FlagSizePtr);
|
||
|
+ socklen_t FlagSizePtr);
|
||
|
};
|
||
|
|
||
|
class WasiSockSetOpt : public Wasi<WasiSockSetOpt> {
|
||
|
--- a/lib/host/wasi/inode-linux.cpp
|
||
|
+++ b/lib/host/wasi/inode-linux.cpp
|
||
|
@@ -1060,7 +1060,7 @@
|
||
|
|
||
|
WasiExpect<void> INode::sockGetOpt(int32_t Level, int32_t OptName,
|
||
|
void *FlagPtr,
|
||
|
- uint32_t *FlagSizePtr) const noexcept {
|
||
|
+ socklen_t *FlagSizePtr) const noexcept {
|
||
|
auto SysLevel = toSockOptLevel(static_cast<__wasi_sock_opt_level_t>(Level));
|
||
|
auto SysOptName = toSockOptSoName(static_cast<__wasi_sock_opt_so_t>(OptName));
|
||
|
if (OptName == __WASI_SOCK_OPT_SO_ERROR) {
|
||
|
--- a/lib/host/wasi/wasifunc.cpp
|
||
|
+++ b/lib/host/wasi/wasifunc.cpp
|
||
|
@@ -1854,13 +1854,13 @@
|
||
|
Expect<uint32_t>
|
||
|
WasiSockGetOpt::body(Runtime::Instance::MemoryInstance *MemInst, int32_t Fd,
|
||
|
int32_t Level, int32_t Name, uint32_t FlagPtr,
|
||
|
- uint32_t FlagSizePtr) {
|
||
|
+ socklen_t FlagSizePtr) {
|
||
|
|
||
|
if (MemInst == nullptr) {
|
||
|
return __WASI_ERRNO_FAULT;
|
||
|
}
|
||
|
|
||
|
- uint32_t *InnerFlagSizePtr = MemInst->getPointer<uint32_t *>(FlagSizePtr);
|
||
|
+ socklen_t *InnerFlagSizePtr = MemInst->getPointer<socklen_t *>(FlagSizePtr);
|
||
|
if (InnerFlagSizePtr == nullptr) {
|
||
|
return __WASI_ERRNO_FAULT;
|
||
|
}
|