stomp 1.3.1 → 1.3.2

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.
@@ -130,9 +130,7 @@ module Stomp
130
130
  @failure = $!
131
131
  raise unless @reliable
132
132
  errstr = "transmit to #{@host} failed: #{$!}\n"
133
- if @logger && @logger.respond_to?(:on_miscerr)
134
- @logger.on_miscerr(log_params, "es_trans: " + errstr)
135
- else
133
+ unless slog(:on_miscerr, log_params, "es_trans: " + errstr)
136
134
  $stderr.print errstr
137
135
  end
138
136
  # !!! This loop initiates a re-connect !!!
@@ -200,15 +198,10 @@ module Stomp
200
198
  # open_tcp_socket opens a TCP socket.
201
199
  def open_tcp_socket()
202
200
  tcp_socket = nil
203
-
204
- if @logger && @logger.respond_to?(:on_connecting)
205
- @logger.on_connecting(log_params)
206
- end
207
-
201
+ slog(:on_connecting, log_params)
208
202
  Timeout::timeout(@connect_timeout, Stomp::Error::SocketOpenTimeout) do
209
203
  tcp_socket = TCPSocket.open(@host, @port)
210
204
  end
211
-
212
205
  tcp_socket
213
206
  end
214
207
 
@@ -219,15 +212,19 @@ module Stomp
219
212
  ctx = OpenSSL::SSL::SSLContext.new
220
213
  ctx.verify_mode = OpenSSL::SSL::VERIFY_NONE # Assume for now
221
214
  #
222
- # Note: if a client uses :ssl => true this results in the gem using
215
+ # Note: if a client uses :ssl => true this would result in the gem using
223
216
  # the _default_ Ruby ciphers list. This is _known_ to fail in later
224
- # Ruby releases. The gem provides a default cipher list that may
225
- # function in these cases. To use this connect with:
217
+ # Ruby releases. The gem now detects :ssl => true, and replaces that
218
+ # with:
226
219
  # * :ssl => Stomp::SSLParams.new
220
+ #
221
+ # The above results in the use of Stomp default parameters.
222
+ #
223
+ # To specifically request Stomp default parameters, use:
227
224
  # * :ssl => Stomp::SSLParams.new(..., :ciphers => Stomp::DEFAULT_CIPHERS)
228
225
  #
229
226
  # If connecting with an SSLParams instance, and the _default_ Ruby
230
- # ciphers list is required, use:
227
+ # ciphers list is actually required, use:
231
228
  # * :ssl => Stomp::SSLParams.new(..., :use_ruby_ciphers => true)
232
229
  #
233
230
  # If a custom ciphers list is required, connect with:
@@ -275,16 +272,15 @@ module Stomp
275
272
  if @ssl.ciphers # User ciphers list?
276
273
  ctx.ciphers = @ssl.ciphers # Accept user supplied ciphers
277
274
  else
275
+ ctx.ciphers = Stomp::DEFAULT_CIPHERS # Just use Stomp defaults
278
276
  end
279
277
  end
280
278
  end
281
279
 
282
280
  #
283
281
  ssl = nil
284
- if @logger && @logger.respond_to?(:on_ssl_connecting)
285
- @logger.on_ssl_connecting(log_params)
286
- end
287
-
282
+ slog(:on_ssl_connecting, log_params)
283
+ # _dump_ctx(ctx)
288
284
  Timeout::timeout(@connect_timeout, Stomp::Error::SocketOpenTimeout) do
289
285
  tcp_socket = TCPSocket.open(@host, @port)
290
286
  ssl = OpenSSL::SSL::SSLSocket.new(tcp_socket, ctx)
@@ -304,16 +300,12 @@ module Stomp
304
300
  end
305
301
  @ssl.peer_cert = ssl.peer_cert
306
302
  end
307
- if @logger && @logger.respond_to?(:on_ssl_connected)
308
- @logger.on_ssl_connected(log_params)
309
- end
303
+ slog(:on_ssl_connected, log_params)
310
304
  ssl
311
305
  rescue Exception => ex
312
- if @logger && @logger.respond_to?(:on_ssl_connectfail)
313
- lp = log_params.clone
314
- lp[:ssl_exception] = ex
315
- @logger.on_ssl_connectfail(lp)
316
- end
306
+ lp = log_params.clone
307
+ lp[:ssl_exception] = ex
308
+ slog(:on_ssl_connectfail, lp)
317
309
  #
318
310
  raise # Reraise
319
311
  end
@@ -401,6 +393,11 @@ module Stomp
401
393
  line
402
394
  end
403
395
 
396
+ # Used for debugging
397
+ def _dump_ctx(ctx)
398
+ p [ "dc01", ctx.inspect ]
399
+ p [ "dc02ciphers", ctx.ciphers ]
400
+ end
404
401
  end # class Connection
405
402
 
406
403
  end # module Stomp
@@ -116,9 +116,7 @@ module Stomp
116
116
  used_socket = open_socket() # sets @closed = false if OK
117
117
  # Open is complete
118
118
  connect(used_socket)
119
- if @logger && @logger.respond_to?(:on_connected)
120
- @logger.on_connected(log_params)
121
- end
119
+ slog(:on_connected, log_params)
122
120
  @connection_attempts = 0
123
121
  rescue
124
122
  @failure = $!
@@ -132,20 +130,16 @@ module Stomp
132
130
  # b) should never be retried
133
131
  raise if @failure.is_a?(Stomp::Error::ProtocolError11p)
134
132
 
135
- if @logger && @logger.respond_to?(:on_connectfail)
136
- # on_connectfail may raise
137
- begin
138
- @logger.on_connectfail(log_params)
139
- rescue Exception => aex
140
- raise if aex.is_a?(Stomp::Error::LoggerConnectionError)
133
+ begin
134
+ unless slog(:on_connectfail,log_params)
135
+ $stderr.print "connect to #{@host} failed: #{$!} will retry(##{@connection_attempts}) in #{@reconnect_delay}\n"
141
136
  end
142
- else
143
- $stderr.print "connect to #{@host} failed: #{$!} will retry(##{@connection_attempts}) in #{@reconnect_delay}\n"
137
+ rescue Exception => aex
138
+ raise if aex.is_a?(Stomp::Error::LoggerConnectionError)
144
139
  end
145
- raise Stomp::Error::MaxReconnectAttempts if max_reconnect_attempts?
146
140
 
141
+ raise Stomp::Error::MaxReconnectAttempts if max_reconnect_attempts?
147
142
  sleep(@reconnect_delay)
148
-
149
143
  @connection_attempts += 1
150
144
 
151
145
  if @parameters
@@ -183,7 +177,8 @@ module Stomp
183
177
  :max_hbrlck_fails => 0,
184
178
  :fast_hbs_adjust => 0.0,
185
179
  :connread_timeout => 0,
186
- :tcp_nodelay => true
180
+ :tcp_nodelay => true,
181
+ :start_timeout => 10,
187
182
  }
188
183
 
189
184
  res_params = default_params.merge(params)
@@ -208,6 +203,18 @@ module Stomp
208
203
  @passcode = current_host[:passcode] || ""
209
204
  end
210
205
 
206
+ # Duplicate parameters hash
207
+ def _hdup(h)
208
+ ldup = {}
209
+ ldup.merge!(h)
210
+ ldup[:hosts] = []
211
+ hvals = h[:hosts].nil? ? h["hosts"] : h[:hosts]
212
+ hvals.each do |hv|
213
+ ldup[:hosts] << hv.dup
214
+ end
215
+ ldup
216
+ end
217
+
211
218
  # max_reconnect_attempts? returns nil or the number of maximum reconnect
212
219
  # attempts.
213
220
  def max_reconnect_attempts?
@@ -237,9 +244,7 @@ module Stomp
237
244
  @failure = $!
238
245
  raise unless @reliable
239
246
  errstr = "receive failed: #{$!}"
240
- if @logger && @logger.respond_to?(:on_miscerr)
241
- @logger.on_miscerr(log_params, "es_oldrecv: " + errstr)
242
- else
247
+ unless slog(:on_miscerr, log_params, "es_oldrecv: " + errstr)
243
248
  $stderr.print errstr
244
249
  end
245
250
 
@@ -50,6 +50,8 @@ module Stomp
50
50
  # :max_hbrlck_fails => 0,
51
51
  # :fast_hbs_adjust => 0.0,
52
52
  # :connread_timeout => 0,
53
+ # :tcp_nodelay => true,
54
+ # :start_timeout => 10,
53
55
  # }
54
56
  #
55
57
  # e.g. c = Stomp::Client.new(hash)
@@ -84,10 +86,15 @@ module Stomp
84
86
  @logger = @parameters[:logger] ||= Stomp::NullLogger.new
85
87
 
86
88
  @start_timeout = @parameters[:start_timeout] || 10
87
- Timeout.timeout(@start_timeout, Stomp::Error::StartTimeoutException.new(@start_timeout)) do
88
- create_error_handler
89
- create_connection(autoflush)
90
- start_listeners()
89
+ begin
90
+ timeout(@start_timeout) {
91
+ create_error_handler
92
+ create_connection(autoflush)
93
+ start_listeners()
94
+ }
95
+ rescue TimeoutError
96
+ ex = Stomp::Error::StartTimeoutException.new(@start_timeout)
97
+ raise ex
91
98
  end
92
99
  end
93
100
 
@@ -190,14 +197,8 @@ module Stomp
190
197
  if block_given?
191
198
  headers['receipt'] = register_receipt_listener lambda {|r| yield r}
192
199
  end
193
- if protocol() == Stomp::SPL_12
194
- @connection.ack(message.headers['ack'], headers)
195
- elsif protocol == Stomp::SPL_11
196
- headers.merge!(:subscription => message.headers['subscription'])
197
- @connection.ack(message.headers['message-id'], headers)
198
- else
199
- @connection.ack(message.headers['message-id'], headers)
200
- end
200
+ context = ack_context_for(message, headers)
201
+ @connection.ack context[:message_id], context[:headers]
201
202
  end
202
203
 
203
204
  # For posterity, we alias:
@@ -205,7 +206,22 @@ module Stomp
205
206
 
206
207
  # Stomp 1.1+ NACK.
207
208
  def nack(message, headers = {})
208
- @connection.nack(message, headers)
209
+ context = ack_context_for(message, headers)
210
+ @connection.nack context[:message_id], context[:headers]
211
+ end
212
+
213
+ #
214
+ def ack_context_for(message, headers)
215
+ id = case protocol
216
+ when Stomp::SPL_12
217
+ 'ack'
218
+ when Stomp::SPL_11
219
+ headers.merge!(:subscription => message.headers['subscription'])
220
+ 'message-id'
221
+ else
222
+ 'message-id'
223
+ end
224
+ {:message_id => message.headers[id], :headers => headers}
209
225
  end
210
226
 
211
227
  # Unreceive a message, sending it back to its queue or to the DLQ.
@@ -75,6 +75,8 @@ module Stomp
75
75
  # :max_hbrlck_fails => 0,
76
76
  # :fast_hbs_adjust => 0.0,
77
77
  # :connread_timeout => 0,
78
+ # :tcp_nodelay => true,
79
+ # :start_timeout => 10,
78
80
  # }
79
81
  #
80
82
  # e.g. c = Stomp::Connection.new(hash)
@@ -123,6 +125,8 @@ module Stomp
123
125
  @max_hbrlck_fails = 0 # 0 means never retry for HB read lock failures
124
126
  @fast_hbs_adjust = 0.0 # Fast heartbeat senders sleep adjustment
125
127
  @connread_timeout = 0 # Connect read CONNECTED/ERROR timeout
128
+ @tcp_nodelay = true # Disable Nagle
129
+ @start_timeout = 10 # Client only, startup timeout
126
130
  warn "login looks like a URL, do you have the correct parameters?" if @login =~ /:\/\//
127
131
  end
128
132
 
@@ -142,7 +146,8 @@ module Stomp
142
146
  # hashed_initialize prepares a new connection with a Hash of initialization
143
147
  # parameters.
144
148
  def hashed_initialize(params)
145
- @parameters = refine_params(params)
149
+ lp = _hdup(params)
150
+ @parameters = refine_params(lp)
146
151
  @reliable = @parameters[:reliable]
147
152
  @reconnect_delay = @parameters[:initial_reconnect_delay]
148
153
  @connect_headers = @parameters[:connect_headers]
@@ -158,6 +163,13 @@ module Stomp
158
163
  @max_hbrlck_fails = @parameters[:max_hbrlck_fails]
159
164
  @fast_hbs_adjust = @parameters[:fast_hbs_adjust]
160
165
  @connread_timeout = @parameters[:connread_timeout]
166
+ #
167
+ # Try to support Ruby 1.9.x and 2.x ssl.
168
+ unless defined?(RSpec)
169
+ @parameters[:hosts].each do |ah|
170
+ ah[:ssl] = Stomp::SSLParams.new if ah[:ssl] == true
171
+ end
172
+ end
161
173
  #sets the first host to connect
162
174
  change_host
163
175
  end
@@ -183,7 +195,7 @@ module Stomp
183
195
  headers = headers.symbolize_keys
184
196
  headers[:transaction] = name
185
197
  _headerCheck(headers)
186
- @logger.on_begin(log_params, headers)
198
+ slog(:on_begin, log_params, headers)
187
199
  transmit(Stomp::CMD_BEGIN, headers)
188
200
  end
189
201
 
@@ -214,7 +226,7 @@ module Stomp
214
226
  headers[:'message-id'] = message_id
215
227
  end
216
228
  _headerCheck(headers)
217
- @logger.on_ack(log_params, headers)
229
+ slog(:on_ack, log_params, headers)
218
230
  transmit(Stomp::CMD_ACK, headers)
219
231
  end
220
232
 
@@ -226,11 +238,11 @@ module Stomp
226
238
  headers = headers.symbolize_keys
227
239
  case @protocol
228
240
  when Stomp::SPL_12
229
- # The ACK frame MUST include an id header matching the ack header
241
+ # The NACK frame MUST include an id header matching the ack header
230
242
  # of the MESSAGE being acknowledged.
231
243
  headers[:id] = message_id
232
244
  else # Stomp::SPL_11 only
233
- # ACK has two REQUIRED headers: message-id, which MUST contain a value
245
+ # NACK has two REQUIRED headers: message-id, which MUST contain a value
234
246
  # matching the message-id for the MESSAGE being acknowledged and
235
247
  # subscription, which MUST be set to match the value of the subscription's
236
248
  # id header.
@@ -238,7 +250,7 @@ module Stomp
238
250
  raise Stomp::Error::SubscriptionRequiredError unless headers[:subscription]
239
251
  end
240
252
  _headerCheck(headers)
241
- @logger.on_nack(log_params, headers)
253
+ slog(:on_nack, log_params, headers)
242
254
  transmit(Stomp::CMD_NACK, headers)
243
255
  end
244
256
 
@@ -248,7 +260,7 @@ module Stomp
248
260
  headers = headers.symbolize_keys
249
261
  headers[:transaction] = name
250
262
  _headerCheck(headers)
251
- @logger.on_commit(log_params, headers)
263
+ slog(:on_commit, log_params, headers)
252
264
  transmit(Stomp::CMD_COMMIT, headers)
253
265
  end
254
266
 
@@ -258,7 +270,7 @@ module Stomp
258
270
  headers = headers.symbolize_keys
259
271
  headers[:transaction] = name
260
272
  _headerCheck(headers)
261
- @logger.on_abort(log_params, headers)
273
+ slog(:on_abort, log_params, headers)
262
274
  transmit(Stomp::CMD_ABORT, headers)
263
275
  end
264
276
 
@@ -273,7 +285,7 @@ module Stomp
273
285
  headers[:id] = subId if headers[:id].nil?
274
286
  end
275
287
  _headerCheck(headers)
276
- @logger.on_subscribe(log_params, headers)
288
+ slog(:on_subscribe, log_params, headers)
277
289
 
278
290
  # Store the subscription so that we can replay if we reconnect.
279
291
  if @reliable
@@ -296,7 +308,7 @@ module Stomp
296
308
  headers[:id] = subId unless headers[:id]
297
309
  end
298
310
  _headerCheck(headers)
299
- @logger.on_unsubscribe(log_params, headers)
311
+ slog(:on_unsubscribe, log_params, headers)
300
312
  transmit(Stomp::CMD_UNSUBSCRIBE, headers)
301
313
  if @reliable
302
314
  subId = dest if subId.nil?
@@ -312,7 +324,7 @@ module Stomp
312
324
  headers = headers.symbolize_keys
313
325
  headers[:destination] = destination
314
326
  _headerCheck(headers)
315
- @logger.on_publish(log_params, message, headers)
327
+ slog(:on_publish, log_params, message, headers)
316
328
  transmit(Stomp::CMD_SEND, headers, message)
317
329
  end
318
330
 
@@ -375,7 +387,7 @@ module Stomp
375
387
  end
376
388
  transmit(Stomp::CMD_DISCONNECT, headers)
377
389
  @disconnect_receipt = receive if headers[:receipt]
378
- @logger.on_disconnect(log_params)
390
+ slog(:on_disconnect, log_params)
379
391
  close_socket
380
392
  end
381
393
 
@@ -398,7 +410,7 @@ module Stomp
398
410
  super_result = __old_receive()
399
411
  if super_result.nil? && @reliable && !closed?
400
412
  errstr = "connection.receive returning EOF as nil - resetting connection.\n"
401
- @logger.on_miscerr(log_params, "es_recv: " + errstr)
413
+ slog(:on_miscerr, log_params, "es_recv: " + errstr)
402
414
  $stderr.print errstr
403
415
 
404
416
  # !!! This initiates a re-connect !!!
@@ -417,7 +429,7 @@ module Stomp
417
429
  @closed = true
418
430
  warn 'warning: broker sent EOF, and connection not reliable' unless defined?(Test)
419
431
  end
420
- @logger.on_receive(log_params, super_result)
432
+ slog(:on_receive, log_params, super_result)
421
433
  return super_result
422
434
  end
423
435
 
@@ -480,6 +492,13 @@ module Stomp
480
492
  @hbrecv_count
481
493
  end
482
494
 
495
+ # log call router
496
+ def slog(name, *parms)
497
+ return false unless @logger
498
+ @logger.send(name, *parms) if @logger.respond_to?(:"#{name}")
499
+ @logger.respond_to?(:"#{name}")
500
+ end
501
+
483
502
  end # class
484
503
 
485
504
  end # module
@@ -90,25 +90,89 @@ module Stomp
90
90
 
91
91
  # A fairly safe and generally supported ciphers list.
92
92
  DEFAULT_CIPHERS = [
93
- ["DHE-RSA-AES256-SHA", "TLSv1/SSLv3", 256, 256],
94
- ["DHE-DSS-AES256-SHA", "TLSv1/SSLv3", 256, 256],
95
- ["AES256-SHA", "TLSv1/SSLv3", 256, 256],
96
- ["EDH-RSA-DES-CBC3-SHA", "TLSv1/SSLv3", 168, 168],
97
- ["EDH-DSS-DES-CBC3-SHA", "TLSv1/SSLv3", 168, 168],
98
- ["DES-CBC3-SHA", "TLSv1/SSLv3", 168, 168],
99
- ["DHE-RSA-AES128-SHA", "TLSv1/SSLv3", 128, 128],
100
- ["DHE-DSS-AES128-SHA", "TLSv1/SSLv3", 128, 128],
101
- ["AES128-SHA", "TLSv1/SSLv3", 128, 128],
102
- ["RC4-SHA", "TLSv1/SSLv3", 128, 128],
103
- ["RC4-MD5", "TLSv1/SSLv3", 128, 128],
104
- ["EDH-RSA-DES-CBC-SHA", "TLSv1/SSLv3", 56, 56],
93
+ ["AES128-GCM-SHA256","TLSv1/SSLv3",128,128],
94
+ ["AES128-SHA256","TLSv1/SSLv3",128,128],
95
+ ["AES128-SHA","TLSv1/SSLv3",128,128],
96
+ ["AES256-GCM-SHA384","TLSv1/SSLv3",256,256],
97
+ ["AES256-SHA256","TLSv1/SSLv3",256,256],
98
+ ["AES256-SHA","TLSv1/SSLv3",256,256],
99
+ ["CAMELLIA128-SHA","TLSv1/SSLv3",128,128],
100
+ ["CAMELLIA256-SHA","TLSv1/SSLv3",256,256],
101
+ ["DES-CBC3-SHA","TLSv1/SSLv3",168,168],
102
+ ["DES-CBC-SHA","TLSv1/SSLv3",56,56],
103
+ ["DHE-DSS-AES128-GCM-SHA256","TLSv1/SSLv3",128,128],
104
+ ["DHE-DSS-AES128-SHA256","TLSv1/SSLv3",128,128],
105
+ ["DHE-DSS-AES128-SHA","TLSv1/SSLv3",128,128],
106
+ ["DHE-DSS-AES256-GCM-SHA384","TLSv1/SSLv3",256,256],
107
+ ["DHE-DSS-AES256-SHA256","TLSv1/SSLv3",256,256],
108
+ ["DHE-DSS-AES256-SHA","TLSv1/SSLv3",256,256],
109
+ ["DHE-DSS-CAMELLIA128-SHA","TLSv1/SSLv3",128,128],
110
+ ["DHE-DSS-CAMELLIA256-SHA","TLSv1/SSLv3",256,256],
111
+ ["DHE-DSS-SEED-SHA","TLSv1/SSLv3",128,128],
112
+ ["DHE-RSA-AES128-GCM-SHA256","TLSv1/SSLv3",128,128],
113
+ ["DHE-RSA-AES128-SHA256","TLSv1/SSLv3",128,128],
114
+ ["DHE-RSA-AES128-SHA","TLSv1/SSLv3",128,128],
115
+ ["DHE-RSA-AES256-GCM-SHA384","TLSv1/SSLv3",256,256],
116
+ ["DHE-RSA-AES256-SHA256","TLSv1/SSLv3",256,256],
117
+ ["DHE-RSA-AES256-SHA","TLSv1/SSLv3",256,256],
118
+ ["DHE-RSA-CAMELLIA128-SHA","TLSv1/SSLv3",128,128],
119
+ ["DHE-RSA-CAMELLIA256-SHA","TLSv1/SSLv3",256,256],
120
+ ["DHE-RSA-SEED-SHA","TLSv1/SSLv3",128,128],
121
+ ["ECDH-ECDSA-AES128-GCM-SHA256","TLSv1/SSLv3",128,128],
122
+ ["ECDH-ECDSA-AES128-SHA256","TLSv1/SSLv3",128,128],
123
+ ["ECDH-ECDSA-AES128-SHA","TLSv1/SSLv3",128,128],
124
+ ["ECDH-ECDSA-AES256-GCM-SHA384","TLSv1/SSLv3",256,256],
125
+ ["ECDH-ECDSA-AES256-SHA384","TLSv1/SSLv3",256,256],
126
+ ["ECDH-ECDSA-AES256-SHA","TLSv1/SSLv3",256,256],
127
+ ["ECDH-ECDSA-DES-CBC3-SHA","TLSv1/SSLv3",168,168],
128
+ ["ECDH-ECDSA-RC4-SHA","TLSv1/SSLv3",128,128],
129
+ ["ECDHE-ECDSA-AES128-GCM-SHA256","TLSv1/SSLv3",128,128],
130
+ ["ECDHE-ECDSA-AES128-SHA256","TLSv1/SSLv3",128,128],
131
+ ["ECDHE-ECDSA-AES128-SHA","TLSv1/SSLv3",128,128],
132
+ ["ECDHE-ECDSA-AES256-GCM-SHA384","TLSv1/SSLv3",256,256],
133
+ ["ECDHE-ECDSA-AES256-SHA384","TLSv1/SSLv3",256,256],
134
+ ["ECDHE-ECDSA-AES256-SHA","TLSv1/SSLv3",256,256],
135
+ ["ECDHE-ECDSA-DES-CBC3-SHA","TLSv1/SSLv3",168,168],
136
+ ["ECDHE-ECDSA-RC4-SHA","TLSv1/SSLv3",128,128],
137
+ ["ECDHE-RSA-AES128-GCM-SHA256","TLSv1/SSLv3",128,128],
138
+ ["ECDHE-RSA-AES128-SHA256","TLSv1/SSLv3",128,128],
139
+ ["ECDHE-RSA-AES128-SHA","TLSv1/SSLv3",128,128],
140
+ ["ECDHE-RSA-AES256-GCM-SHA384","TLSv1/SSLv3",256,256],
141
+ ["ECDHE-RSA-AES256-SHA384","TLSv1/SSLv3",256,256],
142
+ ["ECDHE-RSA-AES256-SHA","TLSv1/SSLv3",256,256],
143
+ ["ECDHE-RSA-DES-CBC3-SHA","TLSv1/SSLv3",168,168],
144
+ ["ECDHE-RSA-RC4-SHA","TLSv1/SSLv3",128,128],
145
+ ["ECDH-RSA-AES128-GCM-SHA256","TLSv1/SSLv3",128,128],
146
+ ["ECDH-RSA-AES128-SHA256","TLSv1/SSLv3",128,128],
147
+ ["ECDH-RSA-AES128-SHA","TLSv1/SSLv3",128,128],
148
+ ["ECDH-RSA-AES256-GCM-SHA384","TLSv1/SSLv3",256,256],
149
+ ["ECDH-RSA-AES256-SHA384","TLSv1/SSLv3",256,256],
150
+ ["ECDH-RSA-AES256-SHA","TLSv1/SSLv3",256,256],
151
+ ["ECDH-RSA-DES-CBC3-SHA","TLSv1/SSLv3",168,168],
152
+ ["ECDH-RSA-RC4-SHA","TLSv1/SSLv3",128,128],
153
+ ["EDH-DSS-DES-CBC3-SHA","TLSv1/SSLv3",168,168],
105
154
  ["EDH-DSS-DES-CBC-SHA", "TLSv1/SSLv3", 56, 56],
106
- ["DES-CBC-SHA", "TLSv1/SSLv3", 56, 56],
107
- ["EXP-EDH-RSA-DES-CBC-SHA", "TLSv1/SSLv3", 40, 56],
108
- ["EXP-EDH-DSS-DES-CBC-SHA", "TLSv1/SSLv3", 40, 56],
109
- ["EXP-DES-CBC-SHA", "TLSv1/SSLv3", 40, 56],
110
- ["EXP-RC2-CBC-MD5", "TLSv1/SSLv3", 40, 128],
155
+ ["EDH-DSS-DES-CBC-SHA","TLSv1/SSLv3",56,56],
156
+ ["EDH-RSA-DES-CBC3-SHA","TLSv1/SSLv3",168,168],
157
+ ["EDH-RSA-DES-CBC-SHA","TLSv1/SSLv3",56,56],
158
+ ["EXP-DES-CBC-SHA","TLSv1/SSLv3",40,56],
159
+ ["EXP-EDH-DSS-DES-CBC-SHA","TLSv1/SSLv3",40,56],
160
+ ["EXP-EDH-RSA-DES-CBC-SHA","TLSv1/SSLv3",40,56],
161
+ ["EXP-RC2-CBC-MD5","TLSv1/SSLv3",40,128],
111
162
  ["EXP-RC4-MD5", "TLSv1/SSLv3", 40, 128],
163
+ ["PSK-3DES-EDE-CBC-SHA","TLSv1/SSLv3",168,168],
164
+ ["PSK-AES128-CBC-SHA","TLSv1/SSLv3",128,128],
165
+ ["PSK-AES256-CBC-SHA","TLSv1/SSLv3",256,256],
166
+ ["PSK-RC4-SHA","TLSv1/SSLv3",128,128],
167
+ ["RC4-MD5","TLSv1/SSLv3",128,128],
168
+ ["RC4-SHA","TLSv1/SSLv3",128,128],
169
+ ["SEED-SHA","TLSv1/SSLv3",128,128],
170
+ ["SRP-DSS-3DES-EDE-CBC-SHA","TLSv1/SSLv3",168,168],
171
+ ["SRP-DSS-AES-128-CBC-SHA","TLSv1/SSLv3",128,128],
172
+ ["SRP-DSS-AES-256-CBC-SHA","TLSv1/SSLv3",256,256],
173
+ ["SRP-RSA-3DES-EDE-CBC-SHA","TLSv1/SSLv3",168,168],
174
+ ["SRP-RSA-AES-128-CBC-SHA","TLSv1/SSLv3",128,128],
175
+ ["SRP-RSA-AES-256-CBC-SHA","TLSv1/SSLv3",256,256],
112
176
  ]
113
177
 
114
178
  # stomp URL regex pattern, for e.g. login:passcode@host:port or host:port