Skip to content

Commit fb36b59

Browse files
committed
fixup tunnel
1 parent 6398b00 commit fb36b59

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

Coder Desktop/VPN/TunnelHandle.swift

+12-3
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,17 @@ actor TunnelHandle {
1414
var readFD: Int32 { tunnelWritePipe.fileHandleForReading.fileDescriptor }
1515

1616
init(dylibPath: URL) throws(TunnelHandleError) {
17-
dylibHandle = dlopen(dylibPath.path, RTLD_NOW | RTLD_LOCAL)
17+
guard let dylibHandle = dlopen(dylibPath.path, RTLD_NOW | RTLD_LOCAL) else {
18+
var errStr = "UNKNOWN"
19+
let e = dlerror()
20+
if e != nil {
21+
errStr = String(cString: e!)
22+
}
23+
throw .dylib(errStr)
24+
}
25+
self.dylibHandle = dylibHandle
1826

19-
let startSym = dlsym(dylibHandle, startSymbol)
20-
guard startSym != nil else {
27+
guard let startSym = dlsym(dylibHandle, startSymbol) else {
2128
var errStr = "UNKNOWN"
2229
let e = dlerror()
2330
if e != nil {
@@ -41,11 +48,13 @@ actor TunnelHandle {
4148
}
4249

4350
enum TunnelHandleError: Error {
51+
case dylib(String)
4452
case symbol(String, String)
4553
case openTunnel(OpenTunnelError)
4654

4755
var description: String {
4856
switch self {
57+
case let .dylib(d): return d
4958
case let .symbol(symbol, message): return "\(symbol): \(message)"
5059
case let .openTunnel(error): return "OpenTunnel: \(error.message)"
5160
}

0 commit comments

Comments
 (0)