Skip to content

Commit

Permalink
Updated to new version.
Browse files Browse the repository at this point in the history
  • Loading branch information
dfirsht committed May 4, 2016
2 parents ada3ebe + d69cab1 commit ef517c6
Show file tree
Hide file tree
Showing 15 changed files with 187 additions and 147 deletions.
2 changes: 1 addition & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ branches:

notifications:
slack:
secure: "rbi1R2Icz5jsIo5YsFmRFyhjb+sJgAXHYQEdRE508oRjANhvOJ0JwIbDLLOT4w3lN1AAIWFaEP/el3UN9F/ZNCUqYiduXfpS3clagYVlG3gjFruLOnVIT85ubazYcLqMNvbhGRJvMyHUroCIIg3qPeCoF77UkA6WKhsgfbD1Oa6PkO+o1R4TAb2h5YUZbuvRan/4MUu6eSUj7bQ0qbB+viSAYDZCn0saMcj7v4n3HI+RiQkVN1HFkaSUBSRGLJYGd+kGwEAp3sqN0lSkAWPyteblzaXAvpobO+fQrTiBGVJoln+1ITesCvPMlEbXW2g+Yldb+wtr2dsDMLtcj7PVlKKanmEfz7bst0hw2SXShoarnW2LBo9AzQNpl/XF6GuGu3VT/KdP4M9hg6wuXCmmFSrPLM8mSdcenIlCOdO1h7nV+LRaSGLJzKIQGDUdFPpw6WoKJ/WKMWd7E6q9JLDffRY5C8IeekC7tLxMn5ZKMPZaM6yAzBkS/USlR34BuyrTQcvv707aJF/UaZXmhDZ72/3uN2zMdSpVWXVWwGmayRnDNrTeGe2wMe2AdnZC43V0MmS3a88AQGl3E1IDgrVBtIZJ0wTax/rCFU1ePNH/KErdFcaJ4s4v0Pv4WR4I2JYKQ6rSblV477DBi2ZJv+G/yaOXhwE+6gRqIHy73pG4YTU="
secure: "rbi1R2Icz5jsIo5YsFmRFyhjb+sJgAXHYQEdRE508oRjANhvOJ0JwIbDLLOT4w3lN1$
matrix:
include:
Expand Down
10 changes: 5 additions & 5 deletions Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,10 @@ import PackageDescription
let package = Package(
name: "Kitura-net",
dependencies: [
.Package(url: "https://github.com/IBM-Swift/Kitura-sys.git", majorVersion: 0, minor: 10),
.Package(url: "https://github.com/IBM-Swift/BlueSocket.git", majorVersion: 0, minor: 3),
.Package(url: "https://github.com/IBM-Swift/LoggerAPI.git", majorVersion: 0, minor: 4),
.Package(url: "https://github.com/IBM-Swift/CCurl.git", majorVersion: 0, minor: 0),
.Package(url: "https://github.com/IBM-Swift/CHttpParser.git", majorVersion: 0, minor: 0),
.Package(url: "https://github.com/IBM-Swift/Kitura-sys.git", majorVersion: 0, minor: 12),
.Package(url: "https://github.com/IBM-Swift/BlueSocket.git", majorVersion: 0, minor: 5),
.Package(url: "https://github.com/IBM-Swift/LoggerAPI.git", majorVersion: 0, minor: 5),
.Package(url: "https://github.com/IBM-Swift/CCurl.git", majorVersion: 0, minor: 1),
.Package(url: "https://github.com/IBM-Swift/CHttpParser.git", majorVersion: 0, minor: 1),
]
)
20 changes: 10 additions & 10 deletions Sources/KituraNet/BufferList.swift
Original file line number Diff line number Diff line change
Expand Up @@ -65,17 +65,17 @@ public class BufferList {
/// Parameter bytes: a pointer to the array
/// Parameter length: number of bytes in the array
///
public func appendBytes(bytes: UnsafePointer<UInt8>, length: Int) {
lclData!.appendBytes(bytes, length: length)
public func append(bytes: UnsafePointer<UInt8>, length: Int) {
lclData!.append(bytes, length: length)
}

///
/// Append data into BufferList
///
/// Parameter data: The data to append
///
public func appendData(data: NSData) {
lclData!.appendBytes(data.bytes, length: data.length)
public func append(data: NSData) {
lclData!.append(data.bytes, length: data.length)
}

///
Expand All @@ -85,10 +85,10 @@ public class BufferList {
///
/// - Returns:
///
public func fillArray(buffer: inout [UInt8]) -> Int {
public func fill(array: inout [UInt8]) -> Int {

let result = min(buffer.count, lclData!.length-byteIndex)
memcpy(UnsafeMutablePointer<UInt8>(buffer), lclData!.bytes+byteIndex, Int(result))
let result = min(array.count, lclData!.length-byteIndex)
memcpy(UnsafeMutablePointer<UInt8>(array), lclData!.bytes+byteIndex, Int(result))
byteIndex += result

return result
Expand All @@ -103,7 +103,7 @@ public class BufferList {
///
/// - Returns:
///
public func fillBuffer(buffer: UnsafeMutablePointer<UInt8>, length: Int) -> Int {
public func fill(buffer: UnsafeMutablePointer<UInt8>, length: Int) -> Int {

let result = min(length, lclData!.length-byteIndex)
memcpy(buffer, lclData!.bytes+byteIndex, Int(result))
Expand All @@ -120,10 +120,10 @@ public class BufferList {
///
/// - Returns:
///
public func fillData(data: NSMutableData) -> Int {
public func fill(data: NSMutableData) -> Int {

let result = lclData!.length-byteIndex
data.appendBytes(lclData!.bytes+byteIndex, length: result)
data.append(lclData!.bytes+byteIndex, length: result)
byteIndex += result
return result

Expand Down
50 changes: 28 additions & 22 deletions Sources/KituraNet/ClientRequest.swift
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ public class ClientRequest: SocketWriter {
///
/// List of header information
///
private var headersList: UnsafeMutablePointer<curl_slist> = nil
private var headersList: UnsafeMutablePointer<curl_slist>?

///
/// BufferList to store bytes to be written
Expand Down Expand Up @@ -192,7 +192,7 @@ public class ClientRequest: SocketWriter {
///
public func write(from data: NSData) {

writeBuffers.appendData(data)
writeBuffers.append(data: data)

}

Expand All @@ -201,7 +201,7 @@ public class ClientRequest: SocketWriter {
///
/// - Parameter data: string to send before ending
///
public func end(data: String) {
public func end(_ data: String) {

write(from: data)
end()
Expand All @@ -213,7 +213,7 @@ public class ClientRequest: SocketWriter {
///
/// - Parameter data: data to send before ending
///
public func end(data: NSData) {
public func end(_ data: NSData) {

write(from: data)
end()
Expand Down Expand Up @@ -276,7 +276,7 @@ public class ClientRequest: SocketWriter {
///
/// Parameter urlBuf: ???
///
private func prepareHandle(urlBuf: NSData) {
private func prepareHandle(_ urlBuf: NSData) {

handle = curl_easy_init()
// HTTP parser does the decoding
Expand All @@ -288,14 +288,18 @@ public class ClientRequest: SocketWriter {
curlHelperSetOptInt(handle!, CURLOPT_POSTFIELDSIZE, count)
}
setupHeaders()

let emptyCstring = StringUtils.toNullTerminatedUtf8String("")!
curlHelperSetOptString(handle!, CURLOPT_COOKIEFILE, UnsafeMutablePointer<Int8>(emptyCstring.bytes))

// To see the messages sent by libCurl, uncomment the next line of code
//curlHelperSetOptInt(handle, CURLOPT_VERBOSE, 1)
}

///
/// Sets the HTTP method in libCurl to the one specified in method
///
private func setMethod() {

let methodUpperCase = method.uppercased()
switch(methodUpperCase) {
case "GET":
Expand All @@ -304,18 +308,20 @@ public class ClientRequest: SocketWriter {
curlHelperSetOptBool(handle!, CURLOPT_POST, CURL_TRUE)
case "PUT":
curlHelperSetOptBool(handle!, CURLOPT_PUT, CURL_TRUE)
case "HEAD":
curlHelperSetOptBool(handle!, CURLOPT_NOBODY, CURL_TRUE)
default:
let methodCstring = StringUtils.toNullTerminatedUtf8String(methodUpperCase)!
curlHelperSetOptString(handle!, CURLOPT_CUSTOMREQUEST, UnsafeMutablePointer<Int8>(methodCstring.bytes))
}

}

///
/// Sets the headers in libCurl to the ones in headers
/// Sets the headers in libCurl to the ones in headers
///
private func setupHeaders() {

for (headerKey, headerValue) in headers {
let headerString = StringUtils.toNullTerminatedUtf8String("\(headerKey): \(headerValue)")
if let headerString = headerString {
Expand All @@ -333,16 +339,16 @@ extension ClientRequest: CurlInvokerDelegate {

///
///
private func curlWriteCallback(buf: UnsafeMutablePointer<Int8>, size: Int) -> Int {
private func curlWriteCallback(_ buf: UnsafeMutablePointer<Int8>, size: Int) -> Int {

response.responseBuffers.appendBytes(UnsafePointer<UInt8>(buf), length: size)
response.responseBuffers.append(bytes: UnsafePointer<UInt8>(buf), length: size)
return size

}

private func curlReadCallback(buf: UnsafeMutablePointer<Int8>, size: Int) -> Int {
private func curlReadCallback(_ buf: UnsafeMutablePointer<Int8>, size: Int) -> Int {

let count = writeBuffers.fillBuffer(UnsafeMutablePointer<UInt8>(buf), length: size)
let count = writeBuffers.fill(buffer: UnsafeMutablePointer<UInt8>(buf), length: size)
return count

}
Expand Down Expand Up @@ -421,7 +427,7 @@ private class CurlInvoker {
rc = curl_easy_perform(handle)

if rc == CURLE_OK {
var redirectUrl: UnsafeMutablePointer<Int8> = nil
var redirectUrl: UnsafeMutablePointer<Int8>? = nil
let infoRc = curlHelperGetInfoCString(handle, CURLINFO_REDIRECT_URL, &redirectUrl)
if infoRc == CURLE_OK {
if redirectUrl != nil {
Expand All @@ -447,18 +453,18 @@ private class CurlInvoker {
///
/// - Parameter ptr: pointer to the CurlInvokerDelegate
///
private func prepareHandle(ptr: UnsafeMutablePointer<CurlInvokerDelegate?>) {
private func prepareHandle(_ ptr: UnsafeMutablePointer<CurlInvokerDelegate?>) {

curlHelperSetOptReadFunc(handle, ptr) { (buf: UnsafeMutablePointer<Int8>, size: Int, nMemb: Int, privateData: UnsafeMutablePointer<Void>) -> Int in
curlHelperSetOptReadFunc(handle, ptr) { (buf: UnsafeMutablePointer<Int8>!, size: Int, nMemb: Int, privateData: UnsafeMutablePointer<Void>!) -> Int in

let p = UnsafePointer<CurlInvokerDelegate?>(privateData)
return (p.pointee?.curlReadCallback(buf, size: size*nMemb))!
return (p?.pointee?.curlReadCallback(buf, size: size*nMemb))!
}

curlHelperSetOptWriteFunc(handle, ptr) { (buf: UnsafeMutablePointer<Int8>, size: Int, nMemb: Int, privateData: UnsafeMutablePointer<Void>) -> Int in
curlHelperSetOptWriteFunc(handle, ptr) { (buf: UnsafeMutablePointer<Int8>!, size: Int, nMemb: Int, privateData: UnsafeMutablePointer<Void>!) -> Int in

let p = UnsafePointer<CurlInvokerDelegate?>(privateData)
return (p.pointee?.curlWriteCallback(buf, size: size*nMemb))!
return (p?.pointee?.curlWriteCallback(buf, size: size*nMemb))!
}
}

Expand All @@ -469,8 +475,8 @@ private class CurlInvoker {
///
private protocol CurlInvokerDelegate: class {

func curlWriteCallback(buf: UnsafeMutablePointer<Int8>, size: Int) -> Int
func curlReadCallback(buf: UnsafeMutablePointer<Int8>, size: Int) -> Int
func curlWriteCallback(_ buf: UnsafeMutablePointer<Int8>, size: Int) -> Int
func curlReadCallback(_ buf: UnsafeMutablePointer<Int8>, size: Int) -> Int
func prepareForRedirect()

}
4 changes: 2 additions & 2 deletions Sources/KituraNet/ClientResponse.swift
Original file line number Diff line number Diff line change
Expand Up @@ -67,9 +67,9 @@ extension ClientResponse: IncomingMessageHelper {
///
/// - Returns: ???
///
func readDataHelper(data: NSMutableData) -> Int {
func readHelper(into data: NSMutableData) -> Int {

return responseBuffers.fillData(data)
return responseBuffers.fill(data: data)

}

Expand Down
8 changes: 4 additions & 4 deletions Sources/KituraNet/Http.swift
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ public class Http {
///
/// - Returns: a ClientRequest instance
///
public static func request(url: String, callback: ClientRequestCallback) -> ClientRequest {
public static func request(_ url: String, callback: ClientRequestCallback) -> ClientRequest {

return ClientRequest(url: url, callback: callback)

Expand All @@ -76,7 +76,7 @@ public class Http {
///
/// - Returns: a ClientRequest instance
///
public static func request(options: [ClientRequestOptions], callback: ClientRequestCallback) -> ClientRequest {
public static func request(_ options: [ClientRequestOptions], callback: ClientRequestCallback) -> ClientRequest {

return ClientRequest(options: options, callback: callback)

Expand All @@ -91,7 +91,7 @@ public class Http {
///
/// - Returns: a ClientRequest instance
///
public static func get(url: String, callback: ClientRequestCallback) -> ClientRequest {
public static func get(_ url: String, callback: ClientRequestCallback) -> ClientRequest {

let req = ClientRequest(url: url, callback: callback)
req.end()
Expand All @@ -114,7 +114,7 @@ public class Http {
/// *Note*: URLS can only be sent over the Internet using the ASCII character set, so character escaping will
/// transform unsafe ASCII characters with a '%' followed by two hexadecimal digits.
///
public static func escapeUrl(url: String) -> String {
public static func escapeUrl(_ url: String) -> String {

#if os(Linux)
if let escaped = url.bridge().stringByAddingPercentEncodingWithAllowedCharacters(allowedCharacterSet) {
Expand Down
26 changes: 13 additions & 13 deletions Sources/KituraNet/HttpParser/HttpParser.swift
Original file line number Diff line number Diff line change
Expand Up @@ -68,28 +68,28 @@ class HttpParser {
settings.on_url = { (parser, chunk, length) -> Int32 in
let p = UnsafePointer<HttpParserDelegate?>(parser.pointee.data)
let data = NSData(bytes: chunk, length: length)
p.pointee?.onUrl(data)
p?.pointee?.onUrl(data)
return 0
}

settings.on_header_field = { (parser, chunk, length) -> Int32 in
let data = NSData(bytes: chunk, length: length)
let p = UnsafePointer<HttpParserDelegate?>(parser.pointee.data)
p.pointee?.onHeaderField(data)
p?.pointee?.onHeaderField(data)
return 0
}

settings.on_header_value = { (parser, chunk, length) -> Int32 in
let data = NSData(bytes: chunk, length: length)
let p = UnsafePointer<HttpParserDelegate?>(parser.pointee.data)
p.pointee?.onHeaderValue(data)
p?.pointee?.onHeaderValue(data)
return 0
}

settings.on_body = { (parser, chunk, length) -> Int32 in
let p = UnsafePointer<HttpParserDelegate?>(parser.pointee.data)
let data = NSData(bytes: chunk, length: length)
p.pointee?.onBody(data)
p?.pointee?.onBody(data)

return 0
}
Expand All @@ -105,26 +105,26 @@ class HttpParser {
message += String(UnicodeScalar(UInt8((po+i).pointee)))
i += 1
}
p.pointee?.onHeadersComplete(message, versionMajor: parser.pointee.http_major,
p?.pointee?.onHeadersComplete(method: message, versionMajor: parser.pointee.http_major,
versionMinor: parser.pointee.http_minor)

return 0
}

settings.on_message_begin = { (parser) -> Int32 in
let p = UnsafePointer<HttpParserDelegate?>(parser.pointee.data)
p.pointee?.onMessageBegin()
p?.pointee?.onMessageBegin()

return 0
}

settings.on_message_complete = { (parser) -> Int32 in
let p = UnsafePointer<HttpParserDelegate?>(parser.pointee.data)
if get_status_code(parser) == 100 {
p.pointee?.reset()
p?.pointee?.reset()
}
else {
p.pointee?.onMessageComplete()
p?.pointee?.onMessageComplete()
}

return 0
Expand All @@ -142,7 +142,7 @@ class HttpParser {
///
/// - Returns: ???
///
func execute (data: UnsafePointer<Int8>, length: Int) -> (Int, UInt32) {
func execute (_ data: UnsafePointer<Int8>, length: Int) -> (Int, UInt32) {
let nparsed = http_parser_execute(&parser, &settings, data, length)
let upgrade = get_upgrade_value(&parser)
return (nparsed, upgrade)
Expand All @@ -154,13 +154,13 @@ class HttpParser {
///
protocol HttpParserDelegate: class {

func onUrl(url:NSData)
func onHeaderField(data: NSData)
func onHeaderValue(data: NSData)
func onUrl(_ url:NSData)
func onHeaderField(_ data: NSData)
func onHeaderValue(_ data: NSData)
func onHeadersComplete(method: String, versionMajor: UInt16, versionMinor: UInt16)
func onMessageBegin()
func onMessageComplete()
func onBody(body: NSData)
func onBody(_ body: NSData)
func reset()

}
Loading

0 comments on commit ef517c6

Please sign in to comment.