override least recently used entries when certificate_data dictionary is full

This commit is contained in:
Elvin Efendi 2019-06-26 18:40:55 -04:00
parent ecce3fd7b1
commit b66f9e329d
2 changed files with 17 additions and 15 deletions

View file

@ -59,18 +59,15 @@ local function handle_servers()
local err_buf = {}
for _, server in ipairs(servers) do
if server.hostname and server.sslCert.pemCertKey then
local success
success, err = certificate_data:safe_set(server.hostname, server.sslCert.pemCertKey)
local success, err, forcible = certificate_data:set(server.hostname, server.sslCert.pemCertKey)
if not success then
if err == "no memory" then
ngx.status = ngx.HTTP_INTERNAL_SERVER_ERROR
ngx.log(ngx.ERR, "no memory in certificate_data dictionary")
return
end
local err_msg = string.format("error setting certificate for %s: %s\n", server.hostname, tostring(err))
table.insert(err_buf, err_msg)
end
if forcible then
local msg = string.format("certificate_data dictionary is full, LRU entry has been removed to store %s", server.hostname)
ngx.log(ngx.WARN, msg)
end
else
ngx.log(ngx.WARN, "hostname or pemCertKey are not present")
end