FIX: last ip address could point at wrong ip

Due to unicorn env object recycling request.ip could point at the wrong
ip address by the time defer block is called. This usually would happen
under load.

This also avoids keeping the entire request object as referenced by the
closure.
This commit is contained in:
Sam Saffron 2020-03-11 17:42:56 +11:00
parent ea73880146
commit c738d31809
No known key found for this signature in database
GPG Key ID: B9606168D2FFD9F5

View File

@ -118,9 +118,11 @@ class Auth::DefaultCurrentUserProvider
if current_user && should_update_last_seen?
u = current_user
ip = request.ip
Scheduler::Defer.later "Updating Last Seen" do
u.update_last_seen!
u.update_ip_address!(request.ip)
u.update_ip_address!(ip)
end
end