Clear content-length before emitting 304
[hunchentoot.git] / packages.lisp
blob11dec917d14b528cdc94a3e56e5243263f55243d
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
7 ;;; are met:
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.
29 (in-package :cl-user)
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-no-content+
92 #:+http-non-authoritative-information+
93 #:+http-not-acceptable+
94 #:+http-not-found+
95 #:+http-not-implemented+
96 #:+http-not-modified+
97 #:+http-ok+
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+
107 #:+http-see-other+
108 #:+http-service-unavailable+
109 #:+http-switching-protocols+
110 #:+http-temporary-redirect+
111 #:+http-unsupported-media-type+
112 #:+http-use-proxy+
113 #:+http-version-not-supported+
114 #:abort-request-handler
115 #:accept-connections
116 #:acceptor
117 #:acceptor-access-log-destination
118 #:acceptor-address
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
126 #:acceptor-name
127 #:acceptor-output-chunking-p
128 #:acceptor-persistent-connections-p
129 #:acceptor-port
130 #:acceptor-read-timeout
131 #:acceptor-remove-session
132 #:acceptor-reply-class
133 #:acceptor-request-class
134 #:acceptor-ssl-p
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
142 #:authorization
143 #:aux-request-value
144 #:client-as-string
145 #:content-length
146 #:content-length*
147 #:content-type
148 #:content-type*
149 #:cookie-domain
150 #:cookie-expires
151 #:cookie-http-only
152 #:cookie-in
153 #:cookie-max-age
154 #:cookie-name
155 #:cookie-out
156 #:cookie-path
157 #:cookie-secure
158 #:cookie-value
159 #:cookies-in
160 #:cookies-in*
161 #:cookies-out
162 #:cookies-out*
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
174 #:easy-acceptor
175 #-:hunchentoot-no-ssl #:easy-ssl-acceptor
176 #:escape-for-html
177 #:execute-acceptor
178 #:get-parameter
179 #:get-parameters
180 #:get-parameters*
181 #:handle-incoming-connection
182 #:handle-if-modified-since
183 #:handle-request
184 #:handle-static-file
185 #:header-in
186 #:header-in*
187 #:header-out
188 #:headers-in
189 #:headers-in*
190 #:headers-out
191 #:headers-out*
192 #:host
193 #:http-token-p
194 #:hunchentoot-condition
195 #:hunchentoot-error
196 #:hunchentoot-warning
197 #:increment-taskmaster-thread-count
198 #:initialize-connection-stream
199 #:log-message*
200 #:maybe-invoke-debugger
201 #:mime-type
202 #:multi-threaded-taskmaster
203 #:next-session-id
204 #:no-cache
205 #:one-thread-per-connection-taskmaster
206 #:parameter
207 #:parameter-error
208 #:post-parameter
209 #:post-parameters
210 #:post-parameters*
211 #:process-connection
212 #:process-request
213 #:query-string
214 #:query-string*
215 #:raw-post-data
216 #:real-remote-addr
217 #:reason-phrase
218 #:recompute-request-parameters
219 #:redirect
220 #:referer
221 #:remote-addr
222 #:remote-addr*
223 #:remote-port
224 #:remote-port*
225 #:local-addr
226 #:local-addr*
227 #:local-port
228 #:local-port*
229 #:remove-session
230 #:reply
231 #:reply-external-format
232 #:reply-external-format*
233 #:request
234 #:request-acceptor
235 #:request-method
236 #:request-method*
237 #:request-pathname
238 #:request-uri
239 #:request-uri*
240 #:require-authorization
241 #:reset-connection-stream
242 #:reset-sessions
243 #:reset-session-secret
244 #:return-code
245 #:return-code*
246 #:rfc-1123-date
247 #:script-name
248 #:script-name*
249 #:send-headers
250 #:server-protocol
251 #:server-protocol*
252 #:session
253 #:session-cookie-name
254 #:session-cookie-value
255 #:session-created
256 #:session-db
257 #:session-db-lock
258 #:session-gc
259 #:session-id
260 #:session-max-time
261 #:session-remote-addr
262 #:session-start
263 #:session-too-old-p
264 #:session-user-agent
265 #:session-value
266 #:session-verify
267 #:set-cookie
268 #:set-cookie*
269 #:shutdown
270 #:single-threaded-taskmaster
271 #-:hunchentoot-no-ssl #:ssl-acceptor
272 #:ssl-p
273 #:start
274 #:start-listening
275 #:start-session
276 #:start-thread
277 #:started-p
278 #:stop
279 #:taskmaster
280 #:taskmaster-acceptor
281 #:taskmaster-max-accept-count
282 #:taskmaster-max-thread-count
283 #:taskmaster-thread-count
284 #:too-many-taskmaster-requests
285 #:url-decode
286 #:url-encode
287 #:user-agent
288 #:within-request-p
289 #:detach-socket
290 #:bad-request))