Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package rubygem-websocket-driver for
openSUSE:Factory checked in at 2021-06-01 10:40:00
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-websocket-driver (Old)
and /work/SRC/openSUSE:Factory/.rubygem-websocket-driver.new.1898 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-websocket-driver"
Tue Jun 1 10:40:00 2021 rev:7 rq:896523 version:0.7.4
Changes:
--------
---
/work/SRC/openSUSE:Factory/rubygem-websocket-driver/rubygem-websocket-driver.changes
2020-07-14 08:01:54.646298863 +0200
+++
/work/SRC/openSUSE:Factory/.rubygem-websocket-driver.new.1898/rubygem-websocket-driver.changes
2021-06-01 10:41:36.565236736 +0200
@@ -1,0 +2,8 @@
+Tue Jun 1 03:43:17 UTC 2021 - Manuel Schnitzer <[email protected]>
+
+- updated to version 0.7.4
+
+ * Optimise conversions between strings and byte arrays and related encoding
+ operations, to reduce amount of allocation and copying
+
+-------------------------------------------------------------------
Old:
----
websocket-driver-0.7.3.gem
New:
----
websocket-driver-0.7.4.gem
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rubygem-websocket-driver.spec ++++++
--- /var/tmp/diff_new_pack.PX9ZeR/_old 2021-06-01 10:41:37.045237554 +0200
+++ /var/tmp/diff_new_pack.PX9ZeR/_new 2021-06-01 10:41:37.049237560 +0200
@@ -1,7 +1,7 @@
#
# spec file for package rubygem-websocket-driver
#
-# Copyright (c) 2020 SUSE LLC
+# Copyright (c) 2021 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -24,7 +24,7 @@
#
Name: rubygem-websocket-driver
-Version: 0.7.3
+Version: 0.7.4
Release: 0
%define mod_name websocket-driver
%define mod_full_name %{mod_name}-%{version}
++++++ websocket-driver-0.7.3.gem -> websocket-driver-0.7.4.gem ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/CHANGELOG.md new/CHANGELOG.md
--- old/CHANGELOG.md 2020-07-09 20:27:38.000000000 +0200
+++ new/CHANGELOG.md 2021-05-25 00:34:33.000000000 +0200
@@ -1,3 +1,8 @@
+### 0.7.4 / 2021-05-24
+
+- Optimise conversions between strings and byte arrays and related encoding
+ operations, to reduce amount of allocation and copying
+
### 0.7.3 / 2020-07-09
- Let the client accept HTTP responses that have an empty reason phrase
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/LICENSE.md new/LICENSE.md
--- old/LICENSE.md 2020-07-09 20:27:38.000000000 +0200
+++ new/LICENSE.md 2021-05-25 00:34:33.000000000 +0200
@@ -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 -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/README.md new/README.md
--- old/README.md 2020-07-09 20:27:38.000000000 +0200
+++ new/README.md 2021-05-25 00:34:33.000000000 +0200
@@ -1,4 +1,4 @@
-# websocket-driver [](https://travis-ci.org/faye/websocket-driver-ruby)
+# websocket-driver
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
@@ -150,7 +150,16 @@
if WebSocket::Driver.websocket?(@driver.env)
@driver.start
else
- # handle other HTTP requests
+ # handle other HTTP requests, for example
+ body = '<h1>hello</h1>'
+ response = [
+ 'HTTP/1.1 200 OK',
+ 'Content-Type: text/plain',
+ "Content-Length: #{body.bytesize}",
+ '',
+ body
+ ]
+ send_data response.join("\r\n")
end
end
Binary files old/checksums.yaml.gz and new/checksums.yaml.gz differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lib/websocket/driver/draft75.rb
new/lib/websocket/driver/draft75.rb
--- old/lib/websocket/driver/draft75.rb 2020-07-09 20:27:38.000000000 +0200
+++ new/lib/websocket/driver/draft75.rb 2021-05-25 00:34:33.000000000 +0200
@@ -56,7 +56,7 @@
when 2 then
if octet == 0xFF
@stage = 0
- emit(:message, MessageEvent.new(Driver.encode(@buffer,
UNICODE)))
+ emit(:message, MessageEvent.new(Driver.encode(@buffer,
Encoding::UTF_8)))
else
if @length
@skipped += 1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lib/websocket/driver/draft76.rb
new/lib/websocket/driver/draft76.rb
--- old/lib/websocket/driver/draft76.rb 2020-07-09 20:27:38.000000000 +0200
+++ new/lib/websocket/driver/draft76.rb 2021-05-25 00:34:33.000000000 +0200
@@ -9,7 +9,7 @@
input = (@socket.env['rack.input'] || StringIO.new('')).read
input = input.dup if input.frozen?
@stage = -1
- @body = input.force_encoding(BINARY)
+ @body = input.force_encoding(Encoding::BINARY)
@headers.clear
@headers['Upgrade'] = 'WebSocket'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lib/websocket/driver/hybi/message.rb
new/lib/websocket/driver/hybi/message.rb
--- old/lib/websocket/driver/hybi/message.rb 2020-07-09 20:27:38.000000000
+0200
+++ new/lib/websocket/driver/hybi/message.rb 2021-05-25 00:34:33.000000000
+0200
@@ -14,7 +14,7 @@
@rsv2 = false
@rsv3 = false
@opcode = nil
- @data = String.new('').force_encoding(BINARY)
+ @data = String.new('').force_encoding(Encoding::BINARY)
end
def <<(frame)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lib/websocket/driver/hybi.rb
new/lib/websocket/driver/hybi.rb
--- old/lib/websocket/driver/hybi.rb 2020-07-09 20:27:38.000000000 +0200
+++ new/lib/websocket/driver/hybi.rb 2021-05-25 00:34:33.000000000 +0200
@@ -52,7 +52,7 @@
MIN_RESERVED_ERROR = 3000
MAX_RESERVED_ERROR = 4999
- PACK_FORMATS = { 2 => 'n', 8 => 'Q>' }
+ PACK_FORMATS = { 2 => 'S>', 8 => 'Q>' }
def initialize(socket, options = {})
super
@@ -160,14 +160,13 @@
message = Message.new
frame = Frame.new
- is_text = String === buffer
message.rsv1 = message.rsv2 = message.rsv3 = false
- message.opcode = OPCODES[type || (is_text ? :text : :binary)]
+ message.opcode = OPCODES[type || (String === buffer ? :text : :binary)]
- payload = is_text ? buffer.bytes.to_a : buffer
- payload = [code].pack(PACK_FORMATS[2]).bytes.to_a + payload if code
- message.data = payload.pack('C*')
+ payload = Driver.encode(buffer, Encoding::BINARY)
+ payload = [code, payload].pack('S>a*') if code
+ message.data = payload
if MESSAGE_OPCODES.include?(message.opcode)
message = @extensions.process_outgoing_message(message)
@@ -194,33 +193,38 @@
def send_frame(frame)
length = frame.length
- buffer = []
+ values = []
+ format = 'C2'
masked = frame.masked ? MASK : 0
- buffer[0] = (frame.final ? FIN : 0) |
+ values[0] = (frame.final ? FIN : 0) |
(frame.rsv1 ? RSV1 : 0) |
(frame.rsv2 ? RSV2 : 0) |
(frame.rsv3 ? RSV3 : 0) |
frame.opcode
if length <= 125
- buffer[1] = masked | length
+ values[1] = masked | length
elsif length <= 65535
- buffer[1] = masked | 126
- buffer[2..3] = [length].pack(PACK_FORMATS[2]).bytes.to_a
+ values[1] = masked | 126
+ values[2] = length
+ format << 'S>'
else
- buffer[1] = masked | 127
- buffer[2..9] = [length].pack(PACK_FORMATS[8]).bytes.to_a
+ values[1] = masked | 127
+ values[2] = length
+ format << 'Q>'
end
if frame.masked
- buffer.concat(frame.masking_key.bytes.to_a)
- buffer.concat(Mask.mask(frame.payload, frame.masking_key).bytes.to_a)
+ values << frame.masking_key
+ values << Mask.mask(frame.payload, frame.masking_key)
+ format << 'a4a*'
else
- buffer.concat(frame.payload.bytes.to_a)
+ values << frame.payload
+ format << 'a*'
end
- @socket.write(buffer.pack('C*'))
+ @socket.write(values.pack(format))
end
def handshake_response
@@ -343,7 +347,6 @@
opcode = frame.opcode
payload = frame.payload = Mask.mask(buffer, @frame.masking_key)
bytesize = payload.bytesize
- bytes = payload.bytes.to_a
@frame = nil
@@ -357,8 +360,8 @@
@message << frame
when OPCODES[:close] then
- code = (bytesize >= 2) ? payload.unpack(PACK_FORMATS[2]).first :
nil
- reason = (bytesize > 2) ? Driver.encode(bytes[2..-1] || [],
UNICODE) : nil
+ code, reason = payload.unpack('S>a*') if bytesize >= 2
+ reason = Driver.encode(reason || '', Encoding::UTF_8)
unless (bytesize == 0) or
(code && code >= MIN_RESERVED_ERROR && code <=
MAX_RESERVED_ERROR) or
@@ -366,7 +369,7 @@
code = ERRORS[:protocol_error]
end
- if bytesize > 125 or (bytesize > 2 and reason.nil?)
+ if bytesize > 125 or !reason.valid_encoding?
code = ERRORS[:protocol_error]
end
@@ -377,7 +380,7 @@
emit(:ping, PingEvent.new(payload))
when OPCODES[:pong] then
- message = Driver.encode(payload, UNICODE)
+ message = Driver.encode(payload, Encoding::UTF_8)
callback = @ping_callbacks[message]
@ping_callbacks.delete(message)
callback.call if callback
@@ -395,7 +398,8 @@
case message.opcode
when OPCODES[:text] then
- payload = Driver.encode(payload, UNICODE)
+ payload = Driver.encode(payload, Encoding::UTF_8)
+ payload = nil unless payload.valid_encoding?
when OPCODES[:binary]
payload = payload.bytes.to_a
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lib/websocket/driver/stream_reader.rb
new/lib/websocket/driver/stream_reader.rb
--- old/lib/websocket/driver/stream_reader.rb 2020-07-09 20:27:38.000000000
+0200
+++ new/lib/websocket/driver/stream_reader.rb 2021-05-25 00:34:33.000000000
+0200
@@ -6,13 +6,13 @@
MINIMUM_AUTOMATIC_PRUNE_OFFSET = 128
def initialize
- @buffer = String.new('').force_encoding(BINARY)
+ @buffer = String.new('').force_encoding(Encoding::BINARY)
@offset = 0
end
def put(chunk)
return unless chunk and chunk.bytesize > 0
- @buffer << chunk.force_encoding(BINARY)
+ @buffer << chunk.force_encoding(Encoding::BINARY)
end
# Read bytes from the data:
@@ -42,7 +42,7 @@
buffer_size = @buffer.bytesize
if @offset > buffer_size
- @buffer = String.new('').force_encoding(BINARY)
+ @buffer = String.new('').force_encoding(Encoding::BINARY)
else
@buffer = @buffer.byteslice(@offset, buffer_size - @offset)
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lib/websocket/driver.rb new/lib/websocket/driver.rb
--- old/lib/websocket/driver.rb 2020-07-09 20:27:38.000000000 +0200
+++ new/lib/websocket/driver.rb 2021-05-25 00:34:33.000000000 +0200
@@ -44,9 +44,6 @@
MAX_LENGTH = 0x3ffffff
STATES = [:connecting, :open, :closing, :closed]
- BINARY = 'ASCII-8BIT'
- UNICODE = 'UTF-8'
-
ConnectEvent = Struct.new(nil)
OpenEvent = Struct.new(nil)
MessageEvent = Struct.new(:data)
@@ -118,7 +115,7 @@
end
def text(message)
- message = message.encode(UNICODE) unless message.encoding.name == UNICODE
+ message = message.encode(Encoding::UTF_8) unless message.encoding ==
Encoding::UTF_8
frame(message, :text)
end
@@ -201,15 +198,15 @@
case string
when Array then
string = string.pack('C*')
- encoding ||= BINARY
+ encoding ||= Encoding::BINARY
when String then
- encoding ||= UNICODE
+ encoding ||= Encoding::UTF_8
end
- unless string.encoding.name == encoding
+ unless string.encoding == encoding
string = string.dup if string.frozen?
string.force_encoding(encoding)
end
- string.valid_encoding? ? string : nil
+ string
end
def self.validate_options(options, valid_keys)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/metadata new/metadata
--- old/metadata 2020-07-09 20:27:38.000000000 +0200
+++ new/metadata 2021-05-25 00:34:33.000000000 +0200
@@ -1,14 +1,14 @@
--- !ruby/object:Gem::Specification
name: websocket-driver
version: !ruby/object:Gem::Version
- version: 0.7.3
+ version: 0.7.4
platform: ruby
authors:
- James Coglan
autorequire:
bindir: bin
cert_chain: []
-date: 2020-07-09 00:00:00.000000000 Z
+date: 2021-05-24 00:00:00.000000000 Z
dependencies:
- !ruby/object:Gem::Dependency
name: websocket-extensions
@@ -135,7 +135,7 @@
- !ruby/object:Gem::Version
version: '0'
requirements: []
-rubygems_version: 3.1.2
+rubygems_version: 3.1.6
signing_key:
specification_version: 4
summary: WebSocket protocol handler with pluggable I/O