Просмотр исходного кода

Fixed pointer operations in Socket (Xcode10 compilation) (#318)

* Fixed pointer operations in Socket.

* Fixed pointer operations in Socket for Linux.
Semyen Ignatov 8 лет назад
Родитель
Сommit
b366f5ed08
1 измененных файлов с 4 добавлено и 3 удалено
  1. 4 3
      Sources/Socket.swift

+ 4 - 3
Sources/Socket.swift

@@ -53,10 +53,11 @@ open class Socket: Hashable, Equatable {
             if getsockname(socketFileDescriptor, UnsafeMutablePointer(OpaquePointer(pointer)), &len) != 0 {
             if getsockname(socketFileDescriptor, UnsafeMutablePointer(OpaquePointer(pointer)), &len) != 0 {
                 throw SocketError.getSockNameFailed(Errno.description())
                 throw SocketError.getSockNameFailed(Errno.description())
             }
             }
+            let sin_port = pointer.pointee.sin_port
             #if os(Linux)
             #if os(Linux)
-                return ntohs(addr.sin_port)
+                return ntohs(sin_port)
             #else
             #else
-                return Int(OSHostByteOrder()) != OSLittleEndian ? addr.sin_port.littleEndian : addr.sin_port.bigEndian
+                return Int(OSHostByteOrder()) != OSLittleEndian ? sin_port.littleEndian : sin_port.bigEndian
             #endif
             #endif
         }
         }
     }
     }
@@ -68,7 +69,7 @@ open class Socket: Hashable, Equatable {
             if getsockname(socketFileDescriptor, UnsafeMutablePointer(OpaquePointer(pointer)), &len) != 0 {
             if getsockname(socketFileDescriptor, UnsafeMutablePointer(OpaquePointer(pointer)), &len) != 0 {
                 throw SocketError.getSockNameFailed(Errno.description())
                 throw SocketError.getSockNameFailed(Errno.description())
             }
             }
-            return Int32(addr.sin_family) == AF_INET
+            return Int32(pointer.pointee.sin_family) == AF_INET
         }
         }
     }
     }