net-ssh 1.0.9 → 1.0.10

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.
@@ -0,0 +1,270 @@
1
+ body {
2
+ background: #FFF;
3
+ font-family: sans-serif;
4
+ color: #000;
5
+ margin: 0px;
6
+ }
7
+
8
+ a {
9
+ color: #00F;
10
+ text-decoration: none;
11
+ }
12
+
13
+ a:hover {
14
+ text-decoration: underline;
15
+ }
16
+
17
+ .product-manual {
18
+ text-align: center;
19
+ font-size: x-large;
20
+ font-variant: small-caps;
21
+ font-weight: bold;
22
+ color: #005;
23
+ }
24
+
25
+ .copyright {
26
+ text-align: center;
27
+ font-size: small;
28
+ font-style: italic;
29
+ color: #005;
30
+ margin-top: 1in;
31
+ }
32
+
33
+ #banner {
34
+ background: #005;
35
+ color: #FFF;
36
+ border-bottom: 1px solid #000;
37
+ padding-top: 0.5em;
38
+ padding-bottom: 0.5em;
39
+ padding-left: 1em;
40
+ margin-bottom: 1em;
41
+ }
42
+
43
+ #banner .title {
44
+ font-size: x-large;
45
+ }
46
+
47
+ #banner .title:first-letter {
48
+ font-size: 250%;
49
+ font-weight: normal;
50
+ float: left;
51
+ margin-top: -7px;
52
+ margin-bottom: -7px;
53
+ }
54
+
55
+ #banner .product {
56
+ font-weight: bold;
57
+ color: #FF7;
58
+ letter-spacing: 0.5em;
59
+ }
60
+
61
+ #banner .tagline {
62
+ font-style: italic;
63
+ font-size: large;
64
+ letter-spacing: 0.1em;
65
+ color: #FFF;
66
+ }
67
+
68
+ #banner .info {
69
+ color: white;
70
+ font-size: small;
71
+ padding-right: 1em;
72
+ }
73
+
74
+ #content {
75
+ margin-left: 0cm;
76
+ margin-right: 1cm;
77
+ }
78
+
79
+ #navigation {
80
+ font-size: x-small;
81
+ border-right: 2px groove black;
82
+ border-top: 2px groove black;
83
+ margin-right: 1em;
84
+ width: 200px;
85
+ height: 100%;
86
+ background: #FFD;
87
+ }
88
+
89
+ #navigation ul, #navigation ol {
90
+ margin-left: 1.2em;
91
+ padding-left: 1.2em;
92
+ }
93
+
94
+ #navigation .license {
95
+ font-size: x-small;
96
+ text-align: center;
97
+ border-top: 1px dashed #005;
98
+ margin-top: 2em;
99
+ padding: 1em;
100
+ }
101
+
102
+ .section {
103
+ margin-bottom: 1em;
104
+ }
105
+
106
+ .section p {
107
+ text-align: justify;
108
+ }
109
+
110
+ #content h1 {
111
+ background: #005;
112
+ color: #FFF;
113
+ font-size: x-large;
114
+ font-weight: bold;
115
+ font-variant: small-caps;
116
+ padding: 0.5em;
117
+ border: 1px solid #000;
118
+ margin-top: 0px;
119
+ margin-bottom: 1em;
120
+ }
121
+
122
+ #content h2 {
123
+ background: #005;
124
+ color: #FFF;
125
+ font-size: large;
126
+ font-weight: bold;
127
+ font-variant: small-caps;
128
+ padding: 0.25em;
129
+ padding-left: 0.5em;
130
+ border: 1px solid #000;
131
+ margin-bottom: 1em;
132
+ }
133
+
134
+ #content h3 {
135
+ background: #FFD;
136
+ color: #000;
137
+ font-size: normal;
138
+ font-weight: bold;
139
+ font-variant: small-caps;
140
+ padding: 0.25em;
141
+ padding-left: 0.5em;
142
+ border: 1px dotted #000;
143
+ margin-bottom: 1em;
144
+ }
145
+
146
+ #content h4 {
147
+ background: #FFE;
148
+ color: #000;
149
+ font-size: normal;
150
+ font-weight: bold;
151
+ font-variant: small-caps;
152
+ padding: 0.25em;
153
+ padding-left: 0.5em;
154
+ border: 1px dotted #777;
155
+ margin-bottom: 1em;
156
+ }
157
+
158
+ #navigation h1 {
159
+ margin: 0px;
160
+ padding: 1em;
161
+ color: #005;
162
+ background: transparent;
163
+ font-weight: bold;
164
+ font-size: 150%;
165
+ font-variant: small-caps;
166
+ text-align: center;
167
+ }
168
+
169
+ #navigation h2 {
170
+ margin: 0px;
171
+ margin-bottom: 1em;
172
+ padding: 0.5em;
173
+ border-top: 1px dashed #005;
174
+ border-bottom: 1px dashed #005;
175
+ color: #005;
176
+ background: transparent;
177
+ font-weight: bold;
178
+ font-size: 125%;
179
+ font-variant: small-caps;
180
+ text-align: center;
181
+ }
182
+
183
+ table.list {
184
+ margin: 2em;
185
+ border: 1px solid black;
186
+ background: #FFD;
187
+ padding: 0px;
188
+ border-spacing: 0px;
189
+ }
190
+
191
+ table.list th {
192
+ border-bottom: 1px solid #005;
193
+ padding-bottom: 5px;
194
+ background: #008;
195
+ color: white;
196
+ padding: 0.5em;
197
+ text-align: left;
198
+ }
199
+
200
+ table.list td {
201
+ padding: 0.2em;
202
+ text-align: left;
203
+ vertical-align: top;
204
+ border-bottom: 1px solid;
205
+ }
206
+
207
+ .prevnext {
208
+ padding: 0.5em 1em 0.5em 1em;
209
+ background: #557;
210
+ color: #FFF;
211
+ font-size: small;
212
+ font-weight: bold;
213
+ border: 1px solid #000;
214
+ }
215
+
216
+ .prevnext a {
217
+ color: #FF0;
218
+ }
219
+
220
+ .top .prevnext {
221
+ margin: 0 0 1em 0;
222
+ text-align: left;
223
+ }
224
+
225
+ .bottom .prevnext {
226
+ margin: 1em 0 0 0;
227
+ text-align: right;
228
+ }
229
+
230
+ .figure {
231
+ border: 1px solid black;
232
+ line-height: normal;
233
+ background: #FFD;
234
+ margin: 2em;
235
+ }
236
+
237
+ .figure .caption {
238
+ background: #008;
239
+ color: white;
240
+ font-weight: bold;
241
+ font-size: small;
242
+ padding: 4px 24px 4px 8px;
243
+ margin-left: -4px;
244
+ border: 1px dotted #77F;
245
+ }
246
+
247
+ .figure table {
248
+ padding-top: 0.8em;
249
+ padding-bottom: 0.5em;
250
+ }
251
+
252
+ .figure .body {
253
+ padding-left: 1em;
254
+ }
255
+
256
+ .figure pre {
257
+ padding: 0px;
258
+ background: transparent;
259
+ border: none;
260
+ font-size: small;
261
+ font-family: monospace;
262
+ }
263
+
264
+ .figure .lineno {
265
+ text-align: right;
266
+ color: #B00;
267
+ font-family: monospace;
268
+ font-size: small;
269
+ padding-right: 1em;
270
+ }
@@ -0,0 +1,17 @@
1
+ .ruby .normal {}
2
+ .ruby .comment { color: #005; font-style: italic; }
3
+ .ruby .keyword { color: #A00; font-weight: bold; }
4
+ .ruby .method { color: #077; }
5
+ .ruby .class { color: #074; }
6
+ .ruby .module { color: #050; }
7
+ .ruby .punct { color: #447; font-weight: bold; }
8
+ .ruby .symbol { color: #099; }
9
+ .ruby .string { color: #944; }
10
+ .ruby .char { color: #F07; }
11
+ .ruby .ident { color: #004; }
12
+ .ruby .constant { color: #07F; }
13
+ .ruby .regex { color: #B66; }
14
+ .ruby .number { color: #D55; }
15
+ .ruby .attribute { color: #377; }
16
+ .ruby .global { color: #3B7; }
17
+ .ruby .expr { color: #227; }
@@ -201,6 +201,20 @@ module Net
201
201
  # ====================================================================
202
202
  #++
203
203
 
204
+ def do_global_request( response )
205
+ name = response.read_string
206
+ want_reply = response.read_bool
207
+ request_data = response.remainder_as_buffer
208
+
209
+ @log.debug "GLOBAL_REQUEST received (#{name})" if @log.debug?
210
+
211
+ if want_reply
212
+ writer = @buffers.writer
213
+ writer.write_byte REQUEST_SUCCESS
214
+ @session.send_message writer
215
+ end
216
+ end
217
+
204
218
  def do_request_success( response )
205
219
  @log.debug "REQUEST_SUCCESS received" if @log.debug?
206
220
  process_request response, true
@@ -396,18 +410,19 @@ module Net
396
410
  # ====================================================================
397
411
  #++
398
412
 
399
- MESSAGES = {}
400
- [ :request_success, :request_failure, :channel_open,
401
- :channel_open_failure, :channel_open_confirmation,
402
- :channel_window_adjust, :channel_data, :channel_extended_data,
403
- :channel_eof, :channel_close, :channel_request, :channel_success,
404
- :channel_failure
405
- ].each do |event|
406
- constant = Constants.const_get event.to_s.upcase.to_sym
407
- MESSAGES[ constant ] = {
408
- :name => event,
413
+ MESSAGES = %w(
414
+ global_request
415
+ request_success request_failure channel_open channel_open_failure
416
+ channel_open_confirmation channel_window_adjust channel_data
417
+ channel_extended_data channel_eof channel_close channel_request
418
+ channel_success channel_failure
419
+ ).inject({}) do |map, event|
420
+ constant = Constants.const_get event.upcase.to_sym
421
+ map[constant] = {
422
+ :name => event.to_sym,
409
423
  :method => instance_method( "do_#{event}".to_sym )
410
424
  }
425
+ map
411
426
  end
412
427
 
413
428
  end
@@ -53,7 +53,7 @@ module Net
53
53
  # was just executed somehow, but this is not (cannot) be enforced.
54
54
  def send_command( cmd, stdin=nil )
55
55
  @log.debug "executing #{cmd.inspect}" if @log.debug?
56
- send_data "#{cmd}; echo -n #{CONFIRMATION} $?\n"
56
+ send_data "#{cmd}; printf '%s %d' #{CONFIRMATION} $?\n"
57
57
  send_data stdin if stdin
58
58
 
59
59
  out = ""
@@ -32,6 +32,9 @@ module Net
32
32
  # The hash of options that were used to establish this session.
33
33
  attr_reader :options
34
34
 
35
+ # The underlying connection
36
+ attr_reader :connection
37
+
35
38
  # Create a new SSH session. This method polymorphically accepts a
36
39
  # variable number of parameters, as follows:
37
40
  #
@@ -206,8 +209,10 @@ module Net
206
209
  @options.update args.shift if args.first.is_a?( Hash )
207
210
  end
208
211
 
209
- unless args.empty?
212
+ if !args.empty?
210
213
  raise ArgumentError, "extra parameters detected: #{args.inspect}"
214
+ elsif @username.nil?
215
+ raise ArgumentError, "no username was given and none could be inferred from the environment"
211
216
  end
212
217
 
213
218
  @keys = @options[ :keys ]
@@ -199,7 +199,7 @@ module Net
199
199
  while data.length < length
200
200
  break if @socket.closed?
201
201
  if ( IO.select([@socket],nil,nil,0.01) rescue nil )
202
- data << @socket.sysread(length-data.length)
202
+ data << @socket.read(length-data.length)
203
203
  end
204
204
  end
205
205
  else
@@ -81,6 +81,8 @@ module Net
81
81
  "invalid option(s) to #{self.class}: #{invalid_options.inspect}"
82
82
  end
83
83
 
84
+ @logger.debug "connecting" if @logger.debug?
85
+
84
86
  @port = options[ :port ] || @default_port
85
87
  @socket = timeout( options[:timeout] || 0 ) do
86
88
  ( options[:proxy] || @socket_factory ).open( host, @port )
@@ -20,7 +20,7 @@ module Net
20
20
 
21
21
  MAJOR = 1
22
22
  MINOR = 0
23
- TINY = 9
23
+ TINY = 10
24
24
 
25
25
  STRING = [ MAJOR, MINOR, TINY ].join( "." )
26
26
 
metadata CHANGED
@@ -1,10 +1,10 @@
1
1
  --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.8.11
2
+ rubygems_version: 0.9.0
3
3
  specification_version: 1
4
4
  name: net-ssh
5
5
  version: !ruby/object:Gem::Version
6
- version: 1.0.9
7
- date: 2006-04-14 00:00:00 -06:00
6
+ version: 1.0.10
7
+ date: 2006-09-09 00:00:00 -06:00
8
8
  summary: Net::SSH is a pure-Ruby implementation of the SSH2 client protocol.
9
9
  require_paths:
10
10
  - lib
@@ -25,6 +25,7 @@ required_ruby_version: !ruby/object:Gem::Version::Requirement
25
25
  platform: ruby
26
26
  signing_key:
27
27
  cert_chain:
28
+ post_install_message:
28
29
  authors:
29
30
  - Jamis Buck
30
31
  files:
@@ -32,6 +33,7 @@ files:
32
33
  - doc/LICENSE-GPL
33
34
  - doc/LICENSE-RUBY
34
35
  - doc/manual
36
+ - doc/manual-html
35
37
  - doc/manual/chapter.erb
36
38
  - doc/manual/example.erb
37
39
  - doc/manual/index.erb
@@ -75,6 +77,17 @@ files:
75
77
  - doc/manual/parts/0031.txt
76
78
  - doc/manual/stylesheets/manual.css
77
79
  - doc/manual/stylesheets/ruby.css
80
+ - doc/manual-html/chapter-1.html
81
+ - doc/manual-html/chapter-2.html
82
+ - doc/manual-html/chapter-3.html
83
+ - doc/manual-html/chapter-4.html
84
+ - doc/manual-html/chapter-5.html
85
+ - doc/manual-html/chapter-6.html
86
+ - doc/manual-html/chapter-7.html
87
+ - doc/manual-html/index.html
88
+ - doc/manual-html/stylesheets
89
+ - doc/manual-html/stylesheets/manual.css
90
+ - doc/manual-html/stylesheets/ruby.css
78
91
  - lib/net
79
92
  - lib/net/ssh
80
93
  - lib/net/ssh.rb