mad-p-xmpp4r 0.6.1 → 0.6.2

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG CHANGED
@@ -1,3 +1,9 @@
1
+ mad-p-xmpp4r 0.6.2 (26/02/2013)
2
+ ===============================
3
+ * Merge pull request #1 from Strech/patch-1
4
+ * Non-bosh connection flushes correctly
5
+ * Elaborated debug messages in HTTPBinding::Client
6
+
1
7
  mad-p-xmpp4r 0.6.1 (21/02/2013)
2
8
  ===============================
3
9
  * Modified to work with BOSH with HTTPBinding::Client
data/lib/xmpp4r/client.rb CHANGED
@@ -253,7 +253,7 @@ module Jabber
253
253
  authset = Iq.new_authset(@jid, password)
254
254
  end
255
255
  send_with_id(authset)
256
- $defout.flush
256
+ $>.flush
257
257
 
258
258
  true
259
259
  end
@@ -139,7 +139,7 @@ module Jabber
139
139
  end
140
140
  req_body.attributes['secure'] = 'true'
141
141
  req_body.attributes['xmlns'] = 'http://jabber.org/protocol/httpbind'
142
- res_body = post(req_body)
142
+ res_body = post(req_body, "sid=new rid=#{@http_rid}")
143
143
  unless res_body.name == 'body'
144
144
  raise 'Response body is no <body/> element'
145
145
  end
@@ -192,7 +192,7 @@ module Jabber
192
192
  @pending_requests += 1
193
193
  @last_send = Time.now
194
194
  }
195
- res_body = post(req_body)
195
+ res_body = post(req_body, "terminate sid=#{@http_sid} rid=#{@http_rid}")
196
196
  sleep(3)
197
197
  Jabber::debuglog("Connection closed")
198
198
  end
@@ -231,13 +231,13 @@ module Jabber
231
231
 
232
232
  ##
233
233
  # Do a POST request
234
- def post(body)
234
+ def post(body, debug_info)
235
235
  body = body.to_s
236
236
  request = Net::HTTP::Post.new(@uri.path)
237
237
  request.content_length = body.size
238
238
  request.body = body
239
239
  request['Content-Type'] = @http_content_type
240
- Jabber::debuglog("HTTP REQUEST (#{@pending_requests}/#{@http_requests}):\n#{request.body}")
240
+ Jabber::debuglog("HTTP REQUEST (#{@pending_requests}/#{@http_requests}) #{debug_info}:\n#{request.body}")
241
241
 
242
242
  net_http_args = [@uri.host, @uri.port]
243
243
  unless @proxy_args.empty?
@@ -256,7 +256,7 @@ module Jabber
256
256
  response = http.start { |http|
257
257
  http.request(request)
258
258
  }
259
- Jabber::debuglog("HTTP RESPONSE (#{@pending_requests}/#{@http_requests}): #{response.class}\n#{response.body}")
259
+ Jabber::debuglog("HTTP RESPONSE (#{@pending_requests}/#{@http_requests}) #{debug_info}: #{response.class}\n#{response.body}")
260
260
 
261
261
  unless response.kind_of? Net::HTTPSuccess
262
262
  # Unfortunately, HTTPResponses aren't exceptions
@@ -286,6 +286,7 @@ module Jabber
286
286
  def post_data(data, restart = false)
287
287
  req_body = nil
288
288
  current_rid = nil
289
+ debug_info = ''
289
290
 
290
291
  begin
291
292
  begin
@@ -306,12 +307,13 @@ module Jabber
306
307
  req_body += data unless restart
307
308
  req_body += "</body>"
308
309
  current_rid = @http_rid
310
+ debug_info = "sid=#{@http_sid} rid=#{current_rid}"
309
311
 
310
312
  @pending_requests += 1
311
313
  @last_send = Time.now
312
314
  }
313
315
 
314
- res_body = post(req_body)
316
+ res_body = post(req_body, debug_info)
315
317
 
316
318
  ensure
317
319
  @lock.synchronize {
@@ -329,18 +331,19 @@ module Jabber
329
331
  close; @exception_block.call(e, self, :parser)
330
332
  end
331
333
  else
332
- Jabber::debuglog "Exception caught when parsing HTTP response!"
334
+ Jabber::debuglog "Exception caught when parsing HTTP response! (#{debug_info})"
333
335
  close
334
336
  raise
335
337
  end
336
338
 
337
339
  rescue StandardError => e
338
- Jabber::debuglog("POST error (will retry): #{e.class}: #{e}")
340
+ Jabber::debuglog("POST error (will retry) #{debug_info}: #{e.class}: #{e}, #{e.backtrace}")
339
341
  receive_elements_with_rid(current_rid, [])
340
342
  # It's not good to resend on *any* exception,
341
343
  # but there are too many cases (Timeout, 404, 502)
342
344
  # where resending is appropriate
343
345
  # TODO: recognize these conditions and act appropriate
346
+ # FIXME: resending the same data with a new rid is wrong. should resend with the same rid
344
347
  send_data(data)
345
348
  end
346
349
  end
data/lib/xmpp4r/xmpp4r.rb CHANGED
@@ -8,7 +8,7 @@ module Jabber
8
8
  # XMPP4R Version number. This is the ONLY place where the version number
9
9
  # should be specified. This constant is used to determine the version of
10
10
  # package tarballs and generated gems.
11
- XMPP4R_VERSION = '0.6.1'
11
+ XMPP4R_VERSION = '0.6.2'
12
12
  end
13
13
 
14
14
  require 'xmpp4r/client'
data/mad-p-xmpp4r.gemspec CHANGED
@@ -245,5 +245,5 @@ Gem::Specification.new do |s|
245
245
  s.rubygems_version = "1.8.24"
246
246
  s.specification_version = 3
247
247
  s.summary = "This is a fork from XMPP4R (https://github.com/ln/xmpp4r), fixing BOSH"
248
- s.version = "0.6.1"
248
+ s.version = "0.6.2"
249
249
  end
data/test/ts_xmpp4r.rb CHANGED
@@ -13,7 +13,16 @@ require 'find'
13
13
 
14
14
  # List files' basenames, not full path!
15
15
  # EXCLUDED_FILES = [ 'tc_muc_simplemucclient.rb' ]
16
- EXCLUDED_FILES = ['tc_disconnect_cleanup.rb', './pubsub/tc_helper.rb', './muc/tc_muc_mucclient.rb', './reliable/tc_reliable_connection.rb', './reliable/tc_disconnect_exception.rb', './reliable/tc_listener_mocked_test.rb', './reliable/tc_reliable_connection.rb']
16
+ EXCLUDED_FILES = %w[
17
+ tc_disconnect_cleanup.rb
18
+ ./pubsub/tc_helper.rb
19
+ ./muc/tc_muc_mucclient.rb
20
+ ./reliable/tc_reliable_connection.rb
21
+ ./reliable/tc_disconnect_exception.rb
22
+ ./reliable/tc_listener_mocked_test.rb
23
+ ./reliable/tc_reliable_connection.rb
24
+ ./bytestreams/tc_socks5bytestreams.rb
25
+ ].map {|f| f.gsub(%r[^\.], File.dirname(__FILE__)) }
17
26
 
18
27
  tc_files = []
19
28
  tc_subdirs = []
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mad-p-xmpp4r
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.1
4
+ version: 0.6.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -12,7 +12,7 @@ authors:
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2013-02-21 00:00:00.000000000 Z
15
+ date: 2013-02-26 00:00:00.000000000 Z
16
16
  dependencies: []
17
17
  description: This is a fork from XMPP4R (https://github.com/ln/xmpp4r), fixing BOSH
18
18
  email: kaoru.maeda@gmail.com