Skip to content

Commit 8666af5

Browse files
authored
Fix Windows build for NIOCore. (#2938)
Fix build failures in `NIOCore` on Windows. ### Motivation: I'd like it to build on Windows. ### Modifications: * Add missing `WinSDK` imports. * Add missing `#elseif os(Windows)` branch for UDP. ### Result: ``` c:\users\jeff\src\swift-nio> swift build -Xcc -DBYTE_ORDER=LITTLE_ENDIAN --target NIOCore Building for debugging... [1/1] Write auxiliary file c:\users\jeff\src\swift-nio\.build\x86_64-unknown-windows-msvc\debug\swift-version--15FA6356563A8EA6.txt Build of target: 'NIOCore' complete! (1.14s) ```
1 parent 49cd78b commit 8666af5

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

Sources/NIOCore/BSDSocketAPI.swift

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import ucrt
1818
import let WinSDK.IPPROTO_IP
1919
import let WinSDK.IPPROTO_IPV6
2020
import let WinSDK.IPPROTO_TCP
21+
import let WinSDK.IPPROTO_UDP
2122

2223
import let WinSDK.IP_ADD_MEMBERSHIP
2324
import let WinSDK.IP_DROP_MEMBERSHIP
@@ -40,12 +41,14 @@ import let WinSDK.PF_INET
4041
import let WinSDK.PF_INET6
4142
import let WinSDK.PF_UNIX
4243

44+
import let WinSDK.SO_BROADCAST
4345
import let WinSDK.SO_ERROR
4446
import let WinSDK.SO_KEEPALIVE
4547
import let WinSDK.SO_LINGER
4648
import let WinSDK.SO_RCVBUF
4749
import let WinSDK.SO_RCVTIMEO
4850
import let WinSDK.SO_REUSEADDR
51+
import let WinSDK.SO_SNDBUF
4952

5053
import let WinSDK.SOL_SOCKET
5154

@@ -282,6 +285,9 @@ extension NIOBSDSocket.OptionLevel {
282285
#if os(Linux) || os(Android)
283286
public static let udp: NIOBSDSocket.OptionLevel =
284287
NIOBSDSocket.OptionLevel(rawValue: CInt(IPPROTO_UDP))
288+
#elseif os(Windows)
289+
public static let udp: NIOBSDSocket.OptionLevel =
290+
NIOBSDSocket.OptionLevel(rawValue: IPPROTO_UDP.rawValue)
285291
#else
286292
public static let udp: NIOBSDSocket.OptionLevel =
287293
NIOBSDSocket.OptionLevel(rawValue: IPPROTO_UDP)

0 commit comments

Comments
 (0)