packages.lisp
  1 ;;; -*- Mode: LISP; Syntax: COMMON-LISP; Package: CL-USER; Base: 10 -*-
2
3 ;;; Copyright (c) 2004-2010, Dr. Edmund Weitz. All rights reserved.
4
5 ;;; Redistribution and use in source and binary forms, with or without
6 ;;; modification, are permitted provided that the following conditions
7 ;;; are met:
8
9 ;;; * Redistributions of source code must retain the above copyright
10 ;;; notice, this list of conditions and the following disclaimer.
11
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.
16
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.
28
29 (in-package :cl-user)
30
31 (defpackage #:hunchentoot
32 (:nicknames #:tbnl)
33 (:use :cl :cl-ppcre :chunga :flexi-streams :url-rewrite)
34 (:shadow #:defconstant
35 #:url-encode)
36 #+:lispworks
37 (:import-from :lw #:with-unique-names #:when-let)
38 (:export #:*acceptor*
39 #:*catch-errors-p*
40 #+:lispworks
41 #:*cleanup-function*
42 #+:lispworks
43 #:*cleanup-interval*
44 #:*content-types-for-url-rewrite*
45 #:*default-connection-timeout*
46 #:*default-content-type*
47 #:*dispatch-table*
48 #:*file-upload-hook*
49 #:*handle-http-errors-p*
50 #:*header-stream*
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*
57 #:*log-lisp-errors-p*
58 #:*log-lisp-warnings-p*
59 #:*methods-for-post-parameters*
60 #:*reply*
61 #:*request*
62 #:*rewrite-for-session-urls*
63 #:*session*
64 #:*session-gc-frequency*
65 #:*session-max-time*
66 #:*session-secret*
67 #:*show-lisp-backtraces-p*
68 #:*show-lisp-errors-p*
69 #:*tmp-directory*
70 #:*use-remote-addr-for-sessions*
71 #:*use-user-agent-for-sessions*
72 #:+http-accepted+
73 #:+http-authorization-required+
74 #:+http-bad-gateway+
75 #:+http-bad-request+
76 #:+http-conflict+
77 #:+http-continue+
78 #:+http-created+
79 #:+http-expectation-failed+
80 #:+http-failed-dependency+
81 #:+http-forbidden+
82 #:+http-gateway-time-out+
83 #:+http-gone+
84 #:+http-internal-server-error+
85 #:+http-length-required+
86 #:+http-method-not-allowed+
87 #:+http-moved-permanently+
88 #:+http-moved-temporarily+
89 #:+http-multi-status+
90 #:+http-multiple-choices+
91 #:+http-network-authentication-required+
92 #:+http-no-content+
93 #:+http-non-authoritative-information+
94 #:+http-not-acceptable+
95 #:+http-not-found+
96 #:+http-not-implemented+
97 #:+http-not-modified+
98 #:+http-ok+
99 #:+http-partial-content+
100 #:+http-payment-required+
101 #:+http-precondition-failed+
102 #:+http-precondition-required+
103 #:+http-proxy-authentication-required+
104 #:+http-request-entity-too-large+
105 #:+http-request-header-fields-too-large+
106 #:+http-request-time-out+
107 #:+http-request-uri-too-large+
108 #:+http-requested-range-not-satisfiable+
109 #:+http-reset-content+
110 #:+http-see-other+
111 #:+http-service-unavailable+
112 #:+http-switching-protocols+
113 #:+http-temporary-redirect+
114 #:+http-too-many-requests+
115 #:+http-unsupported-media-type+
116 #:+http-use-proxy+
117 #:+http-version-not-supported+
118 #:abort-request-handler
119 #:accept-connections
120 #:acceptor
121 #:acceptor-access-log-destination
122 #:acceptor-address
123 #:acceptor-listen-backlog
124 #:acceptor-dispatch-request
125 #:acceptor-error-template-directory
126 #:acceptor-input-chunking-p
127 #:acceptor-log-access
128 #:acceptor-log-message
129 #:acceptor-message-log-destination
130 #:acceptor-name
131 #:acceptor-output-chunking-p
132 #:acceptor-persistent-connections-p
133 #:acceptor-port
134 #:acceptor-read-timeout
135 #:acceptor-remove-session
136 #:acceptor-reply-class
137 #:acceptor-request-class
138 #:acceptor-ssl-p
139 #-:hunchentoot-no-ssl #:acceptor-ssl-certificate-file
140 #-:hunchentoot-no-ssl #:acceptor-ssl-privatekey-file
141 #-:hunchentoot-no-ssl #:acceptor-ssl-privatekey-password
142 #:acceptor-status-message
143 #:acceptor-write-timeout
144 #:acceptor-document-root
145 #:acceptor-error-template-directory
146 #:authorization
147 #:aux-request-value
148 #:client-as-string
149 #:content-length
150 #:content-length*
151 #:content-type
152 #:content-type*
153 #:cookie-domain
154 #:cookie-expires
155 #:cookie-http-only
156 #:cookie-in
157 #:cookie-max-age
158 #:cookie-name
159 #:cookie-out
160 #:cookie-path
161 #:cookie-secure
162 #:cookie-value
163 #:cookies-in
164 #:cookies-in*
165 #:cookies-out
166 #:cookies-out*
167 #:create-folder-dispatcher-and-handler
168 #:create-prefix-dispatcher
169 #:create-regex-dispatcher
170 #:create-request-handler-thread
171 #:create-static-file-dispatcher-and-handler
172 #:decrement-taskmaster-thread-count
173 #:default-document-directory
174 #:define-easy-handler
175 #:delete-aux-request-value
176 #:delete-session-value
177 #:dispatch-easy-handlers
178 #:easy-acceptor
179 #-:hunchentoot-no-ssl #:easy-ssl-acceptor
180 #:escape-for-html
181 #:execute-acceptor
182 #:get-parameter
183 #:get-parameters
184 #:get-parameters*
185 #:handle-incoming-connection
186 #:handle-if-modified-since
187 #:handle-request
188 #:handle-static-file
189 #:header-in
190 #:header-in*
191 #:header-out
192 #:headers-in
193 #:headers-in*
194 #:headers-out
195 #:headers-out*
196 #:host
197 #:http-token-p
198 #:hunchentoot-condition
199 #:hunchentoot-error
200 #:hunchentoot-warning
201 #:increment-taskmaster-thread-count
202 #:initialize-connection-stream
203 #:log-message*
204 #:maybe-invoke-debugger
205 #:mime-type
206 #:multi-threaded-taskmaster
207 #:next-session-id
208 #:no-cache
209 #:one-thread-per-connection-taskmaster
210 #:parameter
211 #:parameter-error
212 #:post-parameter
213 #:post-parameters
214 #:post-parameters*
215 #:process-connection
216 #:process-request
217 #:query-string
218 #:query-string*
219 #:raw-post-data
220 #:real-remote-addr
221 #:reason-phrase
222 #:recompute-request-parameters
223 #:redirect
224 #:referer
225 #:regenerate-session-cookie-value
226 #:remote-addr
227 #:remote-addr*
228 #:remote-port
229 #:remote-port*
230 #:local-addr
231 #:local-addr*
232 #:local-port
233 #:local-port*
234 #:remove-session
235 #:reply
236 #:reply-external-format
237 #:reply-external-format*
238 #:request
239 #:request-acceptor
240 #:request-method
241 #:request-method*
242 #:request-pathname
243 #:request-uri
244 #:request-uri*
245 #:require-authorization
246 #:reset-connection-stream
247 #:reset-sessions
248 #:reset-session-secret
249 #:return-code
250 #:return-code*
251 #:rfc-1123-date
252 #:script-name
253 #:script-name*
254 #:send-headers
255 #:server-protocol
256 #:server-protocol*
257 #:session
258 #:session-cookie-name
259 #:session-cookie-value
260 #:session-created
261 #:session-db
262 #:session-db-lock
263 #:session-gc
264 #:session-id
265 #:session-max-time
266 #:session-remote-addr
267 #:session-start
268 #:session-too-old-p
269 #:session-user-agent
270 #:session-value
271 #:session-verify
272 #:set-cookie
273 #:set-cookie*
274 #:shutdown
275 #:single-threaded-taskmaster
276 #-:hunchentoot-no-ssl #:ssl-acceptor
277 #:ssl-p
278 #:start
279 #:start-listening
280 #:start-session
281 #:start-thread
282 #:started-p
283 #:stop
284 #:taskmaster
285 #:taskmaster-acceptor
286 #:taskmaster-max-accept-count
287 #:taskmaster-max-thread-count
288 #:taskmaster-thread-count
289 #:too-many-taskmaster-requests
290 #:url-decode
291 #:url-encode
292 #:user-agent
293 #:within-request-p
294 #:detach-socket
295 #:bad-request))