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

More details

Full run details