net-ssh-telnet 0.0.2 → 0.2.0

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 00bb9ece1f4ba5a748bc3c1c7f6a65f386c76543
4
+ data.tar.gz: 9af12f0b2318c4e1123ead13004f7223974bb9ce
5
+ SHA512:
6
+ metadata.gz: 1d6d0b0c1a9b38d5f96f0f89d4b556c69621a768629625dc3e70c7709a75819fdd480b218a9db10c2a3f53cac5a33152e4d002494a996431aec0a45edd707baf
7
+ data.tar.gz: e148e3bae70620f0413b1cab661a1b35473c8bed1e596ae5f32b92bac142bc30b8735477f49f7dbd1ccc6117e22c30433e76e1f549100f79ac7e4b7a669c6b76
data/.gitignore ADDED
@@ -0,0 +1,8 @@
1
+ examples/dump.log
2
+ examples/output.log
3
+ pkg
4
+ doc
5
+ *.swp
6
+ /.yardoc
7
+ /.bundle
8
+ /Gemfile.lock
data/.yardopts ADDED
@@ -0,0 +1 @@
1
+ - History.txt
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in golden_gate.gemspec
4
+ gemspec
data/History.txt CHANGED
@@ -1,8 +1,19 @@
1
+ === 0.2.0 / 2017-01-16
2
+ * Add option to change prompt after initialization
3
+ * Cleanup requires for gemspec
4
+
5
+ === 0.1.1 / 2016-05-06
6
+ * Apply fix to race condition during initialization from lumean
7
+
8
+ === 0.1.0 / 2016-02-09
9
+ * Fixed 'Timeout' and 'Waittime' options
10
+ * Fork to net-ssh-telnet2
11
+
1
12
  === 0.0.2 / 2009-03-15
2
13
 
3
14
  * 4 bugfixes from Brian Candler
4
- * Bug in original Net::Telnet EOL translation
5
- (http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-core/16599)
15
+ * Bug in original Net::Telnet EOL translation
16
+ (http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-core/16599)
6
17
  duplicate the fix.
7
18
  * Remove rubygems require.
8
19
  * Handle EOF more gracefully.
data/README.txt CHANGED
@@ -1,7 +1,7 @@
1
1
  = net-ssh-telnet
2
2
 
3
- * http://net-ssh-telnet.rubyforge.org
4
- * mailto:mkent@magoazul.com
3
+ * https://github.com/duke-automation/net-ssh-telnet
4
+ * mailto:sean@duke.edu
5
5
 
6
6
  == DESCRIPTION:
7
7
 
@@ -20,7 +20,7 @@ Please see Net::Telnet for main documentation (included with ruby stdlib).
20
20
 
21
21
  == REQUIREMENTS:
22
22
 
23
- * net-ssh >= 2.0.1
23
+ * net-ssh >= 2.0.1
24
24
 
25
25
  == INSTALL:
26
26
 
@@ -33,6 +33,7 @@ Please see Net::Telnet for main documentation (included with ruby stdlib).
33
33
  Based on code in net/telnet.rb by Wakou Aoyama <wakou@ruby-lang.org>
34
34
  Modified to work with Net::SSH by Brian Candler <b.candler@pobox.com>
35
35
  Additional Net::SSH v2 modifications by Matthew Kent <matt@bravenet.com>
36
+ Additional Net::SSH v2 modifications by Sean Dilda <sean@duke.edu>
36
37
 
37
38
  Permission is hereby granted, free of charge, to any person obtaining
38
39
  a copy of this software and associated documentation files (the
data/Rakefile CHANGED
@@ -1,14 +1 @@
1
- # -*- ruby -*-
2
-
3
- require 'rubygems'
4
- require 'hoe'
5
- $:.unshift(File.dirname(__FILE__) + "/lib")
6
- require 'net/ssh/telnet'
7
-
8
- Hoe.new('net-ssh-telnet', Net::SSH::Telnet::VERSION) do |p|
9
- p.developer('Matthew Kent', 'matt@bravenet.com')
10
- p.extra_deps << ['net-ssh', '>= 2.0.1']
11
- p.remote_rdoc_dir = ''
12
- end
13
-
14
- # vim: syntax=Ruby
1
+ require "bundler/gem_tasks"
@@ -1,5 +1,5 @@
1
1
  require 'net/ssh'
2
-
2
+
3
3
  module Net
4
4
  module SSH
5
5
 
@@ -8,13 +8,12 @@ module SSH
8
8
  # Provides a simple send/expect interface with an API almost
9
9
  # identical to Net::Telnet. Please see Net::Telnet for main documentation.
10
10
  # Only the differences are documented here.
11
-
11
+
12
12
  class Telnet
13
13
 
14
14
  CR = "\015"
15
15
  LF = "\012"
16
16
  EOL = CR + LF
17
- VERSION = '0.0.2'
18
17
 
19
18
  # Wrapper to emulate the behaviour of Net::Telnet "Proxy" option, where
20
19
  # the user passes in an already-open socket
@@ -37,10 +36,10 @@ module SSH
37
36
  # as shown below.
38
37
  #
39
38
  # Note that unlike Net::Telnet there is no preprocess method automatically
40
- # setting up options related to proper character translations, so if your
41
- # remote ptty is configured differently than the typical linux one you may
42
- # need to pass in a different terminator or call 'stty' remotely to set it
43
- # into an expected mode. This is better explained by the author of perl's
39
+ # setting up options related to proper character translations, so if your
40
+ # remote ptty is configured differently than the typical linux one you may
41
+ # need to pass in a different terminator or call 'stty' remotely to set it
42
+ # into an expected mode. This is better explained by the author of perl's
44
43
  # Net::SSH::Expect here:
45
44
  #
46
45
  # http://search.cpan.org/~bnegrao/Net-SSH-Expect-1.04/lib/Net/SSH/Expect.pod
@@ -135,7 +134,26 @@ module SSH
135
134
  # )
136
135
  # puts "Logged in"
137
136
  # puts s.cmd("show alerts")
138
-
137
+ #
138
+ # New objects take a +option+ hash to set default settings. The keys for this options hash
139
+ # are all strings. A block can also be passed to constructor which will get executed after
140
+ # the first prompt is found.
141
+ #
142
+ # ==== Hash Parameters
143
+ #
144
+ # * <tt>"Host"</tt> - a string to define the hostname to connect to(Default: "localhost")
145
+ # * <tt>"Port"</tt> - port number to connect to(Default: 22)
146
+ # * <tt>"Prompt"</tt> - a regular expression to define the the prompt to expect(Default: /[$%#>] \z/n )
147
+ # * <tt>"Timeout"</tt> - the time out value passed on to Net::Ssh - also the default value for #waitfor(Default: 10)
148
+ # * <tt>"Waittime"</tt> - Max time to wait after a possible prompt it seen to make sure more data isn't coming(Default: 0)
149
+ # * <tt>"Terminator"</tt> - This value is appended to all strings that are sent to #print.(Default: LF)
150
+ # * <tt>"Binmode"</tt> - Enable binary mode.(Default: false)
151
+ # * <tt>"Output_log"</tt> - A file name to open as an output log.
152
+ # * <tt>"Dump_log"</tt> - A file name to open to dump the entire session to.
153
+ # * <tt>"Session"</tt> - An existing Net::Ssh object for Net::Ssh::Telnet to use as its connection(See example 1)
154
+ # * <tt>"Proxy"</tt> - An open IO object to use as a Proxy(See example 3)
155
+ # * <tt>"Factory"</tt> - A connection factory to use to establish the connection. Net::Ssh::Telnet will call #open(host, post) on this object.(See example 4)
156
+ #
139
157
  def initialize(options, &blk) # :yield: mesg
140
158
  @options = options
141
159
  @options["Host"] = "localhost" unless @options.has_key?("Host")
@@ -233,6 +251,9 @@ module SSH
233
251
  @eof = false
234
252
  @channel = nil
235
253
  @ssh.open_channel do |channel|
254
+ channel.on_data { |ch,data| @buf << data }
255
+ channel.on_extended_data { |ch,type,data| @buf << data if type == 1 }
256
+ channel.on_close { @eof = true }
236
257
  channel.request_pty { |ch,success|
237
258
  if success == false
238
259
  raise "Failed to open ssh pty"
@@ -247,22 +268,18 @@ module SSH
247
268
  raise "Failed to open ssh shell"
248
269
  end
249
270
  }
250
- channel.on_data { |ch,data| @buf << data }
251
- channel.on_extended_data { |ch,type,data| @buf << data if type == 1 }
252
- channel.on_close { @eof = true }
253
271
  end
254
272
  @ssh.loop
255
273
  end # initialize
256
274
 
257
275
  # Close the ssh channel, and also the entire ssh session if we
258
276
  # opened it.
259
-
260
277
  def close
261
278
  @channel.close if @channel
262
279
  @channel = nil
263
280
  @ssh.close if @close_all and @ssh
264
281
  end
265
-
282
+
266
283
  # The ssh session and channel we are using.
267
284
  attr_reader :ssh, :channel
268
285
 
@@ -289,7 +306,20 @@ module SSH
289
306
  end
290
307
 
291
308
  # Read data from the host until a certain sequence is matched.
292
-
309
+ #
310
+ # The +options+ parameter takes an string keyed option Hash or a String.
311
+ #
312
+ # A block can be provided to be called after the first prompt or match is found.
313
+ #
314
+ # ==== Hash Parameters
315
+ #
316
+ # * <tt>"Match"</tt> - Regular expression to match
317
+ # * <tt>"Prompt"</tt> - Regular expression to match (Same as "Match")
318
+ # * <tt>"String"</tt> - String to match
319
+ # * <tt>"Timeout"</tt> - Max time in seconds that can pass between packets (Default: 10 - set to false for no timeout)
320
+ # * <tt>"Waittime"</tt> - Max time to wait after a possible prompt it seen to make sure more data isn't coming(Default: 0)
321
+ # * <tt>"FailEOF"</tt> - Raise EOFError if EOF is reached on the connection.(Default: false)
322
+ #
293
323
  def waitfor(options) # :yield: recvdata
294
324
  time_out = @options["Timeout"]
295
325
  waittime = @options["Waittime"]
@@ -319,15 +349,16 @@ module SSH
319
349
  rest = ''
320
350
  sock = @ssh.transport.socket
321
351
 
322
- until prompt === line and @buf == "" and (@eof or (not sock.closed? and not IO::select([sock], nil, nil, waittime)))
323
- while @buf == "" and !@eof
324
- # timeout is covered by net-ssh
325
- begin
326
- @channel.connection.process(0.1)
327
- rescue IOError
328
- @eof = true
329
- end
352
+ until @ssh.transport.socket.available == 0 && @buf == "" && prompt === line && (@eof || (!sock.closed? && !IO::select([sock], nil, nil, waittime)))
353
+ # @buf may have content if it was processed by Net::SSH before #waitfor
354
+ # was called
355
+ # The prompt is checked in case a waittime was specified, we've already
356
+ # seen the prompt, but a protocol-level packet came through during the
357
+ # above IO::select, causing us to reprocess
358
+ if @buf == '' && (@ssh.transport.socket.available == 0) && !(prompt === line) && !IO::select([sock], nil, nil, time_out)
359
+ raise Net::ReadTimeout, "timed out while waiting for more data"
330
360
  end
361
+ _process_ssh
331
362
  if @buf != ""
332
363
  c = @buf; @buf = ""
333
364
  @dumplog.log_dump('<', c) if @options.has_key?("Dump_log")
@@ -362,10 +393,13 @@ module SSH
362
393
  # dumplog, if the Dump_log option is set.
363
394
  def write(string)
364
395
  @dumplog.log_dump('>', string) if @options.has_key?("Dump_log")
396
+ # Add string to Net:SSH output queue
365
397
  @channel.send_data string
398
+ # Call single instance of Net::SSH loop to process output queue
399
+ _process_ssh
366
400
  end
367
401
 
368
- # Sends a string to the host.
402
+ # Sends +string+ to the host.
369
403
  #
370
404
  # This does _not_ automatically append a newline to the string. Embedded
371
405
  # newlines may be converted depending upon the values of binmode or
@@ -380,21 +414,40 @@ module SSH
380
414
  end
381
415
  end
382
416
 
383
- # Sends a string to the host.
417
+ # Change the standard prompt
418
+ # This is useful if you need a special prompt value for initializing the
419
+ # session, but want to use a different prompt for the rest of the session
420
+ def prompt= val
421
+ @options["Prompt"] = val
422
+ end
423
+
424
+ # Sends +string+ to the host.
384
425
  #
385
426
  # Same as #print(), but appends a newline to the string.
386
427
  def puts(string)
387
428
  self.print(string + "\n")
388
429
  end
389
430
 
390
- # Send a command to the host.
431
+ # Sends a command to the host.
391
432
  #
392
433
  # More exactly, sends a string to the host, and reads in all received
393
434
  # data until is sees the prompt or other matched sequence.
394
435
  #
395
436
  # The command or other string will have the newline sequence appended
396
437
  # to it.
397
-
438
+ #
439
+ # The +options+ parameter takes a String or Hash. The Hash can be used to override the
440
+ # default settings that were established when the object was created.
441
+ #
442
+ # A block can be provided to be called when the first prompt or "Match" is found.
443
+ #
444
+ # ==== Hash Parameters
445
+ #
446
+ # * <tt>"String"</tt> - This string is sent over the connection via the #puts method.
447
+ # * <tt>"Match"</tt> - Passed to #waitfor as the "Prompt" parameter. See its defintion for details.
448
+ # * <tt>"Timeout"</tt> - Passed to #waitfor see its definition for details
449
+ # * <tt>"FailEOF"</tt> - Passed to #waitfor see its definition for details
450
+ #
398
451
  def cmd(options) # :yield: recvdata
399
452
  match = @options["Prompt"]
400
453
  time_out = @options["Timeout"]
@@ -417,6 +470,18 @@ module SSH
417
470
  end
418
471
  end
419
472
 
473
+ private
474
+
475
+ def _process_ssh
476
+ begin
477
+ @channel.connection.process(0)
478
+ rescue IOError
479
+ @eof = true
480
+ end
481
+ end
482
+
420
483
  end # class Telnet
421
484
  end # module SSH
422
485
  end # module Net
486
+
487
+ require 'net/ssh/telnet/version'
@@ -0,0 +1,7 @@
1
+ module Net
2
+ module SSH
3
+ class Telnet
4
+ VERSION = '0.2.0'
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,22 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'net/ssh/telnet/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "net-ssh-telnet"
8
+ spec.version = Net::SSH::Telnet::VERSION
9
+ spec.authors = ["Sean Dilda"]
10
+ spec.email = ["sean@duke.edu"]
11
+ spec.description = %q{A ruby module to provide a simple send/expect interface over SSH with an API almost identical to Net::Telnet. Ideally it should be a drop in replacement. Please see Net::Telnet for main documentation (included with ruby stdlib).}
12
+ spec.summary = %q{Provides Net::Telnet API for SSH connections}
13
+ spec.homepage = "https://github.com/duke-automation/net-ssh-telnet"
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files`.split($/)
17
+ spec.require_paths = ["lib"]
18
+ spec.extra_rdoc_files = ['README.txt', 'History.txt']
19
+
20
+ spec.add_runtime_dependency 'net-ssh', '>= 2.0.1'
21
+ spec.add_development_dependency 'rake'
22
+ end
metadata CHANGED
@@ -1,73 +1,58 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: net-ssh-telnet
3
- version: !ruby/object:Gem::Version
4
- version: 0.0.2
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.0
5
5
  platform: ruby
6
- authors:
7
- - Matthew Kent
6
+ authors:
7
+ - Sean Dilda
8
8
  autorequire:
9
9
  bindir: bin
10
- cert_chain:
11
- - |
12
- -----BEGIN CERTIFICATE-----
13
- MIIDMjCCAhqgAwIBAgIBADANBgkqhkiG9w0BAQUFADA/MQ4wDAYDVQQDDAVta2Vu
14
- dDEYMBYGCgmSJomT8ixkARkWCG1hZ29henVsMRMwEQYKCZImiZPyLGQBGRYDY29t
15
- MB4XDTA4MDcyODA0NTIzMVoXDTA5MDcyODA0NTIzMVowPzEOMAwGA1UEAwwFbWtl
16
- bnQxGDAWBgoJkiaJk/IsZAEZFghtYWdvYXp1bDETMBEGCgmSJomT8ixkARkWA2Nv
17
- bTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK9kASXLzL37znIcJoWH
18
- lE6LYK9Drf9/tTP0aMJBRwzFAL6NP4KCDTSbzRcurb2gqJI5Hz7wJBm7QQaw7jnx
19
- F+wUWEUnXF9v8BIpruFpIM+VHIMaj4h5ifSOh7lOARCn0tBHYYadxlyHhj+cROCf
20
- h8SPXUQ7Otsba/8tIjYZTh+tiru7hZApAXZRZOiGPjARwuqvcWYYstbxWOyG5hAB
21
- QHdhJD1nv03uHuCR0S/FpLmDM+REEh2PAXbvJIMkBJJ+2KP+7oWwU95/pclnEXE/
22
- e0qKZkVsaszihkvh1loxlKhU/sV0Sjo+LJ/fM7SR1a9WzSw1c1C/5Twjmq6jnaLG
23
- ZGECAwEAAaM5MDcwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAwHQYDVR0OBBYEFGhf
24
- 2WxIO89iFR2KfqyyXeWlUsBMMA0GCSqGSIb3DQEBBQUAA4IBAQAyvET0KFjr4Ars
25
- HvOFhZOer5jWTfGDUcKB8oOfLhbs7PANVNv0BARxgH0Dj95kTcIfSvQLWfv5OmqC
26
- AT3P6hPV6WbRCJOGPy0jeZcKWgPepl8vqnBciqzB8beBXmYmEe097MNvnlZptqU5
27
- If5GWrjlRoeYpRDNpMpaN4UFxsb/I4MGYvbnrEVc6Ev1ztgK5Kci8oYcINjUhCls
28
- EOmi6kiwQNdHUW0XLqwGanEip196lyE5IHRylQ5UiwYI0T4hDSc9f0SE+dzENdFw
29
- doMOs6odERAAmX+M7PQ4i3Zvs+Jv9SazZBcl8+sohZL3I5A1fkNQXts1hV6TObce
30
- T6VhSPds
31
- -----END CERTIFICATE-----
32
-
33
- date: 2009-03-15 00:00:00 -07:00
34
- default_executable:
35
- dependencies:
36
- - !ruby/object:Gem::Dependency
10
+ cert_chain: []
11
+ date: 2017-04-20 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
37
14
  name: net-ssh
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 2.0.1
38
20
  type: :runtime
39
- version_requirement:
40
- version_requirements: !ruby/object:Gem::Requirement
41
- requirements:
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
42
24
  - - ">="
43
- - !ruby/object:Gem::Version
25
+ - !ruby/object:Gem::Version
44
26
  version: 2.0.1
45
- version:
46
- - !ruby/object:Gem::Dependency
47
- name: hoe
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
48
34
  type: :development
49
- version_requirement:
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
52
38
  - - ">="
53
- - !ruby/object:Gem::Version
54
- version: 1.7.0
55
- version:
56
- description: A ruby module to provide a simple send/expect interface over SSH with an API almost identical to Net::Telnet. Ideally it should be a drop in replacement. Please see Net::Telnet for main documentation (included with ruby stdlib).
57
- email:
58
- - matt@bravenet.com
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ description: A ruby module to provide a simple send/expect interface over SSH with
42
+ an API almost identical to Net::Telnet. Ideally it should be a drop in replacement.
43
+ Please see Net::Telnet for main documentation (included with ruby stdlib).
44
+ email:
45
+ - sean@duke.edu
59
46
  executables: []
60
-
61
47
  extensions: []
62
-
63
- extra_rdoc_files:
64
- - History.txt
65
- - Manifest.txt
48
+ extra_rdoc_files:
66
49
  - README.txt
67
- - Todo.txt
68
- files:
69
50
  - History.txt
70
- - Manifest.txt
51
+ files:
52
+ - ".gitignore"
53
+ - ".yardopts"
54
+ - Gemfile
55
+ - History.txt
71
56
  - README.txt
72
57
  - Rakefile
73
58
  - Todo.txt
@@ -76,33 +61,31 @@ files:
76
61
  - examples/get_hostname.rb
77
62
  - examples/non_standard_shell.rb
78
63
  - lib/net/ssh/telnet.rb
64
+ - lib/net/ssh/telnet/version.rb
65
+ - net-ssh-telnet.gemspec
79
66
  - test/test_net-ssh-telnet.rb
80
- has_rdoc: true
81
- homepage: http://net-ssh-telnet.rubyforge.org
67
+ homepage: https://github.com/duke-automation/net-ssh-telnet
68
+ licenses:
69
+ - MIT
70
+ metadata: {}
82
71
  post_install_message:
83
- rdoc_options:
84
- - --main
85
- - README.txt
86
- require_paths:
72
+ rdoc_options: []
73
+ require_paths:
87
74
  - lib
88
- required_ruby_version: !ruby/object:Gem::Requirement
89
- requirements:
75
+ required_ruby_version: !ruby/object:Gem::Requirement
76
+ requirements:
90
77
  - - ">="
91
- - !ruby/object:Gem::Version
92
- version: "0"
93
- version:
94
- required_rubygems_version: !ruby/object:Gem::Requirement
95
- requirements:
78
+ - !ruby/object:Gem::Version
79
+ version: '0'
80
+ required_rubygems_version: !ruby/object:Gem::Requirement
81
+ requirements:
96
82
  - - ">="
97
- - !ruby/object:Gem::Version
98
- version: "0"
99
- version:
83
+ - !ruby/object:Gem::Version
84
+ version: '0'
100
85
  requirements: []
101
-
102
- rubyforge_project: net-ssh-telnet
103
- rubygems_version: 1.2.0
86
+ rubyforge_project:
87
+ rubygems_version: 2.5.1
104
88
  signing_key:
105
- specification_version: 2
106
- summary: A ruby module to provide a simple send/expect interface over SSH with an API almost identical to Net::Telnet
107
- test_files:
108
- - test/test_net-ssh-telnet.rb
89
+ specification_version: 4
90
+ summary: Provides Net::Telnet API for SSH connections
91
+ test_files: []
data.tar.gz.sig DELETED
@@ -1 +0,0 @@
1
- "�4��JWy�,���]�<^����F~'�OI�\#_�'��ս��Y&M�L�)���Cޟ{����%��*�~�=��z8��g�K��G*�4�cM����(�Й���x|��8���&�Dÿ��?��ɗf�P�kyGX�! ��,�$oۚ�#�ݯ���w�|�
data/Manifest.txt DELETED
@@ -1,11 +0,0 @@
1
- History.txt
2
- Manifest.txt
3
- README.txt
4
- Rakefile
5
- Todo.txt
6
- examples/detailed_debug.rb
7
- examples/get_disk_info.rb
8
- examples/get_hostname.rb
9
- examples/non_standard_shell.rb
10
- lib/net/ssh/telnet.rb
11
- test/test_net-ssh-telnet.rb
metadata.gz.sig DELETED
Binary file