Fix the missing socket options for 32-bit. (#1918)
Motivation: When pulling out the NIOBSDSocket later in #1907 we dropped some of the socket option fixes for 32 bit platforms, which broke them. Modifications: Restore the socket options. Result: 32-bit build should be working again.
This commit is contained in:
parent
4c0c5e555c
commit
8b06e8f996
|
@ -17,7 +17,7 @@ import PackageDescription
|
|||
|
||||
var targets: [PackageDescription.Target] = [
|
||||
.target(name: "NIOCore",
|
||||
dependencies: ["NIOConcurrencyHelpers"]),
|
||||
dependencies: ["NIOConcurrencyHelpers", "CNIOLinux"]),
|
||||
.target(name: "NIO",
|
||||
dependencies: ["CNIOLinux",
|
||||
"CNIODarwin",
|
||||
|
|
|
@ -48,8 +48,6 @@ extension ipv6_mreq { // http://lkml.iu.edu/hypermail/linux/kernel/0106.1/0080.h
|
|||
}
|
||||
}
|
||||
#if arch(arm)
|
||||
let SO_RCVTIMEO = SO_RCVTIMEO_OLD
|
||||
let SO_TIMESTAMP = SO_TIMESTAMP_OLD
|
||||
let S_IFSOCK = UInt32(SwiftGlibc.S_IFSOCK)
|
||||
let S_IFMT = UInt32(SwiftGlibc.S_IFMT)
|
||||
let S_IFREG = UInt32(SwiftGlibc.S_IFREG)
|
||||
|
@ -59,12 +57,6 @@ let S_IFBLK = UInt32(SwiftGlibc.S_IFBLK)
|
|||
#endif
|
||||
#endif
|
||||
|
||||
// Work around SO_TIMESTAMP/SO_RCVTIMEO being awkwardly defined in glibc.
|
||||
#if os(Linux)
|
||||
let SO_TIMESTAMP = CNIOLinux_SO_TIMESTAMP
|
||||
let SO_RCVTIMEO = CNIOLinux_SO_RCVTIMEO
|
||||
#endif
|
||||
|
||||
// Declare aliases to share more code and not need to repeat #if #else blocks
|
||||
#if !os(Windows)
|
||||
private let sysClose = close
|
||||
|
|
|
@ -56,6 +56,7 @@ import func WinSDK.inet_ntop
|
|||
import func WinSDK.inet_pton
|
||||
#elseif os(Linux) || os(Android)
|
||||
import Glibc
|
||||
import CNIOLinux
|
||||
|
||||
private let sysInet_ntop: @convention(c) (CInt, UnsafeRawPointer?, UnsafeMutablePointer<CChar>?, socklen_t) -> UnsafePointer<CChar>? = inet_ntop
|
||||
private let sysInet_pton: @convention(c) (CInt, UnsafePointer<CChar>?, UnsafeMutableRawPointer?) -> CInt = inet_pton
|
||||
|
@ -66,6 +67,15 @@ private let sysInet_ntop: @convention(c) (CInt, UnsafeRawPointer?, UnsafeMutable
|
|||
private let sysInet_pton: @convention(c) (CInt, UnsafePointer<CChar>?, UnsafeMutableRawPointer?) -> CInt = inet_pton
|
||||
#endif
|
||||
|
||||
// Work around SO_TIMESTAMP/SO_RCVTIMEO being awkwardly defined in glibc.
|
||||
#if os(Android) && arch(arm)
|
||||
let SO_RCVTIMEO = SO_RCVTIMEO_OLD
|
||||
let SO_TIMESTAMP = SO_TIMESTAMP_OLD
|
||||
#elseif os(Linux)
|
||||
let SO_TIMESTAMP = CNIOLinux_SO_TIMESTAMP
|
||||
let SO_RCVTIMEO = CNIOLinux_SO_RCVTIMEO
|
||||
#endif
|
||||
|
||||
public enum NIOBSDSocket {
|
||||
#if os(Windows)
|
||||
public typealias Handle = SOCKET
|
||||
|
|
Loading…
Reference in New Issue