dalli 3.2.6 → 3.2.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d9a374b5939ef874ce8067059c88b088c9129e7ab09ff891b1ad1ca3cf13c3ce
4
- data.tar.gz: d5937c697bcd86a6d3d4207d328ce7e73c854b93a1d19e402630c3f80caec2ec
3
+ metadata.gz: a98f25c5f6f750d72b83fdd0b6e45a9d693520a91b9b7d985bd26fd0abfac41e
4
+ data.tar.gz: 9e95098e69ece841757034d69cc2091e0b450feed17290bf5fffd527e6d45ac7
5
5
  SHA512:
6
- metadata.gz: 36010355440b325c1f8d5b922e882a8a8e199b8bd48dda92b1dcc4866f29e81b536ce41ff4896441c6c2c4f4e8e8faaf891ca6355e47de91733baf10bdfa9eee
7
- data.tar.gz: 0c2b42e88960838ceef44c6c0f696b938925ade65da7c8791a07539ca36e18d6e874693dfde840a08e78ac9076f6810735a05d137c98d8c64387414f89d6f016
6
+ metadata.gz: 25368bee67a5fd00aa7795cc06839c366fb7c1c33386ca0304c1cdfee3a4c82729716128d8f452cb7e0c0e2c24e2c3aec384eb7e3e0ee68c3915d93e17917456
7
+ data.tar.gz: f0094059b3e7430b3b03a0a6d8795ba0e76bdf1622ba2531b3ceffa11ebb3fb2442a4512a5c98e27e00fba253a7241fb58f47e3f93c58944676c8cd5d0dfe123
data/CHANGELOG.md CHANGED
@@ -4,6 +4,14 @@ Dalli Changelog
4
4
  Unreleased
5
5
  ==========
6
6
 
7
+ 3.2.7
8
+ ==========
9
+
10
+ - Fix cascading error when there's an underlying network error in a pipelined get (eugeneius)
11
+ - Ruby 3.4/head compatibility by adding base64 to gemspec (tagliala)
12
+ - Add Ruby 3.3 to CI (m-nakamura145)
13
+ - Use Socket's connect_timeout when available, and pass timeout to the socket's send and receive timeouts (mlarraz)
14
+
7
15
  3.2.6
8
16
  ==========
9
17
 
@@ -60,7 +60,7 @@ module Dalli
60
60
  deleted = []
61
61
 
62
62
  servers.each do |server|
63
- next unless server.alive?
63
+ next unless server.connected?
64
64
 
65
65
  begin
66
66
  finish_query_for_server(server)
data/lib/dalli/socket.rb CHANGED
@@ -88,14 +88,24 @@ module Dalli
88
88
  # options - supports enhanced logging in the case of a timeout
89
89
  attr_accessor :options
90
90
 
91
- def self.open(host, port, options = {})
92
- Timeout.timeout(options[:socket_timeout]) do
93
- sock = new(host, port)
91
+ if RUBY_VERSION >= '3.0'
92
+ def self.open(host, port, options = {})
93
+ sock = new(host, port, connect_timeout: options[:socket_timeout])
94
94
  sock.options = { host: host, port: port }.merge(options)
95
95
  init_socket_options(sock, options)
96
96
 
97
97
  options[:ssl_context] ? wrapping_ssl_socket(sock, host, options[:ssl_context]) : sock
98
98
  end
99
+ else
100
+ def self.open(host, port, options = {})
101
+ Timeout.timeout(options[:socket_timeout]) do
102
+ sock = new(host, port)
103
+ sock.options = { host: host, port: port }.merge(options)
104
+ init_socket_options(sock, options)
105
+
106
+ options[:ssl_context] ? wrapping_ssl_socket(sock, host, options[:ssl_context]) : sock
107
+ end
108
+ end
99
109
  end
100
110
 
101
111
  def self.init_socket_options(sock, options)
@@ -103,6 +113,15 @@ module Dalli
103
113
  sock.setsockopt(::Socket::SOL_SOCKET, ::Socket::SO_KEEPALIVE, true) if options[:keepalive]
104
114
  sock.setsockopt(::Socket::SOL_SOCKET, ::Socket::SO_RCVBUF, options[:rcvbuf]) if options[:rcvbuf]
105
115
  sock.setsockopt(::Socket::SOL_SOCKET, ::Socket::SO_SNDBUF, options[:sndbuf]) if options[:sndbuf]
116
+
117
+ return unless options[:socket_timeout]
118
+
119
+ seconds, fractional = options[:socket_timeout].divmod(1)
120
+ microseconds = fractional * 1_000_000
121
+ timeval = [seconds, microseconds].pack('l_2')
122
+
123
+ sock.setsockopt(::Socket::SOL_SOCKET, ::Socket::SO_RCVTIMEO, timeval)
124
+ sock.setsockopt(::Socket::SOL_SOCKET, ::Socket::SO_SNDTIMEO, timeval)
106
125
  end
107
126
 
108
127
  def self.wrapping_ssl_socket(tcp_socket, host, ssl_context)
data/lib/dalli/version.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Dalli
4
- VERSION = '3.2.6'
4
+ VERSION = '3.2.7'
5
5
 
6
6
  MIN_SUPPORTED_MEMCACHED_VERSION = '1.4'
7
7
  end
data/lib/dalli.rb CHANGED
@@ -34,7 +34,7 @@ module Dalli
34
34
  QUIET = :dalli_multi
35
35
 
36
36
  def self.logger
37
- @logger ||= (rails_logger || default_logger)
37
+ @logger ||= rails_logger || default_logger
38
38
  end
39
39
 
40
40
  def self.rails_logger
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dalli
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.2.6
4
+ version: 3.2.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter M. Goldstein
@@ -9,8 +9,22 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2023-09-26 00:00:00.000000000 Z
13
- dependencies: []
12
+ date: 2024-01-28 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: base64
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - ">="
19
+ - !ruby/object:Gem::Version
20
+ version: '0'
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ">="
26
+ - !ruby/object:Gem::Version
27
+ version: '0'
14
28
  description: High performance memcached client for Ruby
15
29
  email:
16
30
  - peter.m.goldstein@gmail.com
@@ -75,7 +89,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
75
89
  - !ruby/object:Gem::Version
76
90
  version: '0'
77
91
  requirements: []
78
- rubygems_version: 3.4.19
92
+ rubygems_version: 3.5.5
79
93
  signing_key:
80
94
  specification_version: 4
81
95
  summary: High performance memcached client for Ruby