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 23de188f89
commit 1f34f653bf

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