diff --git a/contrib/httpd/file-responder.factor b/contrib/httpd/file-responder.factor index 6b06253753..c1a07754f7 100644 --- a/contrib/httpd/file-responder.factor +++ b/contrib/httpd/file-responder.factor @@ -1,20 +1,22 @@ ! Copyright (C) 2004, 2006 Slava Pestov. ! See http://factorcode.org/license.txt for BSD license. IN: file-responder -USING: embedded errors html httpd io kernel math namespaces parser +USING: calendar embedded errors html httpd io kernel math namespaces parser sequences strings ; : serving-path ( filename -- filename ) [ "" ] unless* "doc-root" get swap append ; -: file-response ( mime-type length -- ) +: file-response ( filename mime-type length -- ) [ number>string "Content-Length" set "Content-Type" set + stat fourth unix>gmt timestamp>http-string "Last-Modified" set + now timestamp>http-string "Date" set ] make-hash "200 OK" response terpri ; : serve-static ( filename mime-type -- ) - over file-length file-response "method" get "head" = [ + dupd pick file-length file-response "method" get "head" = [ drop ] [ stdio get stream-copy diff --git a/contrib/httpd/load.factor b/contrib/httpd/load.factor index e5d91a251f..325df1920f 100644 --- a/contrib/httpd/load.factor +++ b/contrib/httpd/load.factor @@ -1,6 +1,6 @@ USING: io ; -REQUIRES: embedded ; +REQUIRES: calendar embedded ; PROVIDE: httpd { "mime.factor" diff --git a/contrib/httpd/responder.factor b/contrib/httpd/responder.factor index 259ed0852c..5405acb6fc 100644 --- a/contrib/httpd/responder.factor +++ b/contrib/httpd/responder.factor @@ -9,7 +9,7 @@ SYMBOL: vhosts SYMBOL: responders : print-header ( alist -- ) - [ swap write ": " write url-encode print ] hash-each ; + [ swap write ": " write print ] hash-each ; : response ( header msg -- ) "HTTP/1.0 " write print print-header ;