Igor Gariev (gariev) wrote in changelog,
Igor Gariev
gariev
changelog

[fotobilder] r1448: Fix for memcache issue: cookie contained...

Committer: gariev
Fix for memcache issue: cookie contained spaces so the memcache key was invalid
U   trunk/lib/FotoBilder/Auth/LiveJournal.pm
Modified: trunk/lib/FotoBilder/Auth/LiveJournal.pm
===================================================================
--- trunk/lib/FotoBilder/Auth/LiveJournal.pm	2011-06-10 08:09:48 UTC (rev 1447)
+++ trunk/lib/FotoBilder/Auth/LiveJournal.pm	2011-06-16 09:11:38 UTC (rev 1448)
@@ -228,8 +228,9 @@
     my $exp_time = 120;
 
     # check memcache
-    my $memkey = "fbsess:$session"; # contains [time, uid]
-    if (my $data = FB::MemCache::get($memkey)) {
+    my $memkey = "fbsess:$session"; $memkey =~ s!//.*!!;
+    my $data = FB::MemCache::get($memkey); # contains [time, uid]
+    if ($data) {
         print STDERR "memcached userid=$data->[1] saved at $data->[0]\n" 
             if $FB::DEBUG;
         if ($data->[0]>time-$exp_time) {
@@ -241,8 +242,8 @@
     # see if we already validated this within the last two minutes.
     # if so, don't bug the real livejournal installation
     my $db = FB::get_db_writer();
-    my $uid = $db->selectrow_array(qq{
-        SELECT userid FROM domainauthcache
+    my ($uid, $timegood) = $db->selectrow_array(qq{
+        SELECT userid, timegood FROM domainauthcache
         WHERE domainid=? AND sessionkey=?
           AND timegood >= UNIX_TIMESTAMP() - $exp_time
     }, undef, $self->{'domainid'}, $session);
@@ -251,7 +252,10 @@
     if ($uid) {
         my $u = FB::load_userid($uid, @lj_props);
         print STDERR "u=$u\n" if $FB::DEBUG;
-        return $u if $u;
+        if ($u) {
+            FB::MemCache::set($memkey, [$timegood, $u->{'userid'}], $exp_time);
+            return $u;
+        }
     }
 
     # do some clean-up (lazy, not every request)

Tags: fotobilder, gariev, pm
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 0 comments