what we have to do

This commit is contained in:
interp 2003-07-23 14:05:29 +00:00
parent 2cc9c209f0
commit d34380c1fa
1 changed files with 107 additions and 0 deletions

107
scheme/httpd/surflets/TODO Normal file
View File

@ -0,0 +1,107 @@
- adjust open-clause in SURFLETS
- split surflet-handler file into multiples.
- add more comments to files.
- change assoc to assq in get-header in surflets.
- Add note that make-redirect-response is for CGI only
- Add note to make-redirect-response that the browser won't notice the
- redirect.
- Add possibility to generate error-responses.
- Add-simple does not work.
- Simple SUrflet does not work.==> Bug in GET-BINDINGS of POST req.s
>>NO PROBLEM on other sites: * ??Spaceships' last step does not work.
- Surflet administration does not work.
- *POST-cache* in surflets.scm should be threadsafe. (it is)
- killing sessions results in error
>>MOVED to LATER: * Simple Surflets cannot have extra HTML.
- Uppercase some surflet names in strings.
- Remove surflet-prefix from surflet-handler options.
- Remove return-continuation from instance.
- DELETE-CONTINUATION in surflet-handler: obtain lock before looking
- for continuation table.
- Rewrite LOAD-SURFLET in GET-SURFLET-RT-STRUCTURE in surflet-handler
- thus it is may stand alone.
- look for resume-url-ids only in the filename, not in the path part.
>>MOVED to LATER: * ?Only one thread for all surveillance
- Use convert for gnuplot's output.
>>>* Better structure for input-fields: changing default values
>>>* Change representation of Simple SUrflet objects to
>>> record types.
>>>* Implement vectors with WRITE-BLOCK (see doc/io.txt)
- DISCOURAGED: SUrflets get only bindings?
- add-html self-link is wrong, same in add-surflet.scm
- unify returned-via? and input-field-binding in dispatcher
?? not reproducable Gateway error while accessing non existing surflet continuation
- There's a TODO at the end of admin-profiling
- use scheme-with-scsh in packages.
- input-field-binding-check in admin-handler (should-be input-field-value)
- rename set-options-session-lifetime to set-options-session-lifetime!
- dito for adjust-timeout
>>>It is useful for initial requests or simple session-id recovering
>> unexport instance-session-id: no use cognizable
- disentangle form-query (surflets/simple-surflet-api)
* alias for extract-single-binding (extract/single) and extract-bindings
(extract)?
- outsource some parts from surflets.scm; make them extra modules
- export conversion-rules
- remove l.320: why can't ... be deleted correctly?
- add session-alive?
- (define (session-alive? session-id)
- (assoc session-id (get-sessions)))
- add send-html-string that gets a string and sends a no-caching html
- export status-code Makro for surflet-handler's responses
- three layer structures:
(a) Usual User: surflets:
surflets/send-html
(b) Advanced User:
. Access to (his) session
# surflets/sessions
. own conversion rules
# surflets/my-sxml
. continuations
# responses
# send/.. primitives:
# surflet-handler/primitives:
(export
surflet-response-constructor
surflet-response-selectors
send/.. primitives
send-error
(status-code :syntax))
(c) Adminstrative User: Full acccess to surflet-handler
Naming convention: Avoid "surflet-handler/.." in name, if there is
no semantical context to the surflet-handler (e.g. exceptions:
responses, status-code, requests)
>>>* Problem: surveillance-thread: obtains the lock to remove the session
entry, if the time-to-live is zero. It may happen that another
thread is waiting for this lock just to do something with the killed
session. This will encounter an error where the lock for the session
table is not released. Thus, we have to use error-handler
everywhere, where we use *session-table-lock*
>> Some argument checks added with commit 1.64 of
surflet-handler.scm
- >> WITH-LOCK
- add GET-SESSION to surflet-handler
- alist-administration in make-callback/make-annotated-address
(make-valued-address) -> (url [value] -> return-address)
returned-via? will return the value or #f if none was given
- change data structure for input-fields
- add annotated versions for input-field constructors
* make subset lists for some parts
- structure WITH-LOCK from sunterlib (add to load-surflet-server.scm)
and/or DYNAMIC-WIND
- only ship ID of session / continuation to the user (--> if he saves
the session, it will never be GC'ed otherwise)
- in add-raw: remove link to add-html.scm
- remove bug: strings in urls seem to be html-quoted twice
- at simple-surflet-api: bigger distance between following
radio-input-fields
- surflet-handler 552: session-id instead of instance-session-id
send error 411 "Length required" in get-content-length (bindings.scm)
if the content-length-header is missing.
don't use with-real-input-field, use let and cadr instead. (?)
use internal-error, if surflet fails, not bad gateway
don't let callbackfunctions return.