blather 0.8.4 → 0.8.5
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 +4 -4
- data/.travis.yml +3 -0
- data/CHANGELOG.md +3 -0
- data/lib/blather/stream/features.rb +6 -0
- data/lib/blather/version.rb +1 -1
- data/spec/blather/stream/client_spec.rb +35 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 814d92df4c498de84d675ae72989b9fd37a44f71
|
4
|
+
data.tar.gz: 30e5f51f563153e26fd4bb7941295a4102a86507
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d73eeabd9156c0a01810b82e46540cc95689128260ec131d8a01f7633fdb84e06e8b9219258e0ad392c18d1572b8e5a72134ffc674f30a8dc05e1dd3ad62c35f
|
7
|
+
data.tar.gz: e7f514173219c93df7af0858ecdfa6cbe16e17a2c6c86f8e053df9f0f7c63a3869ae86c75b4401b8d85b988dab3b413c39fb972aca5958d12f77380154048602
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
# [develop](https://github.com/adhearsion/blather/compare/master...develop)
|
2
2
|
|
3
|
+
# [v0.8.5](https://github.com/adhearsion/blather/compare/v0.8.4...v0.8.5) - [2013-06-01](https://rubygems.org/gems/blather/versions/0.8.5)
|
4
|
+
* Bugfix: Ensure that binding is always performed before session creation, regardless of the order of elements in the feature set provided by the server. This was causing incompatability with Tigase.
|
5
|
+
|
3
6
|
# [v0.8.4](https://github.com/adhearsion/blather/compare/v0.8.3...v0.8.4) - [2013-03-20](https://rubygems.org/gems/blather/versions/0.8.4)
|
4
7
|
* Bugfix: Only finish stream parser if there is one. This prevents crashes on failure to connect.
|
5
8
|
|
@@ -26,6 +26,12 @@ class Stream
|
|
26
26
|
end
|
27
27
|
|
28
28
|
def next!
|
29
|
+
bind = @features.at_xpath('ns:bind', ns: 'urn:ietf:params:xml:ns:xmpp-bind')
|
30
|
+
session = @features.at_xpath('ns:session', ns: 'urn:ietf:params:xml:ns:xmpp-session')
|
31
|
+
if bind && session && @features.children.last != session
|
32
|
+
@features.children.after session
|
33
|
+
end
|
34
|
+
|
29
35
|
@idx = @idx ? @idx+1 : 0
|
30
36
|
if stanza = @features.children[@idx]
|
31
37
|
if stanza.namespaces['xmlns'] && (klass = self.class.from_namespace(stanza.namespaces['xmlns']))
|
data/lib/blather/version.rb
CHANGED
@@ -877,6 +877,41 @@ describe Blather::Stream::Client do
|
|
877
877
|
end
|
878
878
|
end
|
879
879
|
|
880
|
+
it 'will establish a session only after a bind' do
|
881
|
+
# fixes #95 client auth issue w/ Tigase: handles random order of stream:features items, f.e. <session> before <bind>
|
882
|
+
# thx @pmashchak
|
883
|
+
|
884
|
+
state = nil
|
885
|
+
mocked_server(3) do |val, server|
|
886
|
+
case state
|
887
|
+
when nil
|
888
|
+
state = :started
|
889
|
+
server.send_data "<?xml version='1.0'?><stream:stream xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams'>"
|
890
|
+
server.send_data "<stream:features><session xmlns='urn:ietf:params:xml:ns:xmpp-session' /><bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'/></stream:features>"
|
891
|
+
val.should match(/stream:stream/)
|
892
|
+
|
893
|
+
when :started
|
894
|
+
state = :complete
|
895
|
+
doc = parse_stanza val
|
896
|
+
doc.find('/iq[@type="set"]/bind_ns:bind', :bind_ns => Blather::Stream::Resource::BIND_NS).should_not be_empty
|
897
|
+
server.send_data "<iq type='result' id='#{doc.find_first('iq')['id']}'><bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'><jid>#{client.jid}</jid></bind></iq>"
|
898
|
+
true
|
899
|
+
|
900
|
+
when :complete
|
901
|
+
doc = parse_stanza val
|
902
|
+
doc.find('/iq[@type="set"]/sess_ns:session', :sess_ns => Blather::Stream::Session::SESSION_NS).should_not be_empty
|
903
|
+
EM.stop
|
904
|
+
true
|
905
|
+
|
906
|
+
else
|
907
|
+
EM.stop
|
908
|
+
false
|
909
|
+
|
910
|
+
end
|
911
|
+
end
|
912
|
+
end
|
913
|
+
|
914
|
+
|
880
915
|
it 'will return an error if session establishment errors out' do
|
881
916
|
client.expects(:receive_data).with do |n|
|
882
917
|
n.name.should == :internal_server_error
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: blather
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeff Smick
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-06-01 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: eventmachine
|
@@ -389,7 +389,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
389
389
|
version: '0'
|
390
390
|
requirements: []
|
391
391
|
rubyforge_project:
|
392
|
-
rubygems_version: 2.0.
|
392
|
+
rubygems_version: 2.0.3
|
393
393
|
signing_key:
|
394
394
|
specification_version: 4
|
395
395
|
summary: Simpler XMPP built for speed
|