f405214372Fixed a stupid thinko in the padding routine, as reported by Edi Weitz. Since the code in question was needlessly convoluted, rewrote those sections to make them clearer. Added another test-suite to test whether padding works correctly, when compared with md5sum.Pierre R. Mai2003-01-25 00:18:27 +00:00
5dd805b54cAdded ID comment, and fixed doc-string for finalize-md5-state.Pierre R. Mai2001-11-15 00:16:07 +00:00
15e54c4d35This fixes the code to properly work when being loaded uncompiled into CMU CL, as noted by John Wiseman.Pierre R. Mai2001-11-15 00:13:03 +00:00
5fda6d7244First production-quality release: o This takes on board comments by Raymond Toy, and drops optimizations and implementation-specific cruft that isn't really needed. o The code has been reorganized quite a bit, to better expose the structure o md5-checksum is renamed to md5-digest. o Added doc-strings and comments where necessary, added documentation to the file comment. o Added md5sum-sequence function. o Fixed restriction on <512MB of input, we now support unlimited amounts of input, as required by the spec. Since this causes one possibly bignum addition per call to update-md5-block, the user can revert to the old behaviour by putting :md5-small-length on *features* prior to compiling/loading the code. o Added test suite that is contained in Appendix A.5 of RFC 1321.Pierre R. Mai2001-11-15 00:07:50 +00:00
401b7bc17fFirst release that works on big-endian CMU CL releases. Should also work on other ANSI CL implementations, but quite suboptimally, of course.Pierre R. Mai2001-11-14 23:53:48 +00:00
1c4108cfb4Actually this release was the first public release. It switches over to using kernel:32bit-logical-* instead of the silly signed-byte acrobatics that were previously needed to get the various logical and ash operations optimized. Also added rudimentary file-comment.Pierre R. Mai2001-11-14 23:46:29 +00:00
9b71d00d16Initial public release, which moved to simple-array representation of working state (md5-regs). This is the first release that doesn't cons for normal operations. Posted on cmucl-help on 2001-11-09.Pierre R. Mai2001-11-14 23:39:20 +00:00
59a41db8e8Initial version of MD5 code, using multiple-values, which we abandoned due to boxing on each call to update-md5-block (might have been caused by missing inline declaration for that function).Pierre R. Mai2001-11-14 23:36:03 +00:00
66a41d91a3Bumped version number to reflect roll-out of Netscape Proxy-Bug fix.Pierre R. Mai2001-05-23 21:58:09 +00:00
cb09d17df0Added call to update-entity-headers, so that all response entities will get updated before writing out the response, not only those that happened to be generated via the access-resource standard method. This might lead to redundant calls to update-entity-headers, which might be costly, so maybe some form of last-updated time-stamp should be kept so that update-entity-headers isn't called more than once a second.Pierre R. Mai2001-05-23 21:52:53 +00:00
cab25c41baChanged date-parsing routines to be less strict when parsing date strings, i.e. to accept junk after a valid date specification. This is in order to support e.g. Netscape 2.x upto 4.7x, which illegally send an added length field in the If-Modified-Since header, i.e.:Pierre R. Mai2001-04-13 11:00:50 +00:00
abd1f1ca5bBacked out the last, misguided change to entity.cl (what was I thinking?) and rewrote the whole outbound entity stuff instead. This fixes some of the problems, but the whole entity stuff really needs a complete rethink, especially w.r.t. integrating inbound and outbound entities. Maybe we should drop "intelligent", persistent entities completely, and revert to dumb, transient entities, with the intelligence lying in the resources.Pierre R. Mai2001-04-07 17:24:40 +00:00
c8b0a61a1dLet file-entities recognize the file-write-date as the last-modified date.Pierre R. Mai2001-04-07 14:32:26 +00:00
da21cd5604Bumped version number to 1.8.5, to indicate our progress towards release 2.0.0.Pierre R. Mai2001-04-06 01:42:47 +00:00
c29758236aRewrote export-directory to support automatic generation of directory index-redirectors, fixed lambda-list to use keyword arguments, and added support for user-selectable entity-class.Pierre R. Mai2001-04-06 01:42:15 +00:00
d432e89e49Corrected server-product-info to show real CLASH version number.Pierre R. Mai2001-04-06 01:40:25 +00:00
69f36101c9A session-leader doesn't have to be a resource anymore. Added session-leader-resource for those relying on the old behaviour.Pierre R. Mai2001-03-28 05:49:10 +00:00
9eeeeda3c7Changed print-object on URLs to take advantage of *read-eval*, when available.Pierre R. Mai2001-03-28 02:55:33 +00:00
1301101ae6Added indentation pattern for `process-http-headers'.Pierre R. Mai2001-03-27 14:01:30 +00:00
5c57e50d07Extensive rewrite of parsing routines, most parsable headers in requests and entities are now parsed. Furthermore the whole request-entity handling has been changed to allow lazy parsing, parsed entity headers, and flexible choice of entities. This is all to support the handling of MIME multipart entities, especially multipart/form-data. The current revision is a first cut, and some further rewrites are needed.Pierre R. Mai2001-03-27 14:00:34 +00:00
384e68fd84Moved over to three-part version numbering scheme.Pierre R. Mai2001-03-25 00:22:07 +00:00
0aab94aa24Added code to add ourself to the CMU CL' startup herald.Pierre R. Mai2001-03-20 23:40:33 +00:00
9d215d8f1dAdded version numbering scheme for CLASH releases.Pierre R. Mai2001-03-20 23:37:10 +00:00
8160dc61cfAdded with-query-args' as the equivalent of with-form-data' for query url requests. This is probably a stop-gap measure, until a more general context processing framework (including session and validation data) has been designed and implemented.Pierre R. Mai2001-02-08 18:57:55 +00:00
e265243a53Fixed a small typo in the http-server/0.9 error handler introduced by last commit.Pierre R. Mai2001-02-07 14:10:30 +00:00
a803c62958Improved error response generation. We now keep track of the last request read on a connection, which allows us to generate the correct type of response in case of an error which is handled through `handle-server-error'.Pierre R. Mai2001-02-07 14:06:14 +00:00
57583b37ceVarious fixes to case-dependent code, in order to allow CLASH to work with Allegro CL in "modern" mode. Although we don't think that "modern" mode is the correct approach to case-sensitivity in CL, the changes we made should also make it easier to work in ANSI-compliant implementations/modes, with all the settings for readtable-case. Note though that this is a first best effort attempt, and so further case-ification bugs might still remain. YMMV.Pierre R. Mai2001-02-07 13:31:29 +00:00
7d628b92daOptimized read-http-line a bit in order to reduce gratuitous consing.Pierre R. Mai2001-02-07 13:23:04 +00:00
352f8b8113Changed default server-product-info to include the Lisp implementation as a comment.Pierre R. Mai2001-02-07 13:19:06 +00:00
a7ebbf08b3Added required (require "comm") for LWL and added initialize-clash so as to bring LWL support up to par with other ports.Pierre R. Mai2000-10-30 23:06:32 +00:00
5aa138df6dAdded access authorization framework, added port to ACL 5. ACL 5 seems to need eval-when wrapped around certain defconstant forms when used in the same file (maybe because of compiler-macros).Pierre R. Mai2000-10-30 23:05:23 +00:00
1853c6d6f2Added access authorization framework that allows for flexible validation of accesses.Pierre R. Mai2000-10-30 23:03:00 +00:00
6811f947d6Added tool to generate ChangeLog files from CVS log entries. This originated with MaiSQL.Pierre R. Mai2000-10-09 23:15:35 +00:00
008e29e54dAdded new files, and changed to work with the new MK-DEFSYSTEM, which doesn't import defsystem into the CL-USER package. Also removed some cruft.Pierre R. Mai2000-10-09 23:14:13 +00:00
4a4feed22bAdded exports for new functionality and some older server and connection stuff, as well as the driver functions start-http-listener' and initialize-clash'.Pierre R. Mai2000-10-09 23:13:06 +00:00
7dde13fd51Added some user utility functions and macros from MASH.Pierre R. Mai2000-10-09 23:05:02 +00:00
5e8ff59588Adjusted `standard-response-body' to take the server as an additional parameter. This is part of an ongoing drive to restructure standard message generation to be more modular. Still lots to be done...Pierre R. Mai2000-10-09 22:53:46 +00:00
932ce6a843Added server-product-info' to provide the information for the Server response-header. Rewrote error handling code to provide more information in the body. Adjust read-request' to pass the connection to `parse-request', see changes in messages.cl.Pierre R. Mai2000-10-09 22:52:09 +00:00
214066236aComplete rewrite of nearly all list parsing routines. This handles quoted-strings in both key and values of key value pairs and in simple lists correctly. Also factored out all magic constants, added some stuff to make this halfway efficient (profiling to be done). This rewrite makes partition superfluous, maybe remove this from src/utility.cl.Pierre R. Mai2000-10-09 22:46:24 +00:00
12cd9563f8Changed request object to carry a reference to the connection object instead of the stream, in our effort to reduce the passing around of streams. This is also necessary in order to allow request handlers to check for the address and/or hostname of the connection the request came in from. Changed `parse-request' accordingly. TODO: Rendering of messages should probably change over, too.Pierre R. Mai2000-10-09 22:41:11 +00:00
c883fcadf6Added ignore declarations to quiet the compiler. Added flushing of logfile so that the log on disk is always synced.Pierre R. Mai2000-10-09 22:10:54 +00:00
ff709e014dAdded ignore declaration to quiet the compiler.Pierre R. Mai2000-10-09 22:10:01 +00:00
cdb9250ea2Fixed small typo that didn't manifest itself.Pierre R. Mai2000-10-09 22:09:25 +00:00
0408a74b18Added 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.Pierre R. Mai2000-10-09 22:08:40 +00:00
0a61c9d69aRemoved superfluous check of the return value of ext:create-inet-listener.Pierre R. Mai2000-10-09 22:02:28 +00:00
e4c22e732cAdded driver for LispWorks for Windows/Linux. This hasn't received much testing, but should work out alright.Pierre R. Mai2000-10-09 22:01:14 +00:00
dd8365ec4cFactored locking primitives out to their own implementation-dependend files. Part of the porting effort to LispWorks.Pierre R. Mai2000-10-09 21:55:43 +00:00
1072ffaf5aSmall 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.Pierre R. Mai2000-07-23 13:13:00 +00:00
04c5a1dd1bChanges that bring CLASH up to extended HTTP/1.0 support:Pierre R. Mai2000-07-22 01:25:15 +00:00
0b29e10ea3Changes that bring CLASH up to extended HTTP/1.0 support:Pierre R. Mai2000-07-22 01:23:02 +00:00
c3aa400e66Changes that bring CLASH up to extended HTTP/1.0 support:Pierre R. Mai2000-07-22 01:15:06 +00:00
d09b872f61Changes that bring CLASH up to extended HTTP/1.0 support:Pierre R. Mai2000-07-22 01:11:09 +00:00
b3b91e38a1Changes that bring CLASH up to extended HTTP/1.0 support:Pierre R. Mai2000-07-22 01:06:44 +00:00
798edd89b0Changes that bring CLASH up to extended HTTP/1.0 support:Pierre R. Mai2000-07-22 01:01:56 +00:00
f8834bce21Changes that bring CLASH up to extended HTTP/1.0 support:Pierre R. Mai2000-07-22 00:49:21 +00:00
a53e7391e9Changes that bring CLASH up to extended HTTP/1.0 support:Pierre R. Mai2000-07-22 00:45:30 +00:00
2fbc5a621dChanges that bring CLASH up to extended HTTP/1.0 support:Pierre R. Mai2000-07-22 00:42:03 +00:00
a9e2f4c553Changes that bring CLASH up to extended HTTP/1.0 support:Pierre R. Mai2000-07-22 00:34:37 +00:00
22b8cd9c8fChanges that bring CLASH up to extended HTTP/1.0 support:Pierre R. Mai2000-07-22 00:19:55 +00:00
22b2bf1abdChanges that bring CLASH up to extended HTTP/1.0 support:Pierre R. Mai2000-07-22 00:18:59 +00:00
f30daaf80fChanges that bring CLASH up to extended HTTP/1.0 support:Pierre R. Mai2000-07-22 00:15:46 +00:00
00b1689a8dChanges that bring CLASH up to extended HTTP/1.0 support:Pierre R. Mai2000-07-22 00:13:03 +00:00
d2b1422049Changes that bring CLASH up to extended HTTP/1.0 support:Pierre R. Mai2000-07-21 23:24:24 +00:00
eac484a06fChanges that bring CLASH up to extended HTTP/1.0 support:Pierre R. Mai2000-07-21 23:22:25 +00:00
3281e85179Changes that bring CLASH up to extended HTTP/1.0 support:Pierre R. Mai2000-07-21 22:53:02 +00:00
8632e84fa2Changes that bring CLASH up to extended HTTP/1.0 support:Pierre R. Mai2000-07-21 22:51:02 +00:00
652e45b614Changes 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.Pierre R. Mai2000-07-21 22:45:49 +00:00
a890540a42Added 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+.Pierre R. Mai2000-04-14 00:07:13 +00:00
d7d90fbdb9Modified base path selection mechanism to support loading from non-working directories, added utility.cl and move around some dependencies to make implementation clearer.Pierre R. Mai2000-01-28 07:22:31 +00:00
f78391efdbSome basic utility definitions for all areas of CLASH.Pierre R. Mai2000-01-28 07:20:36 +00:00
5745612e87Nearly 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.Pierre R. Mai2000-01-28 07:16:56 +00:00
d9cf8a6965Modified 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...Pierre R. Mai1999-09-19 12:55:29 +00:00
23eb318329Added some simple syntax/readtable enhancements to ease working with URLs and HTTP-Versions. There will probably be further enhancements later on.Pierre R. Mai1999-09-19 12:52:40 +00:00
e1c4504edeThis 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).Pierre R. Mai1999-08-07 17:55:59 +00:00
0a25f68f43Small bug-fixes in URL printing and parsing.Pierre R. Mai1999-08-07 17:33:23 +00:00
88cdc8f6c8Basic 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.Pierre R. Mai1999-05-25 10:25:20 +00:00