]> code.delx.au - gnu-emacs-elpa/blob - NOTES
update link in README
[gnu-emacs-elpa] / NOTES
1 -*- org -*-
2
3 * Notes
4 * Tasks [8/10]
5 ** TODO documentation for running in a chroot jail
6 see https://wiki.archlinux.org/index.php/nginx#Installation_in_a_chroot
7
8 ** incremental handler calls
9 not sure if the extra performance is worth the added complexity
10
11 Before the header is fully parsed, call any potential handlers.
12 Include a field in the request object to indicate that the request
13 isn't finished being received so handlers can return and wait to be
14 called again.
15
16 Also, put a catch in the filter function and allow the =headers=
17 function on the request object to throw to said catch aborting the
18 handler and waiting for the rest of the input.
19
20 ** DONE Documentation [6/6]
21 - [X] introduction
22 - [X] handlers
23 - [X] request headers
24 - [X] usage examples
25 - [X] list of functions
26
27 Notes to touch upon
28 - [X] how to set content type
29
30 ** DONE Handle POST requests
31 1. read standard for POST data
32 2. parse multi-line headers with boundaries
33
34 For now keep this all incremental and in ws-filter.
35
36 ** DONE Makefile
37 - byte-compile
38 - package
39 - test
40 - benchmark
41 ** DONE catch errors and return an error code
42 include an easy error handler like the 404 handler
43
44 ** DONE better parsing of multipart form blocks
45 parse more than just the content-type headers.
46
47 ** DONE non-multipart form data
48 e.g., parameter strings
49
50 ** DONE some more convenience functionality [6/6]
51 - [X] strip and parse URL query string
52 - [X] parse urlencoded post data
53 - [X] think about defaulting to (name . content) for form elements
54 - [X] maybe don't require a non-nil return to cancel the connection,
55 instead only keep open if :keep-open is returned
56 - [X] function to send a file (with mime handling)
57 - [X] send a 404 with some default text
58
59 ** CANCELED Lazy header processing
60 - State "CANCELED" from "TODO" [2013-12-25 Wed 12:21] \\
61 premature optimization
62 Use lazy sequence functions for header a-list to avoid parsing all
63 headers. For regexp matchers should stop when matched header is
64 encountered (often the first one when :GET), For function matchers
65 provide lazy version of assoc.
66
67 Also, there is the issue of how a lazy request for more parameters
68 should act before all incoming text has been received. Emacs does not
69 provide a light-weight mechanism for a function to wait for incoming
70 process text without something gross like the =(sit-for 0.1)= used in
71 the test suite.
72
73 ** TODO use gnutls for https
74 I think this should work.