Sha256: f3d5f97618be51b07e8db3fb9f07503470393e4a77ade65df695b3f6c55c0568
Contents?: true
Size: 839 Bytes
Versions: 4
Compression:
Stored size: 839 Bytes
Contents
# CGI::Session::PStore.initialize requires 'digest/md5' on every call. # This makes sense when spawning processes per request, but is # unnecessarily expensive when serving requests from a long-lived # process. require 'cgi/session' require 'cgi/session/pstore' require 'digest/md5' class CGI::Session::PStore #:nodoc: def initialize(session, option={}) dir = option['tmpdir'] || Dir::tmpdir prefix = option['prefix'] || '' id = session.session_id md5 = Digest::MD5.hexdigest(id)[0,16] path = dir+"/"+prefix+md5 path.untaint if File::exist?(path) @hash = nil else unless session.new_session raise CGI::Session::NoSession, "uninitialized session" end @hash = {} end @p = ::PStore.new(path) @p.transaction do |p| File.chmod(0600, p.path) end end end
Version data entries
4 entries across 4 versions & 2 rubygems