httpd -- added Date and Last-Modified header fields for file-responder, removed url-encode from print-header
parent
766ef0175e
commit
e77b249741
|
@ -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
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
USING: io ;
|
||||
|
||||
REQUIRES: embedded ;
|
||||
REQUIRES: calendar embedded ;
|
||||
|
||||
PROVIDE: httpd {
|
||||
"mime.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 ;
|
||||
|
|
Loading…
Reference in New Issue