@@ -55,54 +55,13 @@ local function warn(...)
5555end
5656
5757
58- local shdict_name , shm_cache_pos_ttl , shm_cache_neg_ttl , disable_shm_cache
59- local meta_shdict_set , meta_shdict_get , disable_meta_shdict
60- do
61- local meta_shdict = require " resty.shdict.simple"
62- meta_shdict_set , meta_shdict_get
63- = meta_shdict .gen_shdict_methods {
64- dict_name = shdict_name ,
65- debug_logger = dlog ,
66- warn_logger = warn ,
67- error_logger = error_log ,
68- positive_ttl = shm_cache_pos_ttl ,
69- negative_ttl = shm_cache_neg_ttl ,
70- }
71- end
72-
73-
74- local fetch_key_from_memc , locks_shdict_name
75- local memc_host , memc_port , memc_timeout , memc_conn_pool_size
76- local memc_fetch_retries , memc_fetch_retry_delay , memc_conn_max_idle_time
77- do
78- local memc_shdict = require " resty.memcached.shdict"
79- local fetch_key_from_memc = memc_shdict .gen_memc_methods {
80- tag = " ticket_memc" ,
81-
82- debug_logger = dlog ,
83- warn_logger = warn ,
84- error_logger = error_log ,
85-
86- locks_shdict_name = locks_shdict_name ,
87-
88- disable_shdict = disable_shm_cache ,
89-
90- shdict_set = meta_shdict_set ,
91- shdict_get = meta_shdict_get ,
58+ local meta_shdict_set , meta_shdict_get
59+ local fetch_key_from_memc
9260
93- memc_host = memc_host ,
94- memc_port = memc_port ,
95- memc_timeout = memc_timeout ,
96- memc_conn_pool_size = memc_conn_pool_size ,
97- memc_fetch_retries = memc_fetch_retries ,
98- memc_fetch_retry_delay = memc_fetch_retry_delay ,
99-
100- memc_conn_max_idle_time = memc_conn_max_idle_time ,
101-
102- memc_store_retries = 0 ,
103- memc_store_retry_delay = 0 ,
104- }
105- end
61+ -- Store N+2 keys, including the current slot, the next slot and previous N
62+ -- slots' key.
63+ -- N = ticket_ttl / SEC_PER_HOUR
64+ local nkeys
10665
10766
10867-- ticket keys are indexed by timestamps of time slots
@@ -178,10 +137,6 @@ local function memc_get_and_decrypt(ctx, idx, offset)
178137end
179138
180139
181- -- Store N+2 keys, including the current slot, the next slot and previous N
182- -- slots' key.
183- -- N = ticket_ttl / SEC_PER_HOUR
184- local nkeys = floor (ticket_ttl / time_slot ) + 2
185140local function update_ticket_encryption_key (ctx , key )
186141 if not key then
187142 if DEBUG then
@@ -283,25 +238,68 @@ function _M.init(opts)
283238 time_slot = opts .key_rotation_period
284239 memc_key_prefix = opts .memc_key_prefix
285240
286- shdict_name = opts .cache_shdict_name
287- shm_cache_pos_ttl = opts .shm_cache_positive_ttl
288- shm_cache_neg_ttl = opts .shm_cache_negative_ttl
289- disable_shm_cache = opts .disable_shm_cache
290- locks_shdict_name = opts .locks_shdict_name
241+ local shdict_name = opts .cache_shdict_name
242+ local shm_cache_pos_ttl = opts .shm_cache_positive_ttl
243+ local shm_cache_neg_ttl = opts .shm_cache_negative_ttl
244+ local disable_shm_cache = opts .disable_shm_cache
245+ local locks_shdict_name = opts .locks_shdict_name
291246
292- memc_host = opts .memc_host
293- memc_port = opts .memc_port
294- memc_timeout = opts .memc_timeout
295- memc_conn_pool_size = opts .memc_conn_pool_size
296- memc_fetch_retries = opts .memc_fetch_retries
297- memc_fetch_retry_delay = opts .memc_fetch_retry_delay
247+ local memc_host = opts .memc_host
248+ local memc_port = opts .memc_port
249+ local memc_timeout = opts .memc_timeout
250+ local memc_conn_pool_size = opts .memc_conn_pool_size
251+ local memc_fetch_retries = opts .memc_fetch_retries
252+ local memc_fetch_retry_delay = opts .memc_fetch_retry_delay
298253
299- memc_conn_max_idle_time = opts .memc_conn_max_idle_time
254+ local memc_conn_max_idle_time = opts .memc_conn_max_idle_time
300255
301256 local frandom = assert (io.open (" /dev/urandom" , " rb" ))
302257 fallback_random_key = frandom :read (48 )
303258 frandom :close ()
304259
260+ nkeys = floor (ticket_ttl / time_slot ) + 2
261+ do
262+ local meta_shdict = require " resty.shdict.simple"
263+ meta_shdict_set , meta_shdict_get = meta_shdict .gen_shdict_methods {
264+ dict_name = shdict_name ,
265+ debug_logger = dlog ,
266+ warn_logger = warn ,
267+ error_logger = error_log ,
268+ positive_ttl = shm_cache_pos_ttl ,
269+ negative_ttl = shm_cache_neg_ttl ,
270+ }
271+ end
272+
273+ do
274+ local memc_shdict = require " resty.memcached.shdict"
275+ fetch_key_from_memc = memc_shdict .gen_memc_methods {
276+ tag = " ticket_memc" ,
277+
278+ debug_logger = dlog ,
279+ warn_logger = warn ,
280+ error_logger = error_log ,
281+
282+ locks_shdict_name = locks_shdict_name ,
283+
284+ disable_shdict = disable_shm_cache ,
285+
286+ shdict_set = meta_shdict_set ,
287+ shdict_get = meta_shdict_get ,
288+
289+ memc_host = memc_host ,
290+ memc_port = memc_port ,
291+ memc_timeout = memc_timeout ,
292+ memc_conn_pool_size = memc_conn_pool_size ,
293+ memc_fetch_retries = memc_fetch_retries ,
294+ memc_fetch_retry_delay = memc_fetch_retry_delay ,
295+
296+ memc_conn_max_idle_time = memc_conn_max_idle_time ,
297+
298+ memc_store_retries = 0 ,
299+ memc_store_retry_delay = 0 ,
300+ }
301+ end
302+
305303 local ctx = {}
306304
307305 if DEBUG then
@@ -312,7 +310,7 @@ function _M.init(opts)
312310 local curr_key_index = ticket_key_index (now , 0 )
313311 local curr_key
314312
315- if not disable_meta_shdict then
313+ if not disable_shm_cache then
316314 curr_key = shdict_get_and_decrypt (ctx , curr_key_index )
317315 end
318316
0 commit comments