瀏覽代碼

Merge pull request #269 from RobotsAndPencils/sendFileSIGPIPE

Fix SIGPIPE in sendFile
Damian Kołakowski 8 年之前
父節點
當前提交
61c82340ba
共有 2 個文件被更改,包括 2 次插入2 次删除
  1. 1 1
      Sources/Socket+File.swift
  2. 1 1
      Sources/Socket.swift

+ 1 - 1
Sources/Socket+File.swift

@@ -19,7 +19,7 @@ import Foundation
             }
             var writeCounter = 0
             while writeCounter < readResult {
-                let writeResult = write(target, &buffer + writeCounter, readResult - writeCounter)
+                let writeResult = send(target, &buffer + writeCounter, readResult - writeCounter, Int32(MSG_NOSIGNAL))
                 guard writeResult > 0 else {
                     return Int32(writeResult)
                 }

+ 1 - 1
Sources/Socket.swift

@@ -113,7 +113,7 @@ open class Socket: Hashable, Equatable {
     
     open func read() throws -> UInt8 {
         var buffer = [UInt8](repeating: 0, count: 1)
-        let next = recv(self.socketFileDescriptor as Int32, &buffer, Int(buffer.count), 0)
+        let next = recv(self.socketFileDescriptor as Int32, &buffer, Int(buffer.count), Int32(MSG_NOSIGNAL))
         if next <= 0 {
             throw SocketError.recvFailed(Errno.description())
         }