smart_proxy_remote_execution_ssh 0.7.0 → 0.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 65bdd1bbf94900594e4a6acf2d3c1522e778dc7ca5eff5c70b085a5cf9b077c9
|
4
|
+
data.tar.gz: 7c1321bd2b69b5e4498df66b000814cffaffcc770220e09648c98534e60ce900
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 439a6ac3a27140f930a52806e6708d1961343de024b0b5398be70add77be7a0a095a609c03c282371e9c0f8f6dead04b906b9fcb64618463594e69e5ab2c0290
|
7
|
+
data.tar.gz: 54cfbbbc9001fef48bf7ea607ad68b507fcd5610213ec81e9176d705364b0c5f207fbaed441102a645d25f86ff3d2a653fdce69a019daf83f84e45fa6e098315
|
@@ -180,10 +180,11 @@ module Proxy::RemoteExecution
|
|
180
180
|
|
181
181
|
def inner_system_ssh_loop(out_buf, err_buf, in_buf, pid)
|
182
182
|
err_buf_raw = ''
|
183
|
-
readers = [buf_socket, out_buf, err_buf]
|
184
183
|
loop do
|
184
|
+
readers = [buf_socket, out_buf, err_buf].reject { |io| io.closed? }
|
185
|
+
writers = [buf_socket, in_buf].select { |io| io.pending_writes? }
|
185
186
|
# Prime the sockets for reading
|
186
|
-
ready_readers, ready_writers = IO.select(readers,
|
187
|
+
ready_readers, ready_writers = IO.select(readers, writers)
|
187
188
|
(ready_readers || []).each { |reader| reader.close if reader.fill.zero? }
|
188
189
|
|
189
190
|
proxy_data(out_buf, in_buf)
|
@@ -173,10 +173,14 @@ module Proxy::RemoteExecution
|
|
173
173
|
output.append(data)
|
174
174
|
end
|
175
175
|
|
176
|
+
def pending_writes?
|
177
|
+
output.length.positive?
|
178
|
+
end
|
179
|
+
|
176
180
|
# Sends as much of the pending output as possible. Returns +true+ if any
|
177
181
|
# data was sent, and +false+ otherwise.
|
178
182
|
def send_pending
|
179
|
-
if
|
183
|
+
if pending_writes?
|
180
184
|
sent = send(output.to_s, 0)
|
181
185
|
output.consume!(sent)
|
182
186
|
return sent.positive?
|
@@ -189,7 +193,7 @@ module Proxy::RemoteExecution
|
|
189
193
|
# buffer is empty.
|
190
194
|
def wait_for_pending_sends
|
191
195
|
send_pending
|
192
|
-
while
|
196
|
+
while pending_writes?
|
193
197
|
result = IO.select(nil, [self]) || next
|
194
198
|
next unless result[1].any?
|
195
199
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: smart_proxy_remote_execution_ssh
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ivan Nečas
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 1980-01-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -203,7 +203,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
203
203
|
- !ruby/object:Gem::Version
|
204
204
|
version: '0'
|
205
205
|
requirements: []
|
206
|
-
rubygems_version: 3.
|
206
|
+
rubygems_version: 3.2.26
|
207
207
|
signing_key:
|
208
208
|
specification_version: 4
|
209
209
|
summary: Ssh remote execution provider for Foreman Smart-Proxy
|