Изучаю hunchentoot, пробую установить куки.
Следующий код:
(require :hunchentoot)
(defvar *http-server* nil)
(defun request-main-page (&optional (request nil))
(let ((left "<html> <body>main fucking page<br>")
(right "<FORM action=\"http://localhost:9000/\" method=\"post\">
<P>
<LABEL for=\"firstname\">First name: </LABEL>
<INPUT name=\"firstname\" type=\"text\" id=\"firstname\"><BR>
<LABEL for=\"lastname\">Last name: </LABEL>
<INPUT type=\"text\" id=\"lastname\"><BR>
<LABEL for=\"email\">email: </LABEL>
<INPUT type=\"text\" id=\"email\"><BR>
<INPUT type=\"radio\" name=\"sex\" value=\"Male\"> Male<BR>
<INPUT type=\"radio\" name=\"sex\" value=\"Female\"> Female<BR>
<INPUT type=\"submit\" value=\"Send\"> <INPUT type=\"reset\">
</P>
</FORM>
</body> </html>")
;(center (hunchentoot:post-parameter "firstname"))
(hunchentoot:set-cookie "fuck" :value "fuck2"))
(return-from request-main-page
(concatenate 'string left center right))))
(defun request-invalid-page (&optional (request nil))
"INVALID PAGE")
(defun set-dispatch-table ()
(setq hunchentoot:*dispatch-table*
(list (hunchentoot:create-regex-dispatcher "^/$" 'request-main-page)
(hunchentoot:create-regex-dispatcher "^/.*" 'request-invalid-page))))
(defun start-http-server (&optional (port 9000))
(setq *http-server*
(hunchentoot:start (make-instance 'hunchentoot:acceptor :port port))))
(defun quick-start ()
(set-dispatch-table)
(start-http-server))
Когда печатаю "http://localhost:9000/" вываливается с 500 internal error. Ошибка уходит, если убрать set-cookie в функции request-main-page или же убрать параметр ":value «somevalue» " из функции.
Я строго придерживаюсь определения функции (http://weitz.de/hunchentoot/#set-cookie):
set-cookie name &key value expires path domain secure http-only reply => cookie
В чем ошибка, подскажите пожалуйста.