]> git.openstreetmap.org Git - rails.git/blobdiff - config/initializers/session_store.rb
Merge remote-tracking branch 'upstream/pull/4515'
[rails.git] / config / initializers / session_store.rb
index 02548e803a980f777fe5db1160eae22b9037dd1e..a122848553bf1a9f00fe4d09f2f18ee292617f3b 100644 (file)
@@ -1,35 +1,7 @@
 # Be sure to restart your server when you modify this file.
 
-if defined?(MEMCACHE_SERVERS)
-  unless STATUS == :database_offline or STATUS == :database_readonly
-    module Rack
-      module Session
-        class Memcache
-          def get_session(env, sid)
-            with_lock(env, [nil, {}]) do
-              unless sid and session = @pool.get(sid)
-                if sid and s = ActiveRecord::SessionStore::SqlBypass.find_by_session_id(sid)
-                  session = s.data
-                  s.destroy
-                else
-                  sid, session = generate_sid, {}
-                end
-                
-                unless /^STORED/ =~ @pool.add(sid, session)
-                  raise "Session collision on '#{sid.inspect}'"
-                end
-              end
-              [sid, session]
-            end
-          end
-        end
-      end
-    end
-  end
-
-  cache = MemCache.new(:namespace => "rails:session", :string_return_types => true)
-
-  OpenStreetMap::Application.config.session_store :mem_cache_store, :cache => cache, :key => "_osm_session"
+if Settings.key?(:memcache_servers)
+  Rails.application.config.session_store :mem_cache_store, :memcache_server => Settings.memcache_servers, :namespace => "rails:session", :key => "_osm_session"
 else
-  OpenStreetMap::Application.config.session_store :cache_store, :key => '_osm_session'
+  Rails.application.config.session_store :cache_store, :key => "_osm_session", :cache => ActiveSupport::Cache::MemoryStore.new
 end