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