Hello community,
here is the log from the commit of package rubygem-serverengine for
openSUSE:Factory checked in at 2020-03-07 21:39:55
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-serverengine (Old)
and /work/SRC/openSUSE:Factory/.rubygem-serverengine.new.26092 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-serverengine"
Sat Mar 7 21:39:55 2020 rev:7 rq:773848 version:2.2.1
Changes:
--------
---
/work/SRC/openSUSE:Factory/rubygem-serverengine/rubygem-serverengine.changes
2019-06-19 21:01:09.654126420 +0200
+++
/work/SRC/openSUSE:Factory/.rubygem-serverengine.new.26092/rubygem-serverengine.changes
2020-03-07 21:39:58.676342617 +0100
@@ -1,0 +2,15 @@
+Mon Feb 10 15:47:25 UTC 2020 - Stephan Kulow <[email protected]>
+
+- updated to version 2.2.1
+ see installed Changelog
+
+ 2020-01-24 version 2.2.1:
+
+ * Fix IPv6 dual-stack mode issue for UDP
+ * experimental: Add SERVERENGINE_USE_SOCKET_REUSEPORT envvar to enable
SO_REUSEPORT
+
+ 2019-11-16 version 2.2.0:
+
+ * Fix IPv6 dual-stack mode issue for TCP
+
+-------------------------------------------------------------------
Old:
----
serverengine-2.1.1.gem
New:
----
serverengine-2.2.1.gem
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rubygem-serverengine.spec ++++++
--- /var/tmp/diff_new_pack.aigVmK/_old 2020-03-07 21:39:59.192342965 +0100
+++ /var/tmp/diff_new_pack.aigVmK/_new 2020-03-07 21:39:59.192342965 +0100
@@ -1,7 +1,7 @@
#
# spec file for package rubygem-serverengine
#
-# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2020 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-serverengine
-Version: 2.1.1
+Version: 2.2.1
Release: 0
%define mod_name serverengine
%define mod_full_name %{mod_name}-%{version}
@@ -32,7 +32,7 @@
BuildRequires: %{ruby >= 2.1.0}
BuildRequires: %{rubygem gem2rpm}
BuildRequires: ruby-macros >= 5
-Url: https://github.com/fluent/serverengine
+URL: https://github.com/fluent/serverengine
Source: https://rubygems.org/gems/%{mod_full_name}.gem
Source1: gem2rpm.yml
Summary: ServerEngine - multiprocess server framework
++++++ serverengine-2.1.1.gem -> serverengine-2.2.1.gem ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Changelog new/Changelog
--- old/Changelog 2019-04-23 08:40:45.000000000 +0200
+++ new/Changelog 2020-01-24 07:55:38.000000000 +0100
@@ -1,3 +1,12 @@
+2020-01-24 version 2.2.1:
+
+* Fix IPv6 dual-stack mode issue for UDP
+* experimental: Add SERVERENGINE_USE_SOCKET_REUSEPORT envvar to enable
SO_REUSEPORT
+
+2019-11-16 version 2.2.0:
+
+* Fix IPv6 dual-stack mode issue for TCP
+
2019-04-22 version 2.1.1:
* Fix bug to ignore SIGDUMP_SIGNAL
Binary files old/checksums.yaml.gz and new/checksums.yaml.gz differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lib/serverengine/signal_thread.rb
new/lib/serverengine/signal_thread.rb
--- old/lib/serverengine/signal_thread.rb 2019-04-23 08:40:45.000000000
+0200
+++ new/lib/serverengine/signal_thread.rb 2020-01-24 07:55:38.000000000
+0100
@@ -67,7 +67,7 @@
def signal_handler_main(sig)
# here always creates new thread to avoid
- # complicated race conditin in signal handlers
+ # complicated race condition in signal handlers
Thread.new do
begin
enqueue(sig)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lib/serverengine/socket_manager_unix.rb
new/lib/serverengine/socket_manager_unix.rb
--- old/lib/serverengine/socket_manager_unix.rb 2019-04-23 08:40:45.000000000
+0200
+++ new/lib/serverengine/socket_manager_unix.rb 2020-01-24 07:55:38.000000000
+0100
@@ -50,19 +50,30 @@
private
def listen_tcp_new(bind_ip, port)
- sock = TCPServer.new(bind_ip.to_s, port)
- sock.listen(Socket::SOMAXCONN) # TODO make backlog configurable if
necessary
- return sock
+ if ENV['SERVERENGINE_USE_SOCKET_REUSEPORT'] == '1'
+ # Based on Addrinfo#listen
+ tsock = Socket.new(bind_ip.ipv6? ? ::Socket::AF_INET6 :
::Socket::AF_INET, ::Socket::SOCK_STREAM, 0)
+ tsock.ipv6only! if bind_ip.ipv6?
+ tsock.setsockopt(:SOCKET, :REUSEPORT, true)
+ tsock.setsockopt(:SOCKET, :REUSEADDR, true)
+ tsock.bind(Addrinfo.tcp(bind_ip.to_s, port))
+ tsock.listen(::Socket::SOMAXCONN)
+ tsock.autoclose = false
+ TCPServer.for_fd(tsock.fileno)
+ else
+ # TCPServer.new doesn't set IPV6_V6ONLY flag, so use Addrinfo class
instead.
+ # TODO: make backlog configurable if necessary
+ tsock = Addrinfo.tcp(bind_ip.to_s, port).listen(::Socket::SOMAXCONN)
+ tsock.autoclose = false
+ TCPServer.for_fd(tsock.fileno)
+ end
end
def listen_udp_new(bind_ip, port)
- if bind_ip.ipv6?
- sock = UDPSocket.new(Socket::AF_INET6)
- else
- sock = UDPSocket.new(Socket::AF_INET)
- end
- sock.bind(bind_ip.to_s, port)
- return sock
+ # UDPSocket.new doesn't set IPV6_V6ONLY flag, so use Addrinfo class
instead.
+ usock = Addrinfo.udp(bind_ip.to_s, port).bind
+ usock.autoclose = false
+ UDPSocket.for_fd(usock.fileno)
end
def start_server(path)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lib/serverengine/version.rb
new/lib/serverengine/version.rb
--- old/lib/serverengine/version.rb 2019-04-23 08:40:45.000000000 +0200
+++ new/lib/serverengine/version.rb 2020-01-24 07:55:38.000000000 +0100
@@ -1,3 +1,3 @@
module ServerEngine
- VERSION = "2.1.1"
+ VERSION = "2.2.1"
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/metadata new/metadata
--- old/metadata 2019-04-23 08:40:45.000000000 +0200
+++ new/metadata 2020-01-24 07:55:38.000000000 +0100
@@ -1,14 +1,14 @@
--- !ruby/object:Gem::Specification
name: serverengine
version: !ruby/object:Gem::Version
- version: 2.1.1
+ version: 2.2.1
platform: ruby
authors:
- Sadayuki Furuhashi
autorequire:
bindir: bin
cert_chain: []
-date: 2019-04-23 00:00:00.000000000 Z
+date: 2020-01-24 00:00:00.000000000 Z
dependencies:
- !ruby/object:Gem::Dependency
name: sigdump
@@ -153,8 +153,7 @@
- !ruby/object:Gem::Version
version: '0'
requirements: []
-rubyforge_project:
-rubygems_version: 2.6.14.1
+rubygems_version: 3.0.3
signing_key:
specification_version: 4
summary: ServerEngine - multiprocess server framework
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/spec/socket_manager_spec.rb
new/spec/socket_manager_spec.rb
--- old/spec/socket_manager_spec.rb 2019-04-23 08:40:45.000000000 +0200
+++ new/spec/socket_manager_spec.rb 2020-01-24 07:55:38.000000000 +0100
@@ -155,7 +155,27 @@
test_state(:is_udp_socket).should == 1
test_state(:udp_data_sent).should == 1
end
- end if (TCPServer.open("::1",0) rescue nil)
+ end if (TCPServer.open("::1", 0) rescue nil)
+
+ unless ServerEngine.windows?
+ context 'using ipv4/ipv6' do
+ it 'can bind ipv4/ipv6 together' do
+ server = SocketManager::Server.open(server_path)
+ client = ServerEngine::SocketManager::Client.new(server_path)
+
+ tcp_v4 = client.listen_tcp('0.0.0.0', test_port)
+ udp_v4 = client.listen_udp('0.0.0.0', test_port)
+ tcp_v6 = client.listen_tcp('::', test_port)
+ udp_v6 = client.listen_udp('::', test_port)
+
+ tcp_v4.close
+ udp_v4.close
+ tcp_v6.close
+ udp_v6.close
+ server.close
+ end
+ end if (TCPServer.open("::", 0) rescue nil)
+ end
end
if ServerEngine.windows?