Implement port remapping

db4
Slava Pestov 2008-09-22 16:49:50 -05:00
parent 55b450f371
commit 6d60b5a74f
3 changed files with 18 additions and 6 deletions

View File

@ -1,9 +1,8 @@
! Copyright (C) 2008 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license.
USING: kernel accessors combinators namespaces fry
io.servers.connection urls http http.server
http.server.redirection http.server.responses
http.server.filters furnace ;
USING: kernel accessors combinators namespaces fry urls http
http.server http.server.redirection http.server.responses
http.server.remapping http.server.filters furnace ;
IN: furnace.redirection
: <redirect> ( url -- response )
@ -16,7 +15,7 @@ IN: furnace.redirection
: >secure-url ( url -- url' )
clone
"https" >>protocol
secure-port >>port ;
secure-http-port >>port ;
: <secure-redirect> ( url -- response )
>secure-url <redirect> ;

View File

@ -0,0 +1,12 @@
! Copyright (C) 2008 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license.
USING: namespaces assocs kernel io.servers.connection ;
IN: http.server.remapping
SYMBOL: port-remapping
: remap-port ( n -- n' )
[ port-remapping get at ] keep or ;
: secure-http-port ( -- n )
secure-port remap-port ;

View File

@ -18,6 +18,7 @@ fry logging logging.insomniac calendar urls
http
http.parsers
http.server.responses
http.server.remapping
html.templates
html.elements
html.streams ;
@ -188,7 +189,7 @@ LOG: httpd-header NOTICE
"/" split harvest ;
: init-request ( request -- )
[ request set ] [ url>> url set ] bi
[ request set ] [ url>> [ remap-port ] change-port url set ] bi
V{ } clone responder-nesting set ;
: dispatch-request ( request -- response )