From 350b27c9fc01483e2308c376978f17551e46a242 Mon Sep 17 00:00:00 2001 From: Blou Date: Mon, 11 Jan 2016 16:41:11 -0500 Subject: [PATCH] Bug 15553 - [SIGNED-OFF] cgisess_ files polluting the /tmp directory When some users want to improve performance, one suggestion is to switch the syspref "sessionstorage" to 'tmp', which store the session info in the /tmp directory instead of the database. Depending on the frequency of the cleaning process (or lack thereof), this can be heavy pollution into the /tmp directory, making it unusable. "rm cgi*" would not even work since cgi* extends to over 8000 items... A simple fix is to modify the target directory in C4/Auth.pm to /tmp/cgisess. Testing scenario: 1) change the syspref SessionStorage to 'tmp' 2) Log into the OPAC, validate that a file named /tmp/cgisess_(something) got created 3) Apply the patch 4) Log into the OPAC, validate that a file /tmp/cgisess/cgisess_(something) got created Signed-off-by: Magnus Enger Works as advertised. Session files are created in /tmp/cgisess/ instead of directly in /tmp. I usually store sessions in memcached, but a couple of times memcached has died on me, and before I knew it, /tmp was so full of sessions files, I could not easily delete them with "rm /tmp/cgisess*". Being able to delete /tmp/cgisess/ should be a bit easier. --- C4/Auth.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/C4/Auth.pm b/C4/Auth.pm index d7be1d8..fd99ca0 100644 --- a/C4/Auth.pm +++ b/C4/Auth.pm @@ -1710,7 +1710,7 @@ sub get_session { } else { # catch all defaults to tmp should work on all systems - $session = new CGI::Session( "driver:File;serializer:yaml;id:md5", $sessionID, { Directory => '/tmp' } ); + $session = new CGI::Session( "driver:File;serializer:yaml;id:md5", $sessionID, { Directory => '/tmp/cgisess' } ); } return $session; } -- 1.9.1