Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
tag: install-duck_2…
Fetching contributors…

Cannot retrieve contributors at this time

263 lines (245 sloc) 7.726 kb
#+(version= 8 2)
(sys:defpatch "aserve" 13
"v1: version 1.2.67, implement keep-alive in allegroserve client;
v2: 1.2.68, obey keep-alive requests for PUT and POST requests;
v3: 1.2.69, make logging though method specialized on wserver class;
v4: 1.2.70: add support for Expect: 100-continue requests;
v5: 1.3.1: compression support, publish-directory :destination can be a
list of directories, and various SSL improvements;
v6: 1.3.5: doc updates, make client-request-read-sequence work with
compressed responses, delay sending headers for computed entities,
add option to do hidden redirect to an index file in a directory,
fix prepend-headers so that it works on windows;
v7: 1.3.7: Add :default-actions to webactions,
Avoid polling in http-accept-thread,
smp thread safety changes;
v8: 1.3.8: fix problem w/response handler using string output streams;
v9: 1.3.9: speed up unchunking-streams;
v10: 1.3.10: fix buffer boundary error in unchunking-streams.
v11: 1.3.11: fix log reporting of content-length when using keep-alive.
v12: 1.3.12: make aserve compatible with patch inflate.003,
request-query cache includes external-format as a key,
send cookies on one line as per rfc6265,
add support for ssl CRLs.
v13: 1.3.13: improve debugging facilities."
:type :system
:post-loadable t)
#+(version= 8 1)
(sys:defpatch "aserve" 2
"v1: version 1.2.56, large request body & multipart content type & more;
v2: version 1.2.58, fix problem introduced in 1.2.56 where the response date
is always the zero universal time & correctly send out the comment after
the result code."
:type :system
:post-loadable t)
#+(version= 8 0)
(sys:defpatch "aserve" 5
"v1: version 1.2.45;
v2: version 1.2.46;
v3: version 1.2.47;
v4: version 1.2.48, handle HTTP `204 No Content';
v5: version 1.2.50, Enhanced SSL client/server support."
:type :system
:post-loadable t)
;; -*- mode: common-lisp; package: net.aserve -*-
;;
;; packages.cl
;;
;; copyright (c) 1986-2005 Franz Inc, Berkeley, CA - All rights reserved.
;; copyright (c) 2002-2012 Franz Inc, Oakland, CA - All rights reserved.
;;
;; This code is free software; you can redistribute it and/or
;; modify it under the terms of the version 2.1 of
;; the GNU Lesser General Public License as published by
;; the Free Software Foundation, as clarified by the AllegroServe
;; prequel found in license-allegroserve.txt.
;;
;; This code is distributed in the hope that it will be useful,
;; but without any warranty; without even the implied warranty of
;; merchantability or fitness for a particular purpose. See the GNU
;; Lesser General Public License for more details.
;;
;; Version 2.1 of the GNU Lesser General Public License is in the file
;; license-lgpl.txt that was distributed with this file.
;; If it is not present, you can access it from
;; http://www.gnu.org/copyleft/lesser.txt (until superseded by a newer
;; version) or write to the Free Software Foundation, Inc., 59 Temple Place,
;; Suite 330, Boston, MA 02111-1307 USA
;; Description:
;; packages and exports for AllegroServe
;;
;;- This code in this file obeys the Lisp Coding Standard found in
;;- http://www.franz.com/~jkf/coding_standards.html
;;-
; note: net.html.generator is not defined here since that's a
; standalone package
;
(in-package :user)
(eval-when (compile load eval)
(require :osi)
(require :autozoom)
(require :uri)
#-(and allegro (version>= 6))
(require :streamc)
(require :inflate))
sys::
(eval-when (compile load eval)
(defvar *user-warned-about-deflate* nil)
(handler-case (require :deflate)
(error (c)
(if* (null *user-warned-about-deflate*)
then (format t "~&NOTE: ~@<the deflate module could not be loaded, so ~
server compression is disabled. AllegroServe is completely functional ~
without compression. Original error loading deflate was:~:@>~%~a~%" c)
(setq *user-warned-about-deflate* t)))))
(defpackage :net.aserve
(:use :common-lisp :excl :net.html.generator :net.uri :util.zip)
(:export
#:authorize
#:authorizer
#:base64-decode
#:base64-encode
#:compute-strategy
#:computed-entity
;; don't export, these should be private
; #:debug-off
; #:debug-on
#:denied-request
#:enable-proxy
#:ensure-stream-lock
#:entity-plist
#:failed-request
#:form-urlencoded-to-query
#:function-authorizer ; class
#:function-authorizer-function
#:get-basic-authorization
#:get-cookie-values
#:get-all-multipart-data
#:get-multipart-header
#:get-multipart-sequence
#:get-request-body
#:handle-request
#:handle-uri ; add-on component..
#:header-slot-value
#:http-request ; class
#:locator ; class
#:location-authorizer ; class
#:location-authorizer-patterns
#:map-entities
#:parse-multipart-header
#:password-authorizer ; class
#:process-entity
#:publish
#:publish-file
#:publish-directory
#:publish-multi
#:publish-prefix
#:query-to-form-urlencoded
#:reply-header-slot-value
#:run-cgi-program
#:set-basic-authorization
#:standard-locator
#:unpublish-locator
#:vhost
#:vhost-log-stream
#:vhost-error-stream
#:vhost-names
#:vhost-plist
#:request-method
#:request-protocol
#:request-protocol-string
#:request-query
#:request-query-value
#:request-raw-request
#:request-raw-uri
#:request-socket
#:request-uri
#:request-variable-value
#:request-wserver
#:request-reply-code
#:request-reply-date
#:request-reply-content-length
#:request-reply-content-type
#:request-reply-plist
#:request-reply-protocol-string
#:request-reply-strategy
#:request-reply-stream
#:set-cookie-header
#:shutdown
#:split-into-words
#:start
#:uridecode-string
#:uriencode-string
#:unpublish
#:url-argument
#:url-argument-alist
#:with-http-response
#:with-http-body
#:wserver
#:wserver-default-vhost
#:wserver-enable-chunking
#:wserver-enable-keep-alive
#:wserver-external-format
#:wserver-filters
#:wserver-locators
#:wserver-io-timeout
#:wserver-log-function
#:wserver-log-stream
#:wserver-response-timeout
#:wserver-socket
#:wserver-vhosts
#:log-for-wserver
#:*aserve-version*
#:*default-aserve-external-format*
#:*http-io-timeout*
#:*http-response-timeout*
#:*mime-types*
#:*response-accepted*
#:*response-no-content*
#:*response-bad-request*
#:*response-continue*
#:*response-created*
#:*response-found*
#:*response-internal-server-error*
#:*response-no-content*
#:*response-non-authoritative-information*
#:*response-not-found*
#:*response-not-modified*
#:*response-ok*
#:*response-moved-permanently*
#:*response-see-other*
#:*response-temporary-redirect*
#:*response-unauthorized*
#:*wserver*))
(defpackage :net.aserve.client
(:use :net.aserve :excl :common-lisp)
(:export
#:client-request ; class
#:client-request-close
#:client-request-cookies
#:client-request-headers
#:client-request-protocol
#:client-request-read-sequence
#:client-request-response-code
#:client-request-response-comment
#:client-request-socket
#:client-request-uri
#:client-response-header-value
#:read-response-body
#:compute-digest-authorization
#:cookie-item
#:cookie-item-expires
#:cookie-item-name
#:cookie-item-path
#:cookie-item-secure
#:cookie-item-value
#:cookie-jar ; class
#:digest-authorization
#:digest-password
#:digest-realm
#:digest-username
#:do-http-request
#:http-copy-file
#:make-http-client-request
#:read-client-response-headers
))
Jump to Line
Something went wrong with that request. Please try again.