httpd -- added Date and Last-Modified header fields for file-responder, removed url-encode from print-header

release
erg 2006-08-29 00:36:54 +00:00
parent 766ef0175e
commit e77b249741
3 changed files with 7 additions and 5 deletions

View File

@ -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
] [
<file-reader> stdio get stream-copy

View File

@ -1,6 +1,6 @@
USING: io ;
REQUIRES: embedded ;
REQUIRES: calendar embedded ;
PROVIDE: httpd {
"mime.factor"

View File

@ -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 ;