Skip to content

Commit 10287d5

Browse files
committed
fix
1 parent 0460957 commit 10287d5

File tree

2 files changed

+13
-18
lines changed

2 files changed

+13
-18
lines changed

src/SSH.swift

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -162,8 +162,5 @@ public class SSH {
162162
}
163163
}
164164

165-
166-
deinit {
167-
168-
}
165+
deinit {}
169166
}

src/Session.swift

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,13 @@ public extension SSH {
2828
/// 该方法是检查后会释放会话
2929
/// - Returns: 如果服务器响应包含有效的SSH版本字符串,则返回true,否则返回false
3030
func checkServerAvaila() async -> Bool {
31-
await call {
32-
defer {
33-
self.close()
34-
}
31+
guard await connect() else {
32+
return false
33+
}
34+
defer {
35+
self.close(.socket)
36+
}
37+
return await call {
3538
guard var c = "SSH-2.0-SSH2.app".trimmingCharacters(in: .whitespacesAndNewlines).data(using: .ascii) else {
3639
return false
3740
}
@@ -44,21 +47,16 @@ public extension SSH {
4447
defer {
4548
buffer.deallocate()
4649
}
47-
for _ in 0 ... 255 {
50+
for _ in 0 ... 3 {
4851
guard io.read(self.sockfd, buffer, 1) == 1 else {
4952
return false
5053
}
51-
guard buffer.pointee != 0x0A else {
52-
break
53-
}
5454
data.append(buffer, count: 1)
5555
}
56-
if data.count > 0, data.last == 0x0D {
57-
data = data[0 ... data.count - 1]
58-
}
59-
guard let versionString = String(data: data, encoding: .ascii), versionString.hasPrefix("SSH-") else {
56+
guard let versionString = String(data: data, encoding: .ascii), versionString == "SSH-" else {
6057
return false
6158
}
59+
print(versionString)
6260
return true
6361
}
6462
}
@@ -86,7 +84,7 @@ public extension SSH {
8684
}
8785
SSH.getSSH(from: sess)?.trace(message: message, messageLen: messageLen)
8886
}
89-
87+
9088
libssh2_init(0)
9189
rawSession = libssh2_session_init_ex(nil, nil, nil, Unmanaged.passUnretained(self).toOpaque())
9290

@@ -101,7 +99,7 @@ public extension SSH {
10199
libssh2_session_flag(rawSession, LIBSSH2_FLAG_SIGPIPE, 1)
102100
libssh2_session_flag(rawSession, LIBSSH2_FLAG_QUOTE_PATHS, 1)
103101

104-
// libssh2_session_set_read_timeout(self.rawSession, self.timeout)
102+
libssh2_session_set_timeout(rawSession, timeout * 1000)
105103
// libssh2_session_set_timeout(self.rawSession, self.timeout)
106104

107105
libssh2_session_banner_set(rawSession, banner.isEmpty ? "SSH-2.0-libssh2_SSH2.app" : banner)

0 commit comments

Comments
 (0)