diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/cgi/session.rb | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/lib/cgi/session.rb b/lib/cgi/session.rb index 79ee0e3fef..9306508239 100644 --- a/lib/cgi/session.rb +++ b/lib/cgi/session.rb @@ -27,15 +27,17 @@ class CGI def initialize(request, option={}) session_key = option['session_key'] || '_session_id' - id, = option['session_id'] + id = option['session_id'] unless id if option['new_session'] id = Session::create_new_id end end unless id - id, = request[session_key] - id = id.read if id.respond_to?(:read) + if request.key?(session_key) + id = request[session_key] + id = id.read if id.respond_to?(:read) + end unless id id, = request.cookies[session_key] end |