diff --git a/basis/http/client/client.factor b/basis/http/client/client.factor index aa2fc8962b..496754ba77 100644 --- a/basis/http/client/client.factor +++ b/basis/http/client/client.factor @@ -21,12 +21,8 @@ ERROR: too-many-redirects ; [ "HTTP/" write version>> write crlf ] tri ; -: url-host ( url -- string ) - [ host>> ] [ port>> ] bi dup "http" protocol-port = - [ drop ] [ ":" swap number>string 3append ] if ; - : set-host-header ( request header -- request header ) - over url>> url-host "host" pick set-at ; + over url>> host>> "host" pick set-at ; : set-cookie-header ( header cookies -- header ) unparse-cookie "cookie" pick set-at ; diff --git a/basis/http/server/server.factor b/basis/http/server/server.factor index acdd71d10d..95662523d8 100644 --- a/basis/http/server/server.factor +++ b/basis/http/server/server.factor @@ -75,9 +75,8 @@ SYMBOL: upload-limit ] when ; : extract-host ( request -- request ) - [ ] [ url>> ] [ "host" header parse-host ] tri - [ >>host ] [ >>port ] bi* - drop ; + [ ] [ url>> ] [ "host" header dup [ url-decode ] when ] tri + >>host drop ; : extract-cookies ( request -- request ) dup "cookie" header [ parse-cookie >>cookies ] when* ;