stomp 1.3.1 → 1.3.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -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