This is the first checked-in completely working version. It contains
nearly all concepts and simple implementations thereof needed to get a simple HTTP/0.9 "compliant" server working (there are some hacks needed that we don't yet provide, since the correct things will be added shortly, like complete HTTP/1.1 request parsing. The hacks needed are provided as part of the basic HTTP/0.9 server demo in src/test/basic-demo.cl). Further work is needed to clean up some things, Entity and Resource handling needs to be implemented right and less "naive" (the current implementations are just simple place-holders to get things up and running). Connections need to have knowledge of client identity (passed from the driver, this is implementation-specific stuff). Logging needs to be implemented (probably as server mixins). Condition handling needs to generate better responses for HTTP/0.9, and the division between condition handling and normal handling needs to be documented/rethought. Content generation is totally missing currently and needs to be implemented. If this is all in place, an HTTP/1.0 conforming server should be possible, and after porting the drivers to ACL and LW, we can make a first release.
This commit is contained in:
33
CLASH.system
33
CLASH.system
@ -14,13 +14,14 @@
|
||||
;;;;
|
||||
;;;;
|
||||
|
||||
#+NIL
|
||||
(defsystem "CLASH-SYS"
|
||||
:source-pathname "src/sys"
|
||||
:source-extension "cl"
|
||||
:components
|
||||
((:file "package")
|
||||
(:file "mp" :depends-on "package")
|
||||
(:file "socket" :depends-on "package")))
|
||||
(:file "mp" :depends-on ("package"))
|
||||
(:file "socket" :depends-on ("package"))))
|
||||
|
||||
(defsystem "CLASH"
|
||||
:source-pathname "src"
|
||||
@ -31,10 +32,30 @@
|
||||
:components ((:file "package")))
|
||||
(:module "main"
|
||||
:source-pathname "main"
|
||||
:components ((:file "url"))
|
||||
:components ((:file "conditions")
|
||||
(:file "status-codes")
|
||||
(:file "url"
|
||||
:depends-on ("conditions" "status-codes"))
|
||||
(:file "version"
|
||||
:depends-on ("conditions" "status-codes"))
|
||||
(:file "http-io"
|
||||
:depends-on ("conditions" "status-codes"))
|
||||
(:file "connection"
|
||||
:depends-on ("http-io"))
|
||||
(:file "method")
|
||||
(:file "namespace"
|
||||
:depends-on ("url"))
|
||||
(:file "messages"
|
||||
:depends-on ("url" "version"))
|
||||
(:file "entity"
|
||||
:depends-on ("http-io" "url"))
|
||||
(:file "resource"
|
||||
:depends-on ("entity" "method"))
|
||||
(:file "server"
|
||||
:depends-on ("namespace" "messages"
|
||||
"resource")))
|
||||
:depends-on ("base"))
|
||||
(:module "driver"
|
||||
:source-pathname "drivers"
|
||||
:components ((:file "simple.cl"))
|
||||
:depends-on ("base" "main")))
|
||||
:depends-on ("CLASH-SYS"))
|
||||
:components (#+CMU (:file "simple-cmu"))
|
||||
:depends-on ("base" "main"))))
|
||||
|
||||
Reference in New Issue
Block a user