Created
August 24, 2015 16:48
-
-
Save netfeed/78389deddaae8d35313d to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| diff --git a/src/http/request.cr b/src/http/request.cr | |
| index 8cc855f..d64e7b9 100644 | |
| --- a/src/http/request.cr | |
| +++ b/src/http/request.cr | |
| @@ -7,7 +7,6 @@ class HTTP::Request | |
| getter headers | |
| getter body | |
| getter version | |
| - getter cookies | |
| def initialize(@method : String, @path, @headers = Headers.new : Headers, @body = nil, @version = "HTTP/1.1", @cookies = Cookies.new : Cookies) | |
| if body = @body | |
| @@ -30,14 +29,21 @@ class HTTP::Request | |
| HTTP.serialize_headers_and_body(io, @cookies.add_request_headers(@headers), @body) | |
| end | |
| + def cookies | |
| + if headers.get? "Cookie" | |
| + @cookies = Cookies.from_headers(headers) | |
| + end | |
| + | |
| + @cookies | |
| + end | |
| + | |
| def self.from_io(io) | |
| request_line = io.gets | |
| return unless request_line | |
| method, path, http_version = request_line.split | |
| HTTP.parse_headers_and_body(io) do |headers, body| | |
| - cookies = Cookies.from_headers(headers) | |
| - return new method, path, headers, body.try &.read, http_version, cookies | |
| + return new method, path, headers, body.try &.read, http_version | |
| end | |
| # Unexpected end of http request | |
| diff --git a/src/http/response.cr b/src/http/response.cr | |
| index 62242a3..91fc25e 100644 | |
| --- a/src/http/response.cr | |
| +++ b/src/http/response.cr | |
| @@ -5,7 +5,6 @@ class HTTP::Response | |
| getter status_code | |
| getter status_message | |
| getter headers | |
| - getter cookies | |
| getter! body_io | |
| property upgrade_handler | |
| @@ -50,6 +49,14 @@ class HTTP::Response | |
| HTTP.serialize_headers_and_body(io, @cookies.add_response_headers(@headers), @body) | |
| end | |
| + def cookies | |
| + if headers.get? "Set-Cookie" | |
| + @cookies = Cookies.from_headers(headers) | |
| + end | |
| + | |
| + @cookies | |
| + end | |
| + | |
| def self.from_io(io) | |
| line = io.gets | |
| if line | |
| @@ -58,8 +65,7 @@ class HTTP::Response | |
| status_message = status_message.chomp | |
| HTTP.parse_headers_and_body(io) do |headers, body| | |
| - cookies = Cookies.from_headers(headers) | |
| - return new status_code, body.try &.read, headers, status_message, http_version, cookies | |
| + return new status_code, body.try &.read, headers, status_message, http_version | |
| end | |
| end | |
| @@ -74,8 +80,7 @@ class HTTP::Response | |
| status_message = status_message.chomp | |
| HTTP.parse_headers_and_body(io) do |headers, body| | |
| - cookies = Cookies.from_headers(headers) | |
| - return yield new status_code, nil, headers, status_message, http_version, cookies, body | |
| + return yield new status_code, nil, headers, status_message, http_version, Cookies.new, body | |
| end | |
| end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I see.