Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/workflows/swift.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ jobs:
name: Linux
strategy:
matrix:
container: ["swift:6.0.3", "swift:6.1.2"]
container: ["swift:6.0.3", "swift:6.1.2", "swift:6.2.3"]
config: ["debug", "release"]
options: ["", "SWIFT_BUILD_DYNAMIC_LIBRARY=1"]
runs-on: ubuntu-latest
Expand All @@ -41,8 +41,8 @@ jobs:
strategy:
fail-fast: false
matrix:
swift: ['6.1', 'nightly-6.2']
arch: ["aarch64", "x86_64"]
swift: ['6.2.3', 'nightly-6.3']
arch: ['aarch64', 'x86_64', 'armv7']
runs-on: macos-15
timeout-minutes: 30
steps:
Expand Down
2 changes: 1 addition & 1 deletion Sources/Socket/System/CInternetAddress.swift
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ internal extension String {
T.family.rawValue,
$0,
cString,
numericCast(T.stringLength)
CInterop.SocketLength(T.stringLength)
) != nil
}
guard success else {
Expand Down
2 changes: 2 additions & 0 deletions Sources/Socket/System/CInterop.swift
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,8 @@ public extension CInterop {
typealias SocketType = CInt
#endif

typealias SocketLength = socklen_t

/// The C `addrinfo` type
typealias AddressInfo = addrinfo

Expand Down
8 changes: 4 additions & 4 deletions Sources/Socket/System/CSocketAddress.swift
Original file line number Diff line number Diff line change
Expand Up @@ -10,18 +10,18 @@ internal protocol CSocketAddress {
internal extension CSocketAddress {

func withUnsafePointer<Result>(
_ body: (UnsafePointer<CInterop.SocketAddress>, UInt32) throws -> Result
_ body: (UnsafePointer<CInterop.SocketAddress>, CInterop.SocketLength) throws -> Result
) rethrows -> Result {
return try Swift.withUnsafeBytes(of: self) {
return try body($0.baseAddress!.assumingMemoryBound(to: CInterop.SocketAddress.self), UInt32(MemoryLayout<Self>.size))
return try body($0.baseAddress!.assumingMemoryBound(to: CInterop.SocketAddress.self), CInterop.SocketLength(MemoryLayout<Self>.size))
}
}

mutating func withUnsafeMutablePointer<Result>(
_ body: (UnsafeMutablePointer<CInterop.SocketAddress>, UInt32) throws -> Result
_ body: (UnsafeMutablePointer<CInterop.SocketAddress>, CInterop.SocketLength) throws -> Result
) rethrows -> Result {
return try Swift.withUnsafeMutableBytes(of: &self) {
return try body($0.baseAddress!.assumingMemoryBound(to: CInterop.SocketAddress.self), UInt32(MemoryLayout<Self>.size))
return try body($0.baseAddress!.assumingMemoryBound(to: CInterop.SocketAddress.self), CInterop.SocketLength(MemoryLayout<Self>.size))
}
}
}
4 changes: 2 additions & 2 deletions Sources/Socket/System/SocketAddress.swift
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,15 @@ public protocol SocketAddress: Sendable {

/// Unsafe pointer closure
func withUnsafePointer<Result, Error>(
_ body: (UnsafePointer<CInterop.SocketAddress>, UInt32) throws(Error) -> Result
_ body: (UnsafePointer<CInterop.SocketAddress>, CInterop.SocketLength) throws(Error) -> Result
) rethrows -> Result where Error: Swift.Error

static func withUnsafePointer(
_ pointer: UnsafeMutablePointer<CInterop.SocketAddress>
) -> Self

static func withUnsafePointer(
_ body: (UnsafeMutablePointer<CInterop.SocketAddress>, UInt32) throws -> ()
_ body: (UnsafeMutablePointer<CInterop.SocketAddress>, CInterop.SocketLength) throws -> ()
) rethrows -> Self
}

Expand Down
4 changes: 2 additions & 2 deletions Sources/Socket/System/SocketAddress/IPv4SocketAddress.swift
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ public struct IPv4SocketAddress: SocketAddress, Equatable, Hashable {
}

public func withUnsafePointer<Result, Error>(
_ body: (UnsafePointer<CInterop.SocketAddress>, UInt32) throws(Error) -> Result
_ body: (UnsafePointer<CInterop.SocketAddress>, CInterop.SocketLength) throws(Error) -> Result
) rethrows -> Result where Error: Swift.Error {

var socketAddress = CInterop.IPv4SocketAddress()
Expand All @@ -51,7 +51,7 @@ public struct IPv4SocketAddress: SocketAddress, Equatable, Hashable {
}

public static func withUnsafePointer(
_ body: (UnsafeMutablePointer<CInterop.SocketAddress>, UInt32) throws -> ()
_ body: (UnsafeMutablePointer<CInterop.SocketAddress>, CInterop.SocketLength) throws -> ()
) rethrows -> Self {
var socketAddress = CInterop.IPv4SocketAddress()
try socketAddress.withUnsafeMutablePointer(body)
Expand Down
4 changes: 2 additions & 2 deletions Sources/Socket/System/SocketAddress/IPv6SocketAddress.swift
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ public struct IPv6SocketAddress: SocketAddress, Equatable, Hashable {
}

public func withUnsafePointer<Result, Error>(
_ body: (UnsafePointer<CInterop.SocketAddress>, UInt32) throws(Error) -> Result
_ body: (UnsafePointer<CInterop.SocketAddress>, CInterop.SocketLength) throws(Error) -> Result
) rethrows -> Result where Error: Swift.Error {

var socketAddress = CInterop.IPv6SocketAddress()
Expand All @@ -51,7 +51,7 @@ public struct IPv6SocketAddress: SocketAddress, Equatable, Hashable {
}

public static func withUnsafePointer(
_ body: (UnsafeMutablePointer<CInterop.SocketAddress>, UInt32) throws -> ()
_ body: (UnsafeMutablePointer<CInterop.SocketAddress>, CInterop.SocketLength) throws -> ()
) rethrows -> Self {
var socketAddress = CInterop.IPv6SocketAddress()
try socketAddress.withUnsafeMutablePointer(body)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ public struct LinkLayerSocketAddress: SocketAddress, Equatable, Hashable {
}

public func withUnsafePointer<Result, Error>(
_ body: (UnsafePointer<CInterop.SocketAddress>, UInt32) throws(Error) -> Result
_ body: (UnsafePointer<CInterop.SocketAddress>, CInterop.SocketLength) throws(Error) -> Result
) rethrows -> Result where Error: Swift.Error {

var socketAddress = CSocketAddressType()
Expand All @@ -76,7 +76,7 @@ public struct LinkLayerSocketAddress: SocketAddress, Equatable, Hashable {
}

public static func withUnsafePointer(
_ body: (UnsafeMutablePointer<CInterop.SocketAddress>, UInt32) throws -> ()
_ body: (UnsafeMutablePointer<CInterop.SocketAddress>, CInterop.SocketLength) throws -> ()
) rethrows -> Self {
var socketAddress = CSocketAddressType()
try socketAddress.withUnsafeMutablePointer(body)
Expand Down
6 changes: 3 additions & 3 deletions Sources/Socket/System/SocketAddress/UnixSocketAddress.swift
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ public struct UnixSocketAddress: SocketAddress, Equatable, Hashable {
}

public func withUnsafePointer<Result, Error>(
_ body: (UnsafePointer<CInterop.SocketAddress>, UInt32) throws(Error) -> Result
_ body: (UnsafePointer<CInterop.SocketAddress>, CInterop.SocketLength) throws(Error) -> Result
) rethrows -> Result where Error: Swift.Error {
return try path.withPlatformString { platformString in
var socketAddress = CInterop.UnixSocketAddress()
Expand All @@ -43,7 +43,7 @@ public struct UnixSocketAddress: SocketAddress, Equatable, Hashable {
}

public static func withUnsafePointer(
_ body: (UnsafeMutablePointer<CInterop.SocketAddress>, UInt32) throws -> ()
_ body: (UnsafeMutablePointer<CInterop.SocketAddress>, CInterop.SocketLength) throws -> ()
) rethrows -> Self {
var socketAddress = CInterop.UnixSocketAddress()
try socketAddress.withUnsafeMutablePointer(body)
Expand All @@ -64,4 +64,4 @@ extension CInterop.UnixSocketAddress: CSocketAddress {
@_alwaysEmitIntoClient
static var family: SocketAddressFamily { .unix }
}
#endif
#endif
6 changes: 3 additions & 3 deletions Sources/Socket/System/SocketOperations.swift
Original file line number Diff line number Diff line change
Expand Up @@ -179,7 +179,7 @@ extension SocketDescriptor {
) -> Result<(), Errno> {
nothingOrErrno(retryOnInterrupt: retryOnInterrupt) {
option.withUnsafeBytes { bufferPointer in
system_setsockopt(self.rawValue, Option.ID.optionLevel.rawValue, Option.id.rawValue, bufferPointer.baseAddress!, UInt32(bufferPointer.count))
system_setsockopt(self.rawValue, Option.ID.optionLevel.rawValue, Option.id.rawValue, bufferPointer.baseAddress!, CInterop.SocketLength(bufferPointer.count))
}
}
}
Expand Down Expand Up @@ -208,7 +208,7 @@ extension SocketDescriptor {
) -> Result<Option, Errno> {
do {
let value = try Option.withUnsafeBytes { bufferPointer throws(Errno) -> () in
var length = UInt32(bufferPointer.count)
var length = CInterop.SocketLength(bufferPointer.count)
guard system_getsockopt(self.rawValue, Option.ID.optionLevel.rawValue, Option.id.rawValue, bufferPointer.baseAddress!, &length) != -1 else {
throw Errno.current
}
Expand Down Expand Up @@ -498,7 +498,7 @@ extension SocketDescriptor {
internal func _accept(
retryOnInterrupt: Bool
) -> Result<SocketDescriptor, Errno> {
var length: UInt32 = 0
var length: CInterop.SocketLength = 0
return valueOrErrno(retryOnInterrupt: retryOnInterrupt) {
system_accept(self.rawValue, nil, &length)
}.map(SocketDescriptor.init(rawValue:))
Expand Down
18 changes: 9 additions & 9 deletions Sources/Socket/System/Syscalls.swift
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,7 @@ internal func system_inet_pton(
return inet_pton(family, cString, address)
}

internal func system_inet_ntop(_ family: Int32, _ pointer : UnsafeRawPointer, _ string: UnsafeMutablePointer<CChar>, _ length: UInt32) -> UnsafePointer<CChar>? {
internal func system_inet_ntop(_ family: Int32, _ pointer : UnsafeRawPointer, _ string: UnsafeMutablePointer<CChar>, _ length: socklen_t) -> UnsafePointer<CChar>? {
#if ENABLE_MOCKING
//if mockingEnabled { return _mock(family, pointer, string, length) }
#endif
Expand All @@ -176,7 +176,7 @@ internal func system_socket(_ fd: Int32, _ fd2: Int32, _ fd3: Int32) -> Int32 {
return socket(fd, fd2, fd3)
}

internal func system_setsockopt(_ fd: Int32, _ fd2: Int32, _ fd3: Int32, _ pointer: UnsafeRawPointer, _ dataLength: UInt32) -> Int32 {
internal func system_setsockopt(_ fd: Int32, _ fd2: Int32, _ fd3: Int32, _ pointer: UnsafeRawPointer, _ dataLength: socklen_t) -> Int32 {
#if ENABLE_MOCKING
if mockingEnabled { return _mock(fd, fd2, fd3, pointer, dataLength) }
#endif
Expand All @@ -188,7 +188,7 @@ internal func system_getsockopt(
_ level: CInt,
_ option: CInt,
_ value: UnsafeMutableRawPointer?,
_ length: UnsafeMutablePointer<UInt32>
_ length: UnsafeMutablePointer<socklen_t>
) -> CInt {
#if ENABLE_MOCKING
if mockingEnabled { return _mock(socket, level, option, value, length) }
Expand All @@ -199,7 +199,7 @@ internal func system_getsockopt(
internal func system_bind(
_ socket: CInt,
_ address: UnsafePointer<CInterop.SocketAddress>,
_ length: UInt32
_ length: socklen_t
) -> CInt {
#if ENABLE_MOCKING
if mockingEnabled { return _mock(socket, address, length) }
Expand Down Expand Up @@ -247,7 +247,7 @@ internal func system_getaddrinfo(

internal func system_getnameinfo(
_ sa: UnsafePointer<CInterop.SocketAddress>,
_ salen: UInt32,
_ salen: socklen_t,
_ host: UnsafeMutablePointer<CChar>?,
_ hostlen: socklen_t,
_ serv: UnsafeMutablePointer<CChar>?,
Expand Down Expand Up @@ -325,7 +325,7 @@ internal func system_sendto(
_ length: Int,
_ flags: CInt,
_ dest_addr: UnsafePointer<CInterop.SocketAddress>?,
_ dest_len: UInt32
_ dest_len: socklen_t
) -> Int {
#if ENABLE_MOCKING
if mockingEnabled {
Expand All @@ -341,7 +341,7 @@ internal func system_recvfrom(
_ length: Int,
_ flags: CInt,
_ address: UnsafeMutablePointer<CInterop.SocketAddress>?,
_ addres_len: UnsafeMutablePointer<UInt32>?
_ addres_len: UnsafeMutablePointer<socklen_t>?
) -> Int {
#if ENABLE_MOCKING
if mockingEnabled {
Expand Down Expand Up @@ -509,14 +509,14 @@ internal func system_link_ntoa(_ address: UnsafePointer<sockaddr_dl>) -> UnsafeM
}
#endif

internal func system_getsockname(_ fd: CInt, _ address: UnsafeMutablePointer<CInterop.SocketAddress>, _ length: UnsafeMutablePointer<UInt32>) -> CInt {
internal func system_getsockname(_ fd: CInt, _ address: UnsafeMutablePointer<CInterop.SocketAddress>, _ length: UnsafeMutablePointer<socklen_t>) -> CInt {
#if ENABLE_MOCKING
if mockingEnabled { return _mock(fd, address) }
#endif
return getsockname(fd, address, length)
}

internal func system_getpeername(_ fd: CInt, _ address: UnsafeMutablePointer<CInterop.SocketAddress>, _ length: UnsafeMutablePointer<UInt32>) -> CInt {
internal func system_getpeername(_ fd: CInt, _ address: UnsafeMutablePointer<CInterop.SocketAddress>, _ length: UnsafeMutablePointer<socklen_t>) -> CInt {
#if ENABLE_MOCKING
if mockingEnabled { return _mock(fd, address) }
#endif
Expand Down
Loading