dalli 3.2.1 → 3.2.2
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of dalli might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Gemfile +0 -7
- data/History.md +8 -0
- data/README.md +1 -1
- data/lib/dalli/protocol/base.rb +2 -2
- data/lib/dalli/servers_arg_normalizer.rb +1 -1
- data/lib/dalli/version.rb +1 -1
- data/lib/rack/session/dalli.rb +14 -5
- metadata +45 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 539a5ec7700d7d96bece70021727ff422d24202ab9e89fd07afc623dc3480502
|
4
|
+
data.tar.gz: ba9231846477125fd3ed77f5a60f0df3445e3cda12c1736cd71f6b299213accb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4039d6ce807dc60351f5781438ae84a0d2a147d5af567607653fcfb943ca3d3e0bcfd231cc67dbf4b761a5f0797ba4e5c99e9441d8d1e738eeb356805d139b89
|
7
|
+
data.tar.gz: 5c31e6bc0d5b4b35280f7fd6747172838a8b037209d365906830634b32109a16c0301f732418c2ca99480ff3a37d9247a401c61e1d887ecf11a45dd4448d162b
|
data/Gemfile
CHANGED
data/History.md
CHANGED
@@ -4,6 +4,11 @@ Dalli Changelog
|
|
4
4
|
Unreleased
|
5
5
|
==========
|
6
6
|
|
7
|
+
3.2.2
|
8
|
+
==========
|
9
|
+
|
10
|
+
- Ensure apps are resilient against old session ids
|
11
|
+
|
7
12
|
3.2.1
|
8
13
|
==========
|
9
14
|
|
@@ -118,6 +123,9 @@ Unreleased
|
|
118
123
|
* The Rack session adapter has been refactored to remove support for thread-unsafe
|
119
124
|
configurations. You will need to include the `connection_pool` gem in
|
120
125
|
your Gemfile to ensure session operations are thread-safe.
|
126
|
+
* When using namespaces, the algorithm for calculating truncated keys was
|
127
|
+
changed. Non-truncated keys and truncated keys for the non-namespace
|
128
|
+
case were left unchanged.
|
121
129
|
|
122
130
|
- Raise NetworkError when multi response gets into corrupt state (mervync, #783)
|
123
131
|
- Validate servers argument (semaperepelitsa, petergoldstein, #776)
|
data/README.md
CHANGED
@@ -23,7 +23,7 @@ The name is a variant of Salvador Dali for his famous painting [The Persistence
|
|
23
23
|
* [Announcements](https://github.com/petergoldstein/dalli/discussions/categories/announcements) - Announcements of interest to the Dalli community will be posted here.
|
24
24
|
* [Bug Reports](https://github.com/petergoldstein/dalli/issues) - If you discover a problem with Dalli, please submit a bug report in the tracker.
|
25
25
|
* [Forum](https://github.com/petergoldstein/dalli/discussions/categories/q-a) - If you have questions about Dalli, please post them here.
|
26
|
-
* [Client API](https://
|
26
|
+
* [Client API](https://rubydoc.info/github/petergoldstein/dalli/Dalli/Client) - Ruby documentation for the `Dalli::Client` API
|
27
27
|
|
28
28
|
## Contributing
|
29
29
|
|
data/lib/dalli/protocol/base.rb
CHANGED
@@ -127,11 +127,11 @@ module Dalli
|
|
127
127
|
end
|
128
128
|
|
129
129
|
def username
|
130
|
-
@options[:username] || ENV
|
130
|
+
@options[:username] || ENV.fetch('MEMCACHE_USERNAME', nil)
|
131
131
|
end
|
132
132
|
|
133
133
|
def password
|
134
|
-
@options[:password] || ENV
|
134
|
+
@options[:password] || ENV.fetch('MEMCACHE_PASSWORD', nil)
|
135
135
|
end
|
136
136
|
|
137
137
|
def require_auth?
|
data/lib/dalli/version.rb
CHANGED
data/lib/rack/session/dalli.rb
CHANGED
@@ -82,6 +82,9 @@ module Rack
|
|
82
82
|
def write_session(_req, sid, session, options)
|
83
83
|
return false unless sid
|
84
84
|
|
85
|
+
key = memcached_key_from_sid(sid)
|
86
|
+
return false unless key
|
87
|
+
|
85
88
|
with_dalli_client(false) do |dc|
|
86
89
|
dc.set(memcached_key_from_sid(sid), session, ttl(options[:expire_after]))
|
87
90
|
sid
|
@@ -90,7 +93,8 @@ module Rack
|
|
90
93
|
|
91
94
|
def delete_session(_req, sid, options)
|
92
95
|
with_dalli_client do |dc|
|
93
|
-
|
96
|
+
key = memcached_key_from_sid(sid)
|
97
|
+
dc.delete(key) if key
|
94
98
|
generate_sid_with(dc) unless options[:drop]
|
95
99
|
end
|
96
100
|
end
|
@@ -98,20 +102,24 @@ module Rack
|
|
98
102
|
private
|
99
103
|
|
100
104
|
def memcached_key_from_sid(sid)
|
101
|
-
sid.private_id
|
105
|
+
sid.private_id if sid.respond_to?(:private_id)
|
102
106
|
end
|
103
107
|
|
104
108
|
def existing_session_for_sid(client, sid)
|
105
109
|
return nil unless sid && !sid.empty?
|
106
110
|
|
107
|
-
|
111
|
+
key = memcached_key_from_sid(sid)
|
112
|
+
return nil if key.nil?
|
113
|
+
|
114
|
+
client.get(key)
|
108
115
|
end
|
109
116
|
|
110
117
|
def create_sid_with_empty_session(client)
|
111
118
|
loop do
|
112
119
|
sid = generate_sid_with(client)
|
120
|
+
key = memcached_key_from_sid(sid)
|
113
121
|
|
114
|
-
break sid if client.add(
|
122
|
+
break sid if key && client.add(key, {}, @default_ttl)
|
115
123
|
end
|
116
124
|
end
|
117
125
|
|
@@ -119,7 +127,8 @@ module Rack
|
|
119
127
|
loop do
|
120
128
|
raw_sid = generate_sid
|
121
129
|
sid = raw_sid.is_a?(String) ? Rack::Session::SessionId.new(raw_sid) : raw_sid
|
122
|
-
|
130
|
+
key = memcached_key_from_sid(sid)
|
131
|
+
break sid unless key && client.get(key)
|
123
132
|
end
|
124
133
|
end
|
125
134
|
|
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.
|
4
|
+
version: 3.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Peter M. Goldstein
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2022-
|
12
|
+
date: 2022-06-15 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: connection_pool
|
@@ -25,6 +25,20 @@ dependencies:
|
|
25
25
|
- - ">="
|
26
26
|
- !ruby/object:Gem::Version
|
27
27
|
version: '0'
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: minitest
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - "~>"
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: '5'
|
35
|
+
type: :development
|
36
|
+
prerelease: false
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - "~>"
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: '5'
|
28
42
|
- !ruby/object:Gem::Dependency
|
29
43
|
name: rack
|
30
44
|
requirement: !ruby/object:Gem::Requirement
|
@@ -45,6 +59,20 @@ dependencies:
|
|
45
59
|
- - ">="
|
46
60
|
- !ruby/object:Gem::Version
|
47
61
|
version: 2.2.0
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: rake
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '13.0'
|
69
|
+
type: :development
|
70
|
+
prerelease: false
|
71
|
+
version_requirements: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '13.0'
|
48
76
|
- !ruby/object:Gem::Dependency
|
49
77
|
name: rubocop
|
50
78
|
requirement: !ruby/object:Gem::Requirement
|
@@ -101,6 +129,20 @@ dependencies:
|
|
101
129
|
- - ">="
|
102
130
|
- !ruby/object:Gem::Version
|
103
131
|
version: '0'
|
132
|
+
- !ruby/object:Gem::Dependency
|
133
|
+
name: simplecov
|
134
|
+
requirement: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ">="
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
139
|
+
type: :development
|
140
|
+
prerelease: false
|
141
|
+
version_requirements: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - ">="
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0'
|
104
146
|
description: High performance memcached client for Ruby
|
105
147
|
email:
|
106
148
|
- peter.m.goldstein@gmail.com
|
@@ -164,7 +206,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
164
206
|
- !ruby/object:Gem::Version
|
165
207
|
version: '0'
|
166
208
|
requirements: []
|
167
|
-
rubygems_version: 3.3.
|
209
|
+
rubygems_version: 3.3.16
|
168
210
|
signing_key:
|
169
211
|
specification_version: 4
|
170
212
|
summary: High performance memcached client for Ruby
|