New Upstream Release - ruby-faye-websocket
Ready changes
Summary
Merged new upstream version: 0.11.2 (was: 0.11.1).
Resulting package
Built on 2023-05-24T13:26 (took 4m21s)
The resulting binary packages can be installed (if you have the apt repository enabled) by running one of:
apt install -t fresh-releases ruby-faye-websocket
Lintian Result
Diff
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
new file mode 100644
index 0000000..925e396
--- /dev/null
+++ b/.github/workflows/test.yml
@@ -0,0 +1,25 @@
+on:
+ - push
+ - pull_request
+
+jobs:
+ test:
+ strategy:
+ fail-fast: false
+ matrix:
+ ruby:
+ - ruby-2.4
+ - ruby-2.5
+ - ruby-2.6
+ - ruby-2.7
+ - ruby-3.0
+ - jruby-9.2
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ - uses: ruby/setup-ruby@v1
+ with:
+ ruby-version: ${{ matrix.ruby }}
+ bundler-cache: true
+ - run: ruby --version
+ - run: bundle exec rspec
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index 0c4c2c7..0000000
--- a/.travis.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-sudo: false
-dist: trusty
-language: ruby
-
-rvm:
- - 1.9.3
- - 2.0.0
- - 2.1.10
- - 2.2.10
- - 2.3.8
- - 2.4.10
- - 2.5.8
- - 2.6.6
- - 2.7.1
- - jruby-9.0
- - jruby-9.1
- - jruby-9.2
-
-before_install:
- - '[[ "$(ruby --version)" != *"1.9.3"* ]] || gem update --system 2.4.8'
-
-script:
- - bundle exec rspec
diff --git a/CHANGELOG.md b/CHANGELOG.md
index a073e00..2a58eb9 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,12 @@
+### 0.11.2 / 2023-04-04
+
+- Handle SSL certificate chains where not all the intermediate certificates are
+ recognised by the client
+
+### 0.11.1 / 2021-05-24
+
+- Prevent the client hanging if `close()` is called when already closing
+
### 0.11.0 / 2020-07-31
- Implement TLS certificate verification and enable it by default on client
diff --git a/LICENSE.md b/LICENSE.md
index 9475f06..1b47ee5 100644
--- a/LICENSE.md
+++ b/LICENSE.md
@@ -1,4 +1,4 @@
-Copyright 2010-2020 James Coglan
+Copyright 2010-2021 James Coglan
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
diff --git a/README.md b/README.md
index fdc055d..0d996fd 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# faye-websocket [![Build status](https://secure.travis-ci.org/faye/faye-websocket-ruby.svg)](http://travis-ci.org/faye/faye-websocket-ruby)
+# faye-websocket
This is a general-purpose WebSocket implementation extracted from the
[Faye](http://faye.jcoglan.com) project. It provides classes for easily building
diff --git a/debian/changelog b/debian/changelog
index f26fa64..a9f4783 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,10 +1,12 @@
-ruby-faye-websocket (0.11.0-2) UNRELEASED; urgency=medium
+ruby-faye-websocket (0.11.2-1) UNRELEASED; urgency=medium
* Bump debhelper from old 12 to 13.
* debian/watch: Use GitHub /tags rather than /releases page.
* Update standards version to 4.6.1, no changes needed.
+ * New upstream release.
+ * New upstream release.
- -- Debian Janitor <janitor@jelmer.uk> Mon, 31 Oct 2022 07:46:34 -0000
+ -- Debian Janitor <janitor@jelmer.uk> Wed, 24 May 2023 13:22:38 -0000
ruby-faye-websocket (0.11.0-1) unstable; urgency=medium
diff --git a/faye-websocket.gemspec b/faye-websocket.gemspec
index f490b19..ddd60dc 100644
--- a/faye-websocket.gemspec
+++ b/faye-websocket.gemspec
@@ -1,6 +1,6 @@
Gem::Specification.new do |s|
s.name = 'faye-websocket'
- s.version = '0.11.0'
+ s.version = '0.11.2'
s.summary = 'Standards-compliant WebSocket server and client'
s.author = 'James Coglan'
s.email = 'jcoglan@gmail.com'
@@ -31,8 +31,10 @@ Gem::Specification.new do |s|
end
unless jruby
+ thin_version = (RUBY_VERSION < '2.0.0') ? '< 1.8.0' : '> 0'
+ s.add_development_dependency 'thin', '>= 1.2.0', thin_version
+
s.add_development_dependency 'rainbows', '~> 4.4.0'
- s.add_development_dependency 'thin', '>= 1.2.0'
end
unless rbx
diff --git a/lib/faye/websocket/api.rb b/lib/faye/websocket/api.rb
index 8cd6bff..51c193d 100644
--- a/lib/faye/websocket/api.rb
+++ b/lib/faye/websocket/api.rb
@@ -86,8 +86,11 @@ module Faye
"#{ code } is neither."
end
+ if @ready_state < CLOSING
+ @close_timer = EventMachine.add_timer(CLOSE_TIMEOUT) { begin_close('', 1006) }
+ end
+
@ready_state = CLOSING unless @ready_state == CLOSED
- @close_timer = EventMachine.add_timer(CLOSE_TIMEOUT) { begin_close('', 1006) }
@driver.close(reason, code)
end
diff --git a/lib/faye/websocket/ssl_verifier.rb b/lib/faye/websocket/ssl_verifier.rb
index b6de380..b9afdde 100644
--- a/lib/faye/websocket/ssl_verifier.rb
+++ b/lib/faye/websocket/ssl_verifier.rb
@@ -42,14 +42,13 @@ module Faye
return true unless should_verify?
certificate = parse_cert(cert_text)
- return false unless certificate
-
- unless @cert_store.verify(certificate)
- raise SSLError, "Unable to verify the server certificate for '#{ @hostname }'"
+ unless certificate
+ raise SSLError, "Unable to parse SSL certificate for '#{ @hostname }'"
end
- store_cert(certificate)
@last_cert = certificate
+ @last_cert_verified = @cert_store.verify(certificate)
+ store_cert(certificate) if @last_cert_verified
true
end
@@ -57,6 +56,10 @@ module Faye
def ssl_handshake_completed
return unless should_verify?
+ unless @last_cert_verified
+ raise SSLError, "Unable to verify the server certificate for '#{ @hostname }'"
+ end
+
unless identity_verified?
raise SSLError, "Host '#{ @hostname }' does not match the server certificate"
end
diff --git a/spec/server.crt b/spec/server.crt
index e8918e5..a960201 100644
--- a/spec/server.crt
+++ b/spec/server.crt
@@ -1,11 +1,17 @@
-----BEGIN CERTIFICATE-----
-MIIBnzCCAQgCCQCPSxx7kzVcOjANBgkqhkiG9w0BAQUFADAUMRIwEAYDVQQDDAls
-b2NhbGhvc3QwHhcNMjAwNTE0MTYzNzA4WhcNMjEwNTE0MTYzNzA4WjAUMRIwEAYD
-VQQDDAlsb2NhbGhvc3QwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMrHfNcE
-oqn4Na4TnpoxvIwDu7aBV/qRDPit+i7wZpMKBcUJVNQXfLsB4lJEgJwJ9QnPl6TX
-Wsi9lbcpDsEdtVhmuKFBlS+/sgVh/MR6H/8VdxPq/uq/t/VXYbQitMveHdTtprve
-bDSTB5+JAD8j5GSdML0A5mov5UXMdPqZMos5AgMBAAEwDQYJKoZIhvcNAQEFBQAD
-gYEABwcVvH5AslMUbKKjF4baWHO2dDji+6bc9C7jEdtJ6kDlXW7NDlyvra31NTgB
-tySfNK5VEd4hcv3X2DJvYboTjd0PB1OCv9vJvGus9aiKAAtM4YjYWDvfBtqwjxtM
-88aTZWUI7JEs1zurcVGgm9cne3lmdGQpHDnh09WPlxKGkyc=
+MIICpDCCAYwCCQDjlB7fIFMWczANBgkqhkiG9w0BAQUFADAUMRIwEAYDVQQDDAls
+b2NhbGhvc3QwHhcNMjEwNTE3MjI1OTI4WhcNMjIwNTE3MjI1OTI4WjAUMRIwEAYD
+VQQDDAlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDT
+wWQBtN2lFxcpmC/dn6ACyhPXHkpaFebv/QgMW7IMKPaRHFHTjFntowyTUykhXG71
+kZoJJXgFkppJH85Uecij3xykrDCpqRmabiFfdxZCLxql798S/4Vq3TnspLyISh57
+cnGxNxvFvhjXRVjUe9ABKIBUCISfJgKWm+wcnyov/sWsExmtXwUdlvlBIqcylEIT
+WYWsi3kIaYrqqKwj55zGA6qByakGbwVRHQ3hF/wAHnwCY0qPKQOnYD85NfZmG2mX
+mYAEs4v3jiRE77f4ywzVcY+V25U22l8PsJW/VyqXfg9nvvMXj3+iBfoaIta0juRc
+9Cq0EXptbKEUKqlkb4E5AgMBAAEwDQYJKoZIhvcNAQEFBQADggEBAMgxHHssj9qg
+RiJ+nsK4ywTWgn8myXgi3CE5W1dHI3t1eh4BbfDMxNxOzNiWGEfhP1eDQ2Osy2Iw
+0MZ2iyjsU5P0dVhiaCDnES95fWKm0D9sCzYeG+SpEFKUm6ZizfZKfFHR5mB1cC1R
+NTn0Yk/meMATwwWhodwihBPJRG6vZE96d0uYo1PuJPIB7FUL4CbH/nYR11Xys0+f
+AgVnqdiAtEFLEOfFQlLrKKtBD10KUUoF2Vvxb/aENf1YXyRRbCGmqqUiHG+i4DTa
+aY2V/L/2Xh+NtbVBG2v3yRgRMXbHSQpCTl5WQ0pFZFk40x+d5KOdfTaXXGld4wP2
+W52EABvKkPk=
-----END CERTIFICATE-----
diff --git a/spec/server.key b/spec/server.key
index 06c88a3..038bab7 100644
--- a/spec/server.key
+++ b/spec/server.key
@@ -1,15 +1,27 @@
-----BEGIN RSA PRIVATE KEY-----
-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
+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
-----END RSA PRIVATE KEY-----
Debdiff
[The following lists of changes regard files as different if they have different names, permissions or owners.]
Files in second set of .debs but not in first
-rw-r--r-- root/root /usr/share/rubygems-integration/all/specifications/faye-websocket-0.11.2.gemspec
Files in first set of .debs but not in second
-rw-r--r-- root/root /usr/share/rubygems-integration/all/specifications/faye-websocket-0.11.0.gemspec
No differences were encountered in the control files