Commit Graph

86 Commits

Author SHA1 Message Date
cdb9250ea2 Fixed small typo that didn't manifest itself. 2000-10-09 22:09:25 +00:00
0408a74b18 Added new condition for non-URL related parsing errors, used in
parsing.cl.  This needs further reworking, so that URL-related syntax
errors are subtypes of this new condition.
2000-10-09 22:08:40 +00:00
0a61c9d69a Removed superfluous check of the return value of
ext:create-inet-listener.
2000-10-09 22:02:28 +00:00
e4c22e732c Added driver for LispWorks for Windows/Linux. This hasn't received
much testing, but should work out alright.
2000-10-09 22:01:14 +00:00
dd8365ec4c Factored locking primitives out to their own implementation-dependend
files.  Part of the porting effort to LispWorks.
2000-10-09 21:55:43 +00:00
1072ffaf5a Small change that guards against flushable read-sequence in earlier
versions of CMU CL, as well as guarding against short reads by
read-sequence on socket streams, though my understanding of the
standard seems to imply that read-sequence can only return prematurely
on EOF.  But this way we shouldn't have any problems either way.
2000-07-23 13:13:00 +00:00
04c5a1dd1b Changes that bring CLASH up to extended HTTP/1.0 support:
Restructured system definition somewhat...
2000-07-22 01:25:15 +00:00
0b29e10ea3 Changes that bring CLASH up to extended HTTP/1.0 support:
Added exports for (maybe) all necessary symbols...
2000-07-22 01:23:02 +00:00
c3aa400e66 Changes that bring CLASH up to extended HTTP/1.0 support:
Added partitioning functions as a stop-gap measure while PMSF-Lib is
unreleased.  This should probably belong into parsing.cl...
2000-07-22 01:15:06 +00:00
d09b872f61 Changes that bring CLASH up to extended HTTP/1.0 support:
Moved indenting changes for CL constructs to a central place.
2000-07-22 01:11:09 +00:00
b3b91e38a1 Changes that bring CLASH up to extended HTTP/1.0 support:
Added naive buffering functionality for use in CLASH.  This is
currently only used to implement stream entities, but might have other
uses.  Given the exitence of generational garbage collectors, it might
be advantageous to forego the pooling scheme and throw away buffers
after each use.  This will depend on implementations and usage
patterns, though, so we should make this tunable...
2000-07-22 01:06:44 +00:00
798edd89b0 Changes that bring CLASH up to extended HTTP/1.0 support:
Fixed various bugs in query-argument parsing (don't you just love
ambiguous standards?),  and added functionality to default url slots
from another url object, to copy url objects and to externalize them.
2000-07-22 01:01:56 +00:00
f8834bce21 Changes that bring CLASH up to extended HTTP/1.0 support:
Code to implement session management for resources.  The current
version supports transient cookie based session management, but other
forms of management could be added without undue hassle.
2000-07-22 00:49:21 +00:00
a53e7391e9 Changes that bring CLASH up to extended HTTP/1.0 support:
Added interface to directly export resources from a server.
Restructured code and added HTTP/1.0 support.  Various miscellaneous
changes.
2000-07-22 00:45:30 +00:00
2fbc5a621d Changes that bring CLASH up to extended HTTP/1.0 support:
The machinery in this file is used for the automatic creation of
responses in standardized (error) situations based on the information
contained in a condition.
2000-07-22 00:42:03 +00:00
a9e2f4c553 Changes that bring CLASH up to extended HTTP/1.0 support:
Changed argument precedence order on access-resource and
access-resource-using-method to implement the expected semantics that
methods specialized on requests or request-methods overide more
general methods in base classes.

Also revamped the division of labour between entities and resources on
static resources (see entity.cl), so that static resources are simple
wrappers around static entities, which provide the content.

Added resources that handle dynamic content and forms by dispatching
to functions passed in during creation.  This is to support simple
ad-hoc dynamic resources, whereas really dynamic resources will just
subclass resource and implement the stuff on their own.

Added a simple wrapper to bind form data passed in with a post request
(with-form-data).  This should be unified with query-argument
processing.
2000-07-22 00:34:37 +00:00
22b8cd9c8f Changes that bring CLASH up to extended HTTP/1.0 support:
Added declarations to silence warnings on unused arguments.
2000-07-22 00:19:55 +00:00
22b2bf1abd Changes that bring CLASH up to extended HTTP/1.0 support:
Moved some of the common parsing and rendering subroutines to a new
file.  Many other functions should probably be moved over here, so
watch this space as clean up progresses further.
2000-07-22 00:18:59 +00:00
f30daaf80f Changes that bring CLASH up to extended HTTP/1.0 support:
Switched over to new, splay-tree based hierarchical namespaces.  This
is still a work in progress.
2000-07-22 00:15:46 +00:00
00b1689a8d Changes that bring CLASH up to extended HTTP/1.0 support:
Extensive changes to accomodate the new model for message classes and
HTTP versions.  This was necessary because the old model was not as
flexible and concise as hoped, so that supporting multiple http
version became tedious.  The new infrastructure is still a bit of a
work in progress, though, so watch this space.  There's also some work
left purging the reliance on pure streams instead of connections.
2000-07-22 00:13:03 +00:00
d2b1422049 Changes that bring CLASH up to extended HTTP/1.0 support:
Added simple common logging file format mixin and a simple profiling
mixin.  This is more for demonstration purposes, than for real-life
usage.  Real world appliations will probably want to do their own
customized forms of logging and/or profiling.
2000-07-21 23:24:24 +00:00
eac484a06f Changes that bring CLASH up to extended HTTP/1.0 support:
Moved render-slots to messages.cl, removed non-1.0 entity-headers,
and implemented the rest.  Added a number of ready-made entity
implementations, for use with static-resource.
2000-07-21 23:22:25 +00:00
3281e85179 Changes that bring CLASH up to extended HTTP/1.0 support:
Consolidated the event-driven CMU CL driver code and the
multi-processing CMU CL driver so that they share common code, like
the newly introduced connection sub-class and related methods.
2000-07-21 22:53:02 +00:00
8632e84fa2 Changes that bring CLASH up to extended HTTP/1.0 support:
Made connection an abstract base class from which individual drivers
deriver their specific connection classes (like it was intended in the
first place).  Added generic functions to get the address and hostname
of the client.
2000-07-21 22:51:02 +00:00
652e45b614 Changes that bring CLASH up to extended HTTP/1.0 support:
Added response-initargs and entity-initargs fields to the clash-error
conditions, so that signallers can return additional information to
the client regarding errors.
2000-07-21 22:45:49 +00:00
a890540a42 Added a version of the simple CMUCL driver that uses SERVE-EVENT, for
all versions of CMUCL that don't provide multi-processing support,
like on all non-x86 platforms.  Tested on an UltraSparc running
Solaris 2.7 (hawk) and a mid-1999 version of CMUCL 18b+.
2000-04-14 00:07:13 +00:00
d7d90fbdb9 Modified base path selection mechanism to support loading from
non-working directories, added utility.cl and move around some
dependencies to make implementation clearer.
2000-01-28 07:22:31 +00:00
f78391efdb Some basic utility definitions for all areas of CLASH. 2000-01-28 07:20:36 +00:00
5745612e87 Nearly complete rewrite to clean up URL/URI parsing, merging and
handling, in the face of the much saner RFC 2396.  This implementation
provides all major capabilities, including low-consing operation,
representation of relative and absolute URIs, useful merging and
read-write consistency of URIs.  Some clean-up work is still needed to
purge the implementation from all references to URLs, to support the
handling of all URIs.  Other minor cleanups and additions are still
needed, but after that the handling of URIs should be nearly as robust
as the handling of pathnames in CL.
2000-01-28 07:16:56 +00:00
d9cf8a6965 Modified the selection of request and response classes to take into
account the server we are servicing, so that each server only sees
and creates request/response classes he knows he can handle.  This
also makes it possible to add request/response classes in a running
system, and to run servers of different versions side-by-side in an
image without affecting each other...
1999-09-19 12:55:29 +00:00
23eb318329 Added some simple syntax/readtable enhancements to ease working with
URLs and HTTP-Versions.  There will probably be further enhancements
later on.
1999-09-19 12:52:40 +00:00
1cf0f56f10 Sample Logos for CLASH... ;) 1999-08-07 18:06:15 +00:00
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
0a25f68f43 Small bug-fixes in URL printing and parsing. 1999-08-07 17:33:23 +00:00
88cdc8f6c8 Basic development mostly done, need to do HTTP functionality now.
We might deprecate CLASH-SYS (both package and system) and incorporate
that into the driver itself.  For now we've removed all dependencies.
1999-05-25 10:25:20 +00:00
7b11e26c3e Initial revision 1999-05-23 15:47:18 +00:00