1 ;;; -*- Mode: LISP; Syntax: COMMON-LISP; Package: CL-USER; Base: 10 -*-
3 ;;; Copyright (c) 2004-2010, Dr. Edmund Weitz. All rights reserved.
5 ;;; Redistribution and use in source and binary forms, with or without
6 ;;; modification, are permitted provided that the following conditions
9 ;;; * Redistributions of source code must retain the above copyright
10 ;;; notice, this list of conditions and the following disclaimer.
12 ;;; * Redistributions in binary form must reproduce the above
13 ;;; copyright notice, this list of conditions and the following
14 ;;; disclaimer in the documentation and/or other materials
15 ;;; provided with the distribution.
17 ;;; THIS SOFTWARE IS PROVIDED BY THE AUTHOR 'AS IS' AND ANY EXPRESSED
18 ;;; OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
19 ;;; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20 ;;; ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
21 ;;; DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22 ;;; DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
23 ;;; GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24 ;;; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
25 ;;; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
26 ;;; NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
27 ;;; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 (defpackage #:hunchentoot
33 (:use
:cl
:cl-ppcre
:chunga
:flexi-streams
:url-rewrite
)
34 (:shadow
#:defconstant
37 (:import-from
:lw
#:with-unique-names
#:when-let
)
44 #:*content-types-for-url-rewrite
*
45 #:*default-connection-timeout
*
46 #:*default-content-type
*
49 #:*handle-http-errors-p
*
51 #:*http-error-handler
*
52 #:*hunchentoot-default-external-format
*
53 #:*hunchentoot-version
*
54 #:*lisp-errors-log-level
*
55 #:*lisp-warnings-log-level
*
56 #:*log-lisp-backtraces-p
*
58 #:*log-lisp-warnings-p
*
59 #:*methods-for-post-parameters
*
62 #:*rewrite-for-session-urls
*
64 #:*session-gc-frequency
*
67 #:*show-lisp-backtraces-p
*
68 #:*show-lisp-errors-p
*
70 #:*use-remote-addr-for-sessions
*
71 #:*use-user-agent-for-sessions
*
73 #:+http-authorization-required
+
79 #:+http-expectation-failed
+
80 #:+http-failed-dependency
+
82 #:+http-gateway-time-out
+
84 #:+http-internal-server-error
+
85 #:+http-length-required
+
86 #:+http-method-not-allowed
+
87 #:+http-moved-permanently
+
88 #:+http-moved-temporarily
+
90 #:+http-multiple-choices
+
92 #:+http-non-authoritative-information
+
93 #:+http-not-acceptable
+
95 #:+http-not-implemented
+
98 #:+http-partial-content
+
99 #:+http-payment-required
+
100 #:+http-precondition-failed
+
101 #:+http-proxy-authentication-required
+
102 #:+http-request-entity-too-large
+
103 #:+http-request-time-out
+
104 #:+http-request-uri-too-large
+
105 #:+http-requested-range-not-satisfiable
+
106 #:+http-reset-content
+
108 #:+http-service-unavailable
+
109 #:+http-switching-protocols
+
110 #:+http-temporary-redirect
+
111 #:+http-unsupported-media-type
+
113 #:+http-version-not-supported
+
114 #:abort-request-handler
117 #:acceptor-access-log-destination
119 #:acceptor-listen-backlog
120 #:acceptor-dispatch-request
121 #:acceptor-error-template-directory
122 #:acceptor-input-chunking-p
123 #:acceptor-log-access
124 #:acceptor-log-message
125 #:acceptor-message-log-destination
127 #:acceptor-output-chunking-p
128 #:acceptor-persistent-connections-p
130 #:acceptor-read-timeout
131 #:acceptor-remove-session
132 #:acceptor-reply-class
133 #:acceptor-request-class
135 #-
:hunchentoot-no-ssl
#:acceptor-ssl-certificate-file
136 #-
:hunchentoot-no-ssl
#:acceptor-ssl-privatekey-file
137 #-
:hunchentoot-no-ssl
#:acceptor-ssl-privatekey-password
138 #:acceptor-status-message
139 #:acceptor-write-timeout
140 #:acceptor-document-root
141 #:acceptor-error-template-directory
163 #:create-folder-dispatcher-and-handler
164 #:create-prefix-dispatcher
165 #:create-regex-dispatcher
166 #:create-request-handler-thread
167 #:create-static-file-dispatcher-and-handler
168 #:decrement-taskmaster-thread-count
169 #:default-document-directory
170 #:define-easy-handler
171 #:delete-aux-request-value
172 #:delete-session-value
173 #:dispatch-easy-handlers
175 #-
:hunchentoot-no-ssl
#:easy-ssl-acceptor
181 #:handle-incoming-connection
182 #:handle-if-modified-since
194 #:hunchentoot-condition
196 #:hunchentoot-warning
197 #:increment-taskmaster-thread-count
198 #:initialize-connection-stream
200 #:maybe-invoke-debugger
202 #:multi-threaded-taskmaster
205 #:one-thread-per-connection-taskmaster
218 #:recompute-request-parameters
231 #:reply-external-format
232 #:reply-external-format
*
240 #:require-authorization
241 #:reset-connection-stream
243 #:reset-session-secret
253 #:session-cookie-name
254 #:session-cookie-value
261 #:session-remote-addr
270 #:single-threaded-taskmaster
271 #-
:hunchentoot-no-ssl
#:ssl-acceptor
280 #:taskmaster-acceptor
281 #:taskmaster-max-accept-count
282 #:taskmaster-max-thread-count
283 #:taskmaster-thread-count
284 #:too-many-taskmaster-requests