diff --git a/.swift-version b/.swift-version index f2c6cb6..819e07a 100644 --- a/.swift-version +++ b/.swift-version @@ -1 +1 @@ -4.2.3 +5.0 diff --git a/.travis.yml b/.travis.yml index b0bd850..6ef0c53 100644 --- a/.travis.yml +++ b/.travis.yml @@ -25,17 +25,17 @@ matrix: dist: xenial sudo: required services: docker - env: DOCKER_IMAGE=swift:4.2.3 + env: DOCKER_IMAGE=swift:4.2.4 SWIFT_SNAPSHOT=4.2.4 - os: linux dist: xenial sudo: required services: docker - env: DOCKER_IMAGE=swift:4.2.3 SWIFT_SNAPSHOT=$SWIFT_DEVELOPMENT_SNAPSHOT + env: DOCKER_IMAGE=swift:5.0-xenial - os: linux dist: xenial sudo: required services: docker - env: DOCKER_IMAGE=ubuntu:18.04 + env: DOCKER_IMAGE=swift:5.0 SWIFT_SNAPSHOT=$SWIFT_DEVELOPMENT_SNAPSHOT - os: osx osx_image: xcode9.2 sudo: required @@ -43,12 +43,16 @@ matrix: - os: osx osx_image: xcode9.4 sudo: required - env: SWIFT_SNAPSHOT=4.1.2 + env: SWIFT_SNAPSHOT=4.1.2 JAZZY_ELIGIBLE=true - os: osx osx_image: xcode10.1 sudo: required + env: SWIFT_SNAPSHOT=4.2.1 - os: osx - osx_image: xcode10.1 + osx_image: xcode10.2 + sudo: required + - os: osx + osx_image: xcode10.2 sudo: required env: SWIFT_SNAPSHOT=$SWIFT_DEVELOPMENT_SNAPSHOT diff --git a/Package.swift b/Package.swift index 434b993..9e79cf8 100644 --- a/Package.swift +++ b/Package.swift @@ -1,7 +1,7 @@ -// swift-tools-version:4.0 +// swift-tools-version:5.0 /** - * Copyright IBM Corporation 2017, 2018 + * Copyright IBM Corporation 2017-2019 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Package@swift-4.swift b/Package@swift-4.swift new file mode 100644 index 0000000..434b993 --- /dev/null +++ b/Package@swift-4.swift @@ -0,0 +1,44 @@ +// swift-tools-version:4.0 + +/** + * Copyright IBM Corporation 2017, 2018 + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + **/ + +import PackageDescription + +#if os(Linux) || os(macOS) || os(iOS) || os(tvOS) +let package = Package( + name: "Socket", + products: [ + .library( + name: "Socket", + targets: ["Socket"]), + ], + dependencies: [], + targets: [ + .target( + name: "Socket", + dependencies: [], + exclude: ["BlueSocket.xcodeproj", "BlueSocket.xcworkspace", "README.md", "Sources/Info.plist", "Sources/Socket.h"] + ), + .testTarget( + name: "SocketTests", + dependencies: ["Socket"] + ), + ] +) +#else +fatalError("Unsupported OS") +#endif diff --git a/Sources/Socket/Socket.swift b/Sources/Socket/Socket.swift index 073f3af..49beddb 100644 --- a/Sources/Socket/Socket.swift +++ b/Sources/Socket/Socket.swift @@ -3064,11 +3064,17 @@ public class Socket: SocketReader, SocketWriter { if data.count == 0 { return 0 } - +#if swift(>=5.0) + return try data.withUnsafeBytes() { [unowned self] (buffer: UnsafeRawBufferPointer) throws -> Int in + return try self.write(from: buffer.baseAddress!, bufSize: data.count) + } +#else return try data.withUnsafeBytes() { [unowned self] (buffer: UnsafePointer) throws -> Int in return try self.write(from: buffer, bufSize: data.count) } +#endif + } /// @@ -3193,10 +3199,16 @@ public class Socket: SocketReader, SocketWriter { @discardableResult public func write(from data: Data, to address: Address) throws -> Int { // Send the bytes... +#if swift(>=5.0) + return try data.withUnsafeBytes() { [unowned self] (buffer: UnsafeRawBufferPointer) throws -> Int in + return try self.write(from: buffer.baseAddress!, bufSize: data.count, to: address) + } +#else return try data.withUnsafeBytes() { [unowned self] (buffer: UnsafePointer) throws -> Int in return try self.write(from: buffer, bufSize: data.count, to: address) } +#endif } ///