Files
CLASH/CLASH.system
Pierre R. Mai e1c4504ede 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.
1999-08-07 17:55:59 +00:00

62 lines
1.6 KiB
Common Lisp

;;;; -*-Mode: LISP; Package: CL-USER; Syntax: ANSI-Common-lisp -*-
;;;; CLASH --- The Common Lisp Adaptable Simple HTTP server
;;;; This is copyrighted software. See documentation for terms.
;;;;
;;;; clash.system --- CLASH system definitions for MK-DEFSYSTEM
;;;;
;;;; Checkout Tag: $Name$
;;;; $Id$
(in-package :CL-USER)
;;;; %File Description:
;;;;
;;;;
;;;;
#+NIL
(defsystem "CLASH-SYS"
:source-pathname "src/sys"
:source-extension "cl"
:components
((:file "package")
(:file "mp" :depends-on ("package"))
(:file "socket" :depends-on ("package"))))
(defsystem "CLASH"
:source-pathname "src"
:source-extension "cl"
:components
((:module "base"
:source-pathname ""
:components ((:file "package")))
(:module "main"
:source-pathname "main"
: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 (#+CMU (:file "simple-cmu"))
:depends-on ("base" "main"))))