vibr
bccf27785d
rename READ-AND-DISCARD-TRAILER to DISCARD-TRAILER for naming consistency
2005-04-20 11:40:23 +00:00
vibr
15049e1c58
implementing chunked transfer coding:
...
*new proc READ-MESSAGE-BODY: a high-level interface for reading in
message bodies (should be used by all handlers)
*new proc READ-ORDINARY-BODY: reads in message bodies with no transfer
coding applied
*new proc READ-CHUNKED-BODY: reads in message bodies in chunked
transfer coding
*new proc GET-CHUNK-SIZE: reads in and parses the size of the next
chunk in a chunked message body
*helper procs READ-AND-DISCARD-TRAILER and DISCARD-LINE-TERMINATOR
*minor changes to GET-NUMERIC-FIELD-VALUE (cosmetic)
2005-04-16 20:45:33 +00:00
vibr
555d52806d
modify seval-handler:
...
*don't use concept of reader-writer-body (which is broken), use
writer-body instead -> seval-handler now works correctly
*use new interface READ-MESSAGE-BODY from handler-lib for reading in the
message body
*rename READ-REQUEST-SEXP to PARSE-REQUEST-SEXP
*catch errors thrown by READ in PARSE-REQUEST-SEXP to answer 400
instead of 500 for requests whose message body doesn't contain a valid
s-expression
2005-04-16 20:33:35 +00:00
vibr
36db985453
in PARSE-HTTP-REQUEST: catch errors thrown by READ-RFC822-HEADERS and
...
answer 400 instead of 500 for requests with bad headers
2005-04-16 20:22:41 +00:00
vibr
0554b2d494
move copyright declarations to COPYING
2005-04-16 20:19:32 +00:00
vibr
630c77d83f
syntax of comma separated list which is the field value of the
...
Transfer-Encoding header: needs a single SP less
2005-04-15 15:50:30 +00:00
vibr
184c284c4a
move these procs from lib/sunet-utilities to httpd/handler-lib:
...
GET-SOCKET-HOST-STRING
GET-NUMERIC-FIELD-VALUE
GET-BODY-LENGTH-FROM-CONTENT-LENGTH
CHUNKED-TRANSFER-CODING?
reason: they are httpd-specific in using httpd's data types
2005-04-15 15:23:32 +00:00
vibr
4c1e1a16a8
trivia: towards a more modern HTML: closing slash within empty HTML
...
elements
*new: EMIT-EMPTY-TAG
*use EMIT-EMPTY-TAG instead of EMIT-TAG where appropriate
2005-04-14 21:15:21 +00:00
vibr
e8dc69b745
we must send a "Connection: close" header as long as we don't support
...
persistent connections
2005-04-14 19:17:16 +00:00
vibr
db826a9c1f
add comment explaining why the concept of http-reader-writer-body
...
(which is used by the seval-handler only) doesn't work
2005-04-14 15:18:54 +00:00
vibr
8e7e071db2
fix MAKE-CLF (which prepended superfluous slash to requested resource)
2005-04-14 14:42:03 +00:00
vibr
8974332da1
Location header must be an absolute URL:
...
*adapt file-dir-handler's 301 response
*new procs GET-SOCKET-HOSTNAME-AND-PORTNUMBER, GET-SOCKET-HOST-STRING
2005-04-14 11:38:37 +00:00
vibr
96b485294f
*new predicate ABSOLUTE-URL?
...
*remove URI-HAS-PROTOCOL?
2005-04-14 11:32:38 +00:00
vibr
f605367c1a
answer 400 (Bad Request) for 1.1-Requests which don't include a Host
...
header:
*new proc CHECK-HOST-HEADER
2005-04-13 20:53:53 +00:00
vibr
453a7cdde6
correct call of http-error in MAKE-HOST-NAME-HANDLER
2005-04-13 20:48:57 +00:00
vibr
97f730075d
trivia: formatting of error responses
2005-04-13 20:46:40 +00:00
vibr
40d7c923a2
answer 505 (Version not supported) for requests with major version >
...
implemented version:
*new proc CHECK-MAJOR-HTTP-VERSION
*new case in MAKE-ERROR-RESPONSE
2005-04-13 19:35:22 +00:00
vibr
90fc61473e
add comment on assumptions about entity in request to seval-handler
2005-04-06 22:49:50 +00:00
vibr
c9c45eae6e
better comment
2005-04-06 22:47:14 +00:00
vibr
9342e0e593
*replace call of PARSE-REQUEST-URI (relict of old URL parser)
...
with call of URL-STRING->HTTP-URL
2005-04-06 22:45:48 +00:00
vibr
2dcdd41ed9
*reinsert lost line
...
*replace calls of UNESCAPE-URI (relict of old URL parser) with UNESCAPE
*simplify URI-HAS-PROTOCOL?
2005-04-06 22:43:53 +00:00
vibr
512ccfaed3
removal of old URL parser relicts:
...
*replace calls of UNESCAPE-URI with UNESCAPE
*remove imports of uri package where no longer needed
2005-04-06 22:41:10 +00:00
vibr
745a123735
adapt code to remove calls of URI-PATH->URI (relict of old URL parser)
2005-04-06 12:32:17 +00:00
vibr
61a63b4d4b
adapt URI-HAS-PROTOCOL? to new URL parser
2005-04-06 11:59:05 +00:00
vibr
0de6fe79b4
replace calls of HTTP-URL->STRING (relict of old URL parser)
...
with calls of HTTP-URL->URL-STRING
2005-04-06 11:44:28 +00:00
vibr
17a46a7e71
rename URI-STRING->HTTP-URL to URL-STRING->HTTP-URL
2005-04-06 11:35:37 +00:00
vibr
9399bf9397
remove MY-REPORTED-PORT (relict of old URL parser)
2005-04-05 18:45:02 +00:00
vibr
3548b25c26
rename HTTP-URL-SEARCH to HTTP-URL-QUERY (adaption to restructured
...
http-url type in url.scm)
2005-04-04 21:13:35 +00:00
vibr
46645ccd58
*remove definition of PARSE-REQUEST-URI (relict of Olin's old URL parser)
...
*use URI-STRING->HTTP-URL instead
2005-04-04 21:07:55 +00:00
vibr
d864e4da80
correct reference in comment
2005-04-04 20:57:36 +00:00
vibr
53e3e9672f
adapt to RFC terminology:
...
rename PARSE-HTTP-SERVERS-URL-FRAGMENT to PARSE-REQUEST-URI
rename variable uri-string to request-uri
2004-10-05 10:24:29 +00:00
vibr
cd22ab11d4
Corrected bug: SEVAL now generates a response-body even if the request's body isn't
...
form-url encoded or doesn't contain a program
2004-08-15 12:44:55 +00:00
vibr
44100cbf5e
Added type NO-BODY for responses which must not contain a message-body
...
(201, 304, 404). Added export of type-predicate no-body?. Adapted
SEND-HTTP-RESPONSE to check for no-body responses. Extended
MAKE-ERROR-RESPONSE to make responses 201, 304, 404.
2004-08-15 11:03:28 +00:00
vibr
0bb601a0e0
make server-generated webpages XHTML 1.0 Strict: emit prolog
...
(not tested)
2004-08-14 22:08:07 +00:00
vibr
ef48e4e5ae
make-host-name-handler now uses get-header from sunet-utilities.scm
2004-08-14 22:03:19 +00:00
vibr
8cf841bad3
rename get-content-length to get-body-length-from-content-length
...
move get-body-length-from-content-length and get-numeric-field-value
from seval.scm to sunet-utilities.scm
adapt packages.scm
2004-08-14 21:58:11 +00:00
vibr
f8559581d2
GET-NUMERIC-FIELD-VALUE now uses GET-HEADER from utilities.scm
...
and returns #f if GET-HEADER does so
adapted GET-CONTENT-LENGHT
2004-08-14 21:18:12 +00:00
vibr
aea0e950ba
removed definition of GET-HEADER which conflicted with definition of
...
GET-HEADER in utilities.scm and wasn't exported anyway
2004-08-14 20:54:57 +00:00
vibr
ffbe3b21cd
factor out parsing of content-length header value -> GET-CONTENT-LENGTH
...
generalize parsing of content-length header value to parse all header field
values of the form 1*DIGIT -> GET-NUMERIC-FIELD-VALUE
check for valid content-length header in SEVAL before answering 200
TODO: SEVAL is still buggy for request with invalid _body_
2004-08-14 19:07:23 +00:00
vibr
9fcfcf36f0
add comments explaining why seval-handler is buggy
2004-08-14 15:47:29 +00:00
vibr
06ec0f0293
server-generated webpages -> XHTML 1.0 Strict:
...
add XML namespace declaration to html element
2004-08-13 15:49:19 +00:00
vibr
96f0ae41d5
-move XHTML stuff from responses.scm to htmlout.scm
...
-don't use WRITE-STRING with \n (\n within strings is not in R5RS),
instead use FORMAT with ~%
-use EMIT-PROLOG and EMIT-TAG from htmlout.scm
2004-08-13 15:37:31 +00:00
vibr
a9ae5061d0
make server generated html pages XHTML 1.0 Strict:
...
element names -> lower case
2004-08-13 15:26:50 +00:00
vibr
4d7f10960c
fix typo
2004-08-11 19:38:16 +00:00
vibr
7b6f5675af
allow header in 405 answers
2004-08-11 14:53:11 +00:00
vibr
880a05229c
-adapt calls of make-error-response
...
-allow header in 405 answers
-answer 501, not 405, for unimplemented/unrecognized methods
2004-08-11 14:51:51 +00:00
vibr
5f64e72cd0
make-error-response:
...
more meaningful error description: show parsed uri
2004-08-11 14:48:11 +00:00
vibr
8b09f2b338
-adapt calls of make-error-response
...
-answer 501, not 405, for unimplemented/unrecognized methods
2004-08-11 12:28:46 +00:00
vibr
f22f43ccd1
make-error-response:
...
use stuff in req where req isn't #f
2004-08-11 10:17:14 +00:00
vibr
2ee378aea9
add comments:
...
-make clear difference between http-error and
fatal-syntax-error
-refer to make-error-response for args of http-error
2004-08-11 09:20:31 +00:00