Update starscream for new dep; add spm build
This commit is contained in:
		
							parent
							
								
									f00af67283
								
							
						
					
					
						commit
						781a9e32ca
					
				@ -12,4 +12,5 @@ before_install:
 | 
			
		||||
script:
 | 
			
		||||
  - xcodebuild -project Socket.IO-Client-Swift.xcodeproj -scheme SocketIO-Mac build-for-testing -quiet
 | 
			
		||||
  - xctool -project Socket.IO-Client-Swift.xcodeproj -scheme SocketIO-Mac run-tests --parallelize
 | 
			
		||||
  - swift build
 | 
			
		||||
#script: xcodebuild -project Socket.IO-Client-Swift.xcodeproj -scheme SocketIO-Mac build test
 | 
			
		||||
 | 
			
		||||
@ -25,19 +25,19 @@
 | 
			
		||||
//
 | 
			
		||||
//////////////////////////////////////////////////////////////////////////////////////////////////
 | 
			
		||||
import Foundation
 | 
			
		||||
import zlib
 | 
			
		||||
import CZLib
 | 
			
		||||
 | 
			
		||||
class Decompressor {
 | 
			
		||||
    private var strm = z_stream()
 | 
			
		||||
    private var buffer = [UInt8](repeating: 0, count: 0x2000)
 | 
			
		||||
    private var inflateInitialized = false
 | 
			
		||||
    private let windowBits:Int
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
    init?(windowBits:Int) {
 | 
			
		||||
        self.windowBits = windowBits
 | 
			
		||||
        guard initInflate() else { return nil }
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
    private func initInflate() -> Bool {
 | 
			
		||||
        if Z_OK == inflateInit2_(&strm, -CInt(windowBits),
 | 
			
		||||
                                 ZLIB_VERSION, CInt(MemoryLayout<z_stream>.size))
 | 
			
		||||
@ -47,59 +47,59 @@ class Decompressor {
 | 
			
		||||
        }
 | 
			
		||||
        return false
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
    func reset() throws {
 | 
			
		||||
        teardownInflate()
 | 
			
		||||
        guard initInflate() else { throw NSError() }
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
    func decompress(_ data: Data, finish: Bool) throws -> Data {
 | 
			
		||||
        return try data.withUnsafeBytes { (bytes:UnsafePointer<UInt8>) -> Data in
 | 
			
		||||
            return try decompress(bytes: bytes, count: data.count, finish: finish)
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
    func decompress(bytes: UnsafePointer<UInt8>, count: Int, finish: Bool) throws -> Data {
 | 
			
		||||
        var decompressed = Data()
 | 
			
		||||
        try decompress(bytes: bytes, count: count, out: &decompressed)
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        if finish {
 | 
			
		||||
            let tail:[UInt8] = [0x00, 0x00, 0xFF, 0xFF]
 | 
			
		||||
            try decompress(bytes: tail, count: tail.count, out: &decompressed)
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        return decompressed
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
    private func decompress(bytes: UnsafePointer<UInt8>, count: Int, out:inout Data) throws {
 | 
			
		||||
        var res:CInt = 0
 | 
			
		||||
        strm.next_in = UnsafeMutablePointer<UInt8>(mutating: bytes)
 | 
			
		||||
        strm.avail_in = CUnsignedInt(count)
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        repeat {
 | 
			
		||||
            strm.next_out = UnsafeMutablePointer<UInt8>(&buffer)
 | 
			
		||||
            strm.avail_out = CUnsignedInt(buffer.count)
 | 
			
		||||
            
 | 
			
		||||
 | 
			
		||||
            res = inflate(&strm, 0)
 | 
			
		||||
            
 | 
			
		||||
 | 
			
		||||
            let byteCount = buffer.count - Int(strm.avail_out)
 | 
			
		||||
            out.append(buffer, count: byteCount)
 | 
			
		||||
        } while res == Z_OK && strm.avail_out == 0
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        guard (res == Z_OK && strm.avail_out > 0)
 | 
			
		||||
            || (res == Z_BUF_ERROR && Int(strm.avail_out) == buffer.count)
 | 
			
		||||
            else {
 | 
			
		||||
                throw NSError(domain: WebSocket.ErrorDomain, code: Int(WebSocket.InternalErrorCode.compressionError.rawValue), userInfo: nil)
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
    private func teardownInflate() {
 | 
			
		||||
        if inflateInitialized, Z_OK == inflateEnd(&strm) {
 | 
			
		||||
            inflateInitialized = false
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
    deinit {
 | 
			
		||||
        teardownInflate()
 | 
			
		||||
    }
 | 
			
		||||
@ -110,12 +110,12 @@ class Compressor {
 | 
			
		||||
    private var buffer = [UInt8](repeating: 0, count: 0x2000)
 | 
			
		||||
    private var deflateInitialized = false
 | 
			
		||||
    private let windowBits:Int
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
    init?(windowBits: Int) {
 | 
			
		||||
        self.windowBits = windowBits
 | 
			
		||||
        guard initDeflate() else { return nil }
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
    private func initDeflate() -> Bool {
 | 
			
		||||
        if Z_OK == deflateInit2_(&strm, Z_DEFAULT_COMPRESSION, Z_DEFLATED,
 | 
			
		||||
                                 -CInt(windowBits), 8, Z_DEFAULT_STRATEGY,
 | 
			
		||||
@ -126,48 +126,48 @@ class Compressor {
 | 
			
		||||
        }
 | 
			
		||||
        return false
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
    func reset() throws {
 | 
			
		||||
        teardownDeflate()
 | 
			
		||||
        guard initDeflate() else { throw NSError() }
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
    func compress(_ data: Data) throws -> Data {
 | 
			
		||||
        var compressed = Data()
 | 
			
		||||
        var res:CInt = 0
 | 
			
		||||
        data.withUnsafeBytes { (ptr:UnsafePointer<UInt8>) -> Void in
 | 
			
		||||
            strm.next_in = UnsafeMutablePointer<UInt8>(mutating: ptr)
 | 
			
		||||
            strm.avail_in = CUnsignedInt(data.count)
 | 
			
		||||
            
 | 
			
		||||
 | 
			
		||||
            repeat {
 | 
			
		||||
                strm.next_out = UnsafeMutablePointer<UInt8>(&buffer)
 | 
			
		||||
                strm.avail_out = CUnsignedInt(buffer.count)
 | 
			
		||||
                
 | 
			
		||||
 | 
			
		||||
                res = deflate(&strm, Z_SYNC_FLUSH)
 | 
			
		||||
                
 | 
			
		||||
 | 
			
		||||
                let byteCount = buffer.count - Int(strm.avail_out)
 | 
			
		||||
                compressed.append(buffer, count: byteCount)
 | 
			
		||||
            }
 | 
			
		||||
                while res == Z_OK && strm.avail_out == 0
 | 
			
		||||
            
 | 
			
		||||
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        guard res == Z_OK && strm.avail_out > 0
 | 
			
		||||
            || (res == Z_BUF_ERROR && Int(strm.avail_out) == buffer.count)
 | 
			
		||||
            else {
 | 
			
		||||
                throw NSError(domain: WebSocket.ErrorDomain, code: Int(WebSocket.InternalErrorCode.compressionError.rawValue), userInfo: nil)
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        compressed.removeLast(4)
 | 
			
		||||
        return compressed
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
    private func teardownDeflate() {
 | 
			
		||||
        if deflateInitialized, Z_OK == deflateEnd(&strm) {
 | 
			
		||||
            deflateInitialized = false
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
    deinit {
 | 
			
		||||
        teardownDeflate()
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,7 @@
 | 
			
		||||
module zlib [system] {
 | 
			
		||||
module CZLib [system] {
 | 
			
		||||
    header "include.h"
 | 
			
		||||
    link "z"
 | 
			
		||||
    export *
 | 
			
		||||
}
 | 
			
		||||
module CommonCrypto [system] {
 | 
			
		||||
    header "include.h"
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user