summaryrefslogtreecommitdiff
path: root/lib/cgi
diff options
context:
space:
mode:
Diffstat (limited to 'lib/cgi')
-rw-r--r--lib/cgi/session.rb8
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