diff --git a/0.6.5.tar.gz b/0.6.5.tar.gz deleted file mode 100644 index f532ad3..0000000 Binary files a/0.6.5.tar.gz and /dev/null differ diff --git a/0.7.6.tar.gz b/0.7.6.tar.gz new file mode 100644 index 0000000..0028a83 Binary files /dev/null and b/0.7.6.tar.gz differ diff --git a/Fix-handling-of-default-ports-on-ruby-3.1.patch b/Fix-handling-of-default-ports-on-ruby-3.1.patch deleted file mode 100644 index 846ac8b..0000000 --- a/Fix-handling-of-default-ports-on-ruby-3.1.patch +++ /dev/null @@ -1,140 +0,0 @@ -From 716f19d79e94541bd525f228bfe184420c7c44ad Mon Sep 17 00:00:00 2001 -From: James Coglan -Date: Sat, 10 Sep 2022 15:37:55 +0100 -Subject: [PATCH] Fix handling of default ports on Ruby 3.1 - ---- - lib/websocket/driver.rb | 9 ++++++ - lib/websocket/driver/client.rb | 3 +- - lib/websocket/driver/proxy.rb | 4 +-- - spec/websocket/driver/client_spec.rb | 48 ++++++++++++++++++++++++++++ - 4 files changed, 59 insertions(+), 5 deletions(-) - -diff --git a/lib/websocket/driver.rb b/lib/websocket/driver.rb -index d568e91..7033a82 100644 ---- a/lib/websocket/driver.rb -+++ b/lib/websocket/driver.rb -@@ -42,6 +42,7 @@ module WebSocket - end - - MAX_LENGTH = 0x3ffffff -+ PORTS = { 'ws' => 80, 'wss' => 443 } - STATES = [:connecting, :open, :closing, :closed] - - BINARY = 'ASCII-8BIT' -@@ -178,6 +179,14 @@ module WebSocket - string.valid_encoding? ? string : nil - end - -+ def self.host_header(uri) -+ host = uri.host -+ if uri.port and uri.port != PORTS[uri.scheme] -+ host += ":#{uri.port}" -+ end -+ host -+ end -+ - def self.validate_options(options, valid_keys) - options.keys.each do |key| - unless valid_keys.include?(key) -diff --git a/lib/websocket/driver/client.rb b/lib/websocket/driver/client.rb -index 0a45534..68e10eb 100644 ---- a/lib/websocket/driver/client.rb -+++ b/lib/websocket/driver/client.rb -@@ -23,11 +23,10 @@ module WebSocket - raise URIError, "#{socket.url} is not a valid WebSocket URL" - end - -- host = uri.host + (uri.port ? ":#{uri.port}" : '') - path = (uri.path == '') ? '/' : uri.path - @pathname = path + (uri.query ? '?' + uri.query : '') - -- @headers['Host'] = host -+ @headers['Host'] = Driver.host_header(uri) - @headers['Upgrade'] = 'websocket' - @headers['Connection'] = 'Upgrade' - @headers['Sec-WebSocket-Key'] = @key -diff --git a/lib/websocket/driver/proxy.rb b/lib/websocket/driver/proxy.rb -index e4891e3..69f59a5 100644 ---- a/lib/websocket/driver/proxy.rb -+++ b/lib/websocket/driver/proxy.rb -@@ -4,8 +4,6 @@ module WebSocket - class Proxy - include EventEmitter - -- PORTS = {'ws' => 80, 'wss' => 443} -- - attr_reader :status, :headers - - def initialize(client, origin, options) -@@ -20,7 +18,7 @@ module WebSocket - @state = 0 - - @headers = Headers.new -- @headers['Host'] = @origin.host + (@origin.port ? ":#{@origin.port}" : '') -+ @headers['Host'] = Driver.host_header(@origin) - @headers['Connection'] = 'keep-alive' - @headers['Proxy-Connection'] = 'keep-alive' - -diff --git a/spec/websocket/driver/client_spec.rb b/spec/websocket/driver/client_spec.rb -index 75b7f4f..abdde2c 100644 ---- a/spec/websocket/driver/client_spec.rb -+++ b/spec/websocket/driver/client_spec.rb -@@ -121,6 +121,54 @@ describe WebSocket::Driver::Client do - end - end - -+ describe "with an explicit port" do -+ let(:url) { "ws://www.example.com:3000/socket" } -+ -+ it "includes the port in the Host header" do -+ expect(socket).to receive(:write).with( -+ "GET /socket HTTP/1.1\r\n" + -+ "Host: www.example.com:3000\r\n" + -+ "Upgrade: websocket\r\n" + -+ "Connection: Upgrade\r\n" + -+ "Sec-WebSocket-Key: 2vBVWg4Qyk3ZoM/5d3QD9Q==\r\n" + -+ "Sec-WebSocket-Version: 13\r\n" + -+ "\r\n") -+ driver.start -+ end -+ end -+ -+ describe "with a wss: URL" do -+ let(:url) { "wss://www.example.com/socket" } -+ -+ it "does not include the port in the Host header" do -+ expect(socket).to receive(:write).with( -+ "GET /socket HTTP/1.1\r\n" + -+ "Host: www.example.com\r\n" + -+ "Upgrade: websocket\r\n" + -+ "Connection: Upgrade\r\n" + -+ "Sec-WebSocket-Key: 2vBVWg4Qyk3ZoM/5d3QD9Q==\r\n" + -+ "Sec-WebSocket-Version: 13\r\n" + -+ "\r\n") -+ driver.start -+ end -+ end -+ -+ describe "with a wss: URL and explicit port" do -+ let(:url) { "wss://www.example.com:3000/socket" } -+ -+ it "includes the port in the Host header" do -+ expect(socket).to receive(:write).with( -+ "GET /socket HTTP/1.1\r\n" + -+ "Host: www.example.com:3000\r\n" + -+ "Upgrade: websocket\r\n" + -+ "Connection: Upgrade\r\n" + -+ "Sec-WebSocket-Key: 2vBVWg4Qyk3ZoM/5d3QD9Q==\r\n" + -+ "Sec-WebSocket-Version: 13\r\n" + -+ "\r\n") -+ driver.start -+ end -+ end -+ - describe "with custom headers" do - before do - driver.set_header "User-Agent", "Chrome" --- -2.27.0 - diff --git a/rubygem-websocket-driver.spec b/rubygem-websocket-driver.spec index 5ba18bc..333a41b 100644 --- a/rubygem-websocket-driver.spec +++ b/rubygem-websocket-driver.spec @@ -1,15 +1,14 @@ %global gem_name websocket-driver Name: rubygem-%{gem_name} -Version: 0.6.5 -Release: 2 +Version: 0.7.6 +Release: 1 Summary: WebSocket protocol handler with pluggable I/O License: MIT URL: http://github.com/faye/websocket-driver-ruby Source0: https://rubygems.org/gems/websocket-driver-%{version}.gem -Source1: https://github.com/faye/websocket-driver-ruby/archive/%{version}.tar.gz -Patch0: Fix-handling-of-default-ports-on-ruby-3.1.patch +Source1: https://github.com/faye/websocket-driver-ruby/archive/refs/tags/%{version}.tar.gz BuildRequires: ruby(release) rubygems-devel ruby-devel gcc rubygem(websocket-extensions) -BuildRequires: rubygem(rspec) +BuildRequires: rubygem(rspec) rubygem(did_you_mean) %description This module provides a complete implementation of the WebSocket protocols that can be hooked up to any TCP library. It aims to simplify things by decoupling @@ -47,7 +46,6 @@ pushd .%{gem_instdir} tar xf %{SOURCE1} cd %{gem_name}-ruby-%{version} sed -i '/bundler/ s/^/#/' spec/spec_helper.rb -cat %{PATCH0} | patch -p1 rspec -I$(dirs +1)%{gem_extdir_mri} spec popd @@ -63,9 +61,11 @@ popd %doc %{gem_docdir} %doc %{gem_instdir}/CHANGELOG.md %doc %{gem_instdir}/README.md -%{gem_instdir}/examples %changelog +* Wed Nov 15 2023 Ge Wang - 0.7.6-1 +- Update to version 0.7.6 + * Tue Jan 17 2023 wulei - 0.6.5-2 - Fix handling of default ports on Ruby 3.1 diff --git a/websocket-driver-0.6.5.gem b/websocket-driver-0.6.5.gem deleted file mode 100644 index e3a0776..0000000 Binary files a/websocket-driver-0.6.5.gem and /dev/null differ diff --git a/websocket-driver-0.7.6.gem b/websocket-driver-0.7.6.gem new file mode 100644 index 0000000..920a396 Binary files /dev/null and b/websocket-driver-0.7.6.gem differ