The toot Reference Manual

This is the toot Reference Manual, version 0.0.1, generated automatically by Declt version 4.0 beta 2 "William Riker" on Wed May 15 07:08:27 2024 GMT+0.

Table of Contents


1 Introduction


2 Systems

The main system appears first, followed by any subsystem dependency.


2.1 toot

A minimal web server originally built by stripping down Edi Weitz’s Hunchentoot

Version

0.0.1

Dependencies
  • alexandria (system).
  • chunga (system).
  • cl-base64 (system).
  • cl-fad (system).
  • cl-ppcre (system).
  • flexi-streams (system).
  • cl+ssl (system).
  • md5 (system).
  • trivial-backtrace (system).
  • usocket (system).
  • bordeaux-threads (system).
  • puri (system).
Source

toot.asd.

Child Components

3 Files

Files are sorted by type and then listed depth-first from the systems components trees.


3.1 Lisp


3.1.1 toot/toot.asd

Source

toot.asd.

Parent Component

toot (system).

ASDF Systems

toot.

Packages

toot-asd.

Internals

*toot-version* (special variable).


3.1.2 toot/packages.lisp

Source

toot.asd.

Parent Component

toot (system).

Packages

3.1.3 toot/rfc2388.lisp

Dependency

packages.lisp (file).

Source

toot.asd.

Parent Component

toot (system).

Internals

3.1.4 toot/specials.lisp

Dependency

rfc2388.lisp (file).

Source

toot.asd.

Parent Component

toot (system).

Public Interface
Internals

3.1.5 toot/conditions.lisp

Dependency

specials.lisp (file).

Source

toot.asd.

Parent Component

toot (system).

Internals

3.1.6 toot/mime-types.lisp

Dependency

conditions.lisp (file).

Source

toot.asd.

Parent Component

toot (system).

Internals

3.1.7 toot/util.lisp

Dependency

mime-types.lisp (file).

Source

toot.asd.

Parent Component

toot (system).

Public Interface
Internals

3.1.8 toot/cookie.lisp

Dependency

util.lisp (file).

Source

toot.asd.

Parent Component

toot (system).

Public Interface
Internals

3.1.9 toot/set-timeouts.lisp

Dependency

cookie.lisp (file).

Source

toot.asd.

Parent Component

toot (system).

Internals

set-timeouts (function).


3.1.10 toot/taskmaster.lisp

Dependency

set-timeouts.lisp (file).

Source

toot.asd.

Parent Component

toot (system).

Public Interface

initialize-instance (method).

Internals

3.1.11 toot/log.lisp

Dependency

taskmaster.lisp (file).

Source

toot.asd.

Parent Component

toot (system).

Public Interface
Internals

3.1.12 toot/http.lisp

Dependency

log.lisp (file).

Source

toot.asd.

Parent Component

toot (system).

Public Interface
Internals

3.1.13 toot/api.lisp

Dependency

http.lisp (file).

Source

toot.asd.

Parent Component

toot (system).

Public Interface
Internals

3.1.14 toot/tests.lisp

Dependency

api.lisp (file).

Source

toot.asd.

Parent Component

toot (system).

Public Interface

handle-request (method).

Internals

3.1.15 toot/documentation.lisp

Dependency

tests.lisp (file).

Source

toot.asd.

Parent Component

toot (system).


4 Packages

Packages are listed by definition order.


4.1 toot

A very simple web server.

Source

packages.lisp.

Use List
  • alexandria.
  • bordeaux-threads.
  • chunga.
  • cl-ppcre.
  • common-lisp.
  • flexi-streams.
  • puri.
Used By List

toot-tests.

Public Interface
Internals

4.2 toot-asd

Source

toot.asd.

Use List
  • asdf/interface.
  • common-lisp.
Internals

*toot-version* (special variable).


4.3 toot-tests

Sanity tests for Toot.

Source

packages.lisp.

Use List
  • common-lisp.
  • toot.
Internals

5 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


5.1 Public Interface


5.1.1 Constants

Constant: +http-accepted+

HTTP return code (202) for ’Accepted’.

Package

toot.

Source

specials.lisp.

Constant: +http-authorization-required+

HTTP return code (401) for ’Authorization Required’.

Package

toot.

Source

specials.lisp.

Constant: +http-bad-gateway+

HTTP return code (502) for ’Bad Gateway’.

Package

toot.

Source

specials.lisp.

Constant: +http-bad-request+

HTTP return code (400) for ’Bad Request’.

Package

toot.

Source

specials.lisp.

Constant: +http-conflict+

HTTP return code (409) for ’Conflict’.

Package

toot.

Source

specials.lisp.

Constant: +http-continue+

HTTP return code (100) for ’Continue’.

Package

toot.

Source

specials.lisp.

Constant: +http-created+

HTTP return code (201) for ’Created’.

Package

toot.

Source

specials.lisp.

Constant: +http-expectation-failed+

HTTP return code (417) for ’Expectation Failed’.

Package

toot.

Source

specials.lisp.

Constant: +http-failed-dependency+

HTTP return code (424) for ’Failed Dependency’.

Package

toot.

Source

specials.lisp.

Constant: +http-forbidden+

HTTP return code (403) for ’Forbidden’.

Package

toot.

Source

specials.lisp.

Constant: +http-gateway-time-out+

HTTP return code (504) for ’Gateway Time-out’.

Package

toot.

Source

specials.lisp.

Constant: +http-gone+

HTTP return code (410) for ’Gone’.

Package

toot.

Source

specials.lisp.

Constant: +http-internal-server-error+

HTTP return code (500) for ’Internal Server Error’.

Package

toot.

Source

specials.lisp.

Constant: +http-length-required+

HTTP return code (411) for ’Length Required’.

Package

toot.

Source

specials.lisp.

Constant: +http-method-not-allowed+

HTTP return code (405) for ’Method Not Allowed’.

Package

toot.

Source

specials.lisp.

Constant: +http-moved-permanently+

HTTP return code (301) for ’Moved Permanently’.

Package

toot.

Source

specials.lisp.

Constant: +http-moved-temporarily+

HTTP return code (302) for ’Moved Temporarily’.

Package

toot.

Source

specials.lisp.

Constant: +http-multi-status+

HTTP return code (207) for ’Multi-Status’.

Package

toot.

Source

specials.lisp.

Constant: +http-multiple-choices+

HTTP return code (300) for ’Multiple Choices’.

Package

toot.

Source

specials.lisp.

Constant: +http-no-content+

HTTP return code (204) for ’No Content’.

Package

toot.

Source

specials.lisp.

Constant: +http-non-authoritative-information+

HTTP return code (203) for ’Non-Authoritative Information’.

Package

toot.

Source

specials.lisp.

Constant: +http-not-acceptable+

HTTP return code (406) for ’Not Acceptable’.

Package

toot.

Source

specials.lisp.

Constant: +http-not-found+

HTTP return code (404) for ’Not Found’.

Package

toot.

Source

specials.lisp.

Constant: +http-not-implemented+

HTTP return code (501) for ’Not Implemented’.

Package

toot.

Source

specials.lisp.

Constant: +http-not-modified+

HTTP return code (304) for ’Not Modified’.

Package

toot.

Source

specials.lisp.

Constant: +http-ok+

HTTP return code (200) for ’OK’.

Package

toot.

Source

specials.lisp.

Constant: +http-partial-content+

HTTP return code (206) for ’Partial Content’.

Package

toot.

Source

specials.lisp.

Constant: +http-payment-required+

HTTP return code (402) for ’Payment Required’.

Package

toot.

Source

specials.lisp.

Constant: +http-precondition-failed+

HTTP return code (412) for ’Precondition Failed’.

Package

toot.

Source

specials.lisp.

Constant: +http-proxy-authentication-required+

HTTP return code (407) for ’Proxy Authentication Required’.

Package

toot.

Source

specials.lisp.

Constant: +http-request-entity-too-large+

HTTP return code (413) for ’Request Entity Too Large’.

Package

toot.

Source

specials.lisp.

Constant: +http-request-time-out+

HTTP return code (408) for ’Request Time-out’.

Package

toot.

Source

specials.lisp.

Constant: +http-request-uri-too-large+

HTTP return code (414) for ’Request-URI Too Large’.

Package

toot.

Source

specials.lisp.

Constant: +http-requested-range-not-satisfiable+

HTTP return code (416) for ’Requested range not satisfiable’.

Package

toot.

Source

specials.lisp.

Constant: +http-reset-content+

HTTP return code (205) for ’Reset Content’.

Package

toot.

Source

specials.lisp.

Constant: +http-see-other+

HTTP return code (303) for ’See Other’.

Package

toot.

Source

specials.lisp.

Constant: +http-service-unavailable+

HTTP return code (503) for ’Service Unavailable’.

Package

toot.

Source

specials.lisp.

Constant: +http-switching-protocols+

HTTP return code (101) for ’Switching Protocols’.

Package

toot.

Source

specials.lisp.

Constant: +http-temporary-redirect+

HTTP return code (307) for ’Temporary Redirect’.

Package

toot.

Source

specials.lisp.

Constant: +http-unsupported-media-type+

HTTP return code (415) for ’Unsupported Media Type’.

Package

toot.

Source

specials.lisp.

Constant: +http-use-proxy+

HTTP return code (305) for ’Use Proxy’.

Package

toot.

Source

specials.lisp.

Constant: +http-version-not-supported+

HTTP return code (505) for ’Version not supported’.

Package

toot.

Source

specials.lisp.


5.1.2 Special variables

Special Variable: *debug-errors-p*

When true, Toot drops into the debugger on unhandled errors. Otherwise unhandled errors signaled while processing requests are logged and a 500 error returned to the client.

Package

toot.

Source

specials.lisp.

Special Variable: *default-connection-timeout*

The default connection timeout used when an acceptor is reading from and writing to a socket stream.

Package

toot.

Source

specials.lisp.

Special Variable: *default-content-type*

The default content-type header which is returned to the client. If this is text content type, the character set used for encoding the response will automatically be added to the content type in a “charset” attribute.

Package

toot.

Source

specials.lisp.

Special Variable: *default-external-format*

The external format used to compute the REQUEST object.

Package

toot.

Source

specials.lisp.

Special Variable: *header-stream*

If this variable is not NIL, it should be bound to a stream to which incoming and outgoing headers will be written for debugging purposes.

Package

toot.

Source

specials.lisp.

Special Variable: *lisp-errors-log-level*

Log level for Lisp errors. Should be one of :ERROR (the default), :WARNING, or :INFO.

Package

toot.

Source

specials.lisp.

Special Variable: *lisp-warnings-log-level*

Log level for Lisp warnings. Should be one of :ERROR, :WARNING (the default), or :INFO.

Package

toot.

Source

specials.lisp.

Special Variable: *log-lisp-backtraces-p*

Whether Lisp backtraces should be logged. Only has an effect if *LOG-LISP-ERRORS-P* is true as well.

Package

toot.

Source

specials.lisp.

Special Variable: *log-lisp-errors-p*

Whether Lisp errors in request handlers should be logged.

Package

toot.

Source

specials.lisp.

Special Variable: *log-lisp-warnings-p*

Whether Lisp warnings in request handlers should be logged.

Package

toot.

Source

specials.lisp.

Special Variable: *show-lisp-backtraces-p*

Whether Lisp errors shown in HTML output should contain backtrace information.

Package

toot.

Source

specials.lisp.

Special Variable: *show-lisp-errors-p*

Whether Lisp errors in request handlers should be shown in HTML output.

Package

toot.

Source

specials.lisp.

Special Variable: *tmp-directory*

Directory for temporary files created by MAKE-TMP-FILE-NAME.

Package

toot.

Source

specials.lisp.


5.1.3 Macros

Macro: with-response-body ((stream request &rest headers &key &allow-other-keys) &body body)

Send the response headers (any already set plus any more set via keyword arguments to this macro) and bind the stream to which the response body can be written to STREAM.

Package

toot.

Source

api.lisp.


5.1.4 Ordinary functions

Function: abort-request-handler (response-status-code &optional body)

Abort the handling of a request, sending instead a response with the given response-status-code and either the given body or a default body based on the error code. A request can only be aborted if SEND-HEADERS has not been called. (SEND-HEADERS is called by WITH-RESPONSE-BODY). If a handler neither generates a response nor aborts, then a 404: Not Found response will be sent.

Package

toot.

Source

api.lisp.

Function: add-index (filename &key name extension)

Add an index file name to a directory filename. Defaults to index.html

Package

toot.

Source

api.lisp.

Function: authorization (request)

Returns as two values the user and password (if any) as encoded in the ’AUTHORIZATION’ header. Returns NIL if there is no such header.

Package

toot.

Source

api.lisp.

Get the value of the cookie with the given name sent by the client or NIL if no such cookie was sent.

Package

toot.

Source

api.lisp.

Function: escape-for-html (string)

Escapes the characters #\<, #\>, #\’, #\", and #\& for HTML output.

Package

toot.

Source

util.lisp.

Function: get-parameter (name request)

Returns the GET parameter with name NAME (a string) - or NIL if there is none. Search is case-sensitive.

Package

toot.

Source

api.lisp.

Function: handle-if-modified-since (time request)

Handles the If-Modified-Since header of REQUEST, sending an ’304: Not modified’ response if the time represented by the UTC TIME is the same as the value in the If-Modified-Since header. Also sets the Last Modified header in the response to TIME.

Package

toot.

Source

api.lisp.

Function: handle-range (request bytes-available)

If the request contains a Range header returns the starting position and the number of bytes to transfer. Otherwise returns 0 and bytes-available. An invalid specified range is reported to the client immediately with a ’416: Requested range not satisfiable’ response.

Package

toot.

Source

api.lisp.

Function: no-cache (request)

Adds appropriate response headers to completely prevent caching on most browsers.

Package

toot.

Source

api.lisp.

Function: parameter (name request)

Returns the GET or the POST parameter with name NAME (a string) - or NIL if there is none. If both a GET and a POST parameter with the same name exist the GET parameter is returned. Search is case-sensitive.

Package

toot.

Source

api.lisp.

Function: post-parameter (name request)

Returns the POST parameter with name NAME (a string) - or NIL if there is none. Search is case-sensitive.

Package

toot.

Source

api.lisp.

Function: real-remote-addr (request)

Returns the ’X-Forwarded-For’ incoming http header as the second value in the form of a list of IP addresses and the first element of this list as the first value if this header exists. Otherwise returns the value of REMOTE-ADDR as the only value.

Package

toot.

Source

api.lisp.

Function: reason-phrase (status-code)

Returns a reason phrase for the HTTP return code STATUS-CODE (which should be an integer) or NIL for return codes Toot doesn’t know.

Package

toot.

Source

http.lisp.

Function: redirect (request target &key code protocol host port)

Redirects the browser to TARGET with status code CODE. Target must be a string and CODE should be one of the 3xx status codes. If TARGET is a full URL starting with a scheme, HOST, PORT and PROTOCOL are ignored. Otherwise, TARGET should denote the path part of a URL and the protocol, host, and port can be specified via keyword args. Any values not specified will be taken from the current request. (Note, however, that if no port was specified in the Host: header of the request, the redirect will likewise have no explicit port; if the protocol was changed this will result in a redirect to the default port for the new protocol. CODE must be a 3xx redirection code and will be sent as status code.

Package

toot.

Source

api.lisp.

Function: request-authority (request)

Get the authority part of the request’s URI.

Package

toot.

Source

api.lisp.

Function: request-header (name request)

Returns the incoming header with name NAME. NAME can be a keyword (recommended) or a string.

Package

toot.

Source

api.lisp.

Function: request-host (request)

Get the host part of the request’s URI.

Package

toot.

Source

api.lisp.

Function: request-path (request)

Get the path part of the request’s URI.

Package

toot.

Source

api.lisp.

Function: request-port (request)

Get the port part of the request’s URI.

Package

toot.

Source

api.lisp.

Function: request-query (request)

Get the query part of the request’s URI.

Package

toot.

Source

api.lisp.

Function: request-scheme (request)

Get the scheme part of the request’s URI.

Package

toot.

Source

api.lisp.

Function: require-authorization (request &optional realm)

Sends 401: Authorization required reply to require basic HTTP authentication (see RFC 2617) for the realm REALM.

Package

toot.

Source

api.lisp.

Function: response-header (name request)

Returns the current value of the outgoing http header named NAME. NAME should be a keyword or a string.

Package

toot.

Source

api.lisp.

Function: (setf response-header) (name request)

Changes the current value of the outgoing http header named NAME (a keyword or a string). If a header with this name doesn’t exist, it is created.

Package

toot.

Source

api.lisp.

Function: response-sent-p (request)

Has a response been sent.

Package

toot.

Source

api.lisp.

Function: safe-pathname-p (path)

Verify that a path, translated to a file doesn’t contain any tricky bits such as ’..’

Package

toot.

Source

api.lisp.

Function: send-headers (request &key content-type charset status-code)

Send the headers and return a stream to which the body of the reply can be written. If the content-type is text/* type, the stream returned will be a character stream that will encode the response properly for the charset specified. If the request was a HEAD request we dynamically abort rather than returning a stream.

Package

toot.

Source

api.lisp.

Function: serve-file (request pathname &optional content-type charset)

Serve the file denoted by PATHNAME. Sends a content type header corresponding to CONTENT-TYPE or (if that is NIL) tries to determine the content type via the file’s suffix. Aborts the request with 404: Not found if the file does not exist. Also handles if-modified-since and range requests appropriately.

Package

toot.

Source

api.lisp.

Function: set-cookie (name request &key value expires path domain secure http-only)

Set a cookie to be sent with the reply.

Package

toot.

Source

api.lisp.

Function: start-acceptor (acceptor)

Start an existing acceptor listening for connections.

Package

toot.

Source

api.lisp.

Function: start-server (&rest args &key handler port &allow-other-keys)

Instantiate an acceptor and start it listening.

Package

toot.

Source

api.lisp.

Function: stop-acceptor (acceptor &key soft)

Stop an acceptor from listening for connections. It can be restarted with START-ACCEPTOR.

Package

toot.

Source

api.lisp.

Function: url-decode (string &optional external-format)

Decodes a URL-encoded STRING which is assumed to be encoded using the external format EXTERNAL-FORMAT.

Package

toot.

Source

util.lisp.

Function: url-encode (string &optional external-format)

URL-encodes a string using the external format EXTERNAL-FORMAT.

Package

toot.

Source

util.lisp.


5.1.5 Generic functions

Generic Reader: acceptor (object)

acceptor that accepted this request.

Package

toot.

Methods
Reader Method: acceptor ((request request))

automatically generated reader method

Source

http.lisp.

Target Slot

acceptor.

Generic Reader: access-logger (object)

logger object that can log HTTP accesses.

Package

toot.

Methods
Reader Method: access-logger ((acceptor acceptor))

automatically generated reader method

Source

http.lisp.

Target Slot

access-loggger.

Generic Writer: (setf access-logger) (object)
Package

toot.

Methods
Writer Method: (setf access-logger) ((acceptor acceptor))

automatically generated writer method

Source

http.lisp.

Target Slot

access-loggger.

Generic Reader: address (object)

IP address to which the acceptor binds.

Package

toot.

Methods
Reader Method: address ((acceptor acceptor))

automatically generated reader method

Source

http.lisp.

Target Slot

address.

Generic Function: body-octets (object)

body of the request as octets.

Package

toot.

Methods
Reader Method: body-octets :before ((request request))
Source

http.lisp.

Target Slot

body-octets.

Method: body-octets ((request request))

automatically generated reader method

Source

http.lisp.

Generic Function: body-stream (object)

body of the request as a stream.

Package

toot.

Methods
Reader Method: body-stream :before ((request request))
Source

http.lisp.

Target Slot

body-stream.

Method: body-stream ((request request))

automatically generated reader method

Source

http.lisp.

Generic Reader: content-length (object)

length of the response about to be written.

Package

toot.

Methods
Reader Method: content-length ((request request))

automatically generated reader method

Source

http.lisp.

Target Slot

content-length.

Generic Writer: (setf content-length) (object)
Package

toot.

Methods
Writer Method: (setf content-length) ((request request))

automatically generated writer method

Source

http.lisp.

Target Slot

content-length.

Generic Reader: content-type (object)

the MIME type of the response about to be written.

Package

toot.

Methods
Reader Method: content-type ((request request))

automatically generated reader method

Source

http.lisp.

Target Slot

content-type.

Generic Writer: (setf content-type) (object)
Package

toot.

Methods
Writer Method: (setf content-type) ((request request))

automatically generated writer method

Source

http.lisp.

Target Slot

content-type.

Generic Reader: cookies-in (object)

cookies sent by the client as an alist.

Package

toot.

Methods
Reader Method: cookies-in ((request request))

automatically generated reader method

Source

http.lisp.

Target Slot

cookies-in.

Generic Reader: error-generator (object)

object responsible for generating error pages.

Package

toot.

Methods
Reader Method: error-generator ((acceptor acceptor))

automatically generated reader method

Source

http.lisp.

Target Slot

error-generator.

Generic Writer: (setf error-generator) (object)
Package

toot.

Methods
Writer Method: (setf error-generator) ((acceptor acceptor))

automatically generated writer method

Source

http.lisp.

Target Slot

error-generator.

Generic Function: generate-error-page (generator request &key error backtrace)

Used by acceptor to generate an error page for a request based on the http status code.

Package

toot.

Source

http.lisp.

Methods
Method: generate-error-page ((generator symbol) request &key error backtrace)
Method: generate-error-page ((generator function) request &key error backtrace)
Generic Reader: get-parameters (object)

parameters sent in the query string.

Package

toot.

Methods
Reader Method: get-parameters ((request request))

automatically generated reader method

Source

http.lisp.

Target Slot

get-parameters.

Generic Function: handle-request (handler request)

Used by the acceptor to handle a request. Returns
true if the handler actually sends a response. (This is arranged by a default :around method. If for some reason a more-specific :around method is defined, it must return the same value.

Package

toot.

Source

http.lisp.

Methods
Method: handle-request ((handler search-handler) request)
Source

tests.lisp.

Method: handle-request ((handler static-file-handler) request)
Source

api.lisp.

Method: handle-request ((handler symbol) request)
Method: handle-request ((handler function) request)
Method: handle-request :around (handler request)
Generic Reader: handler (object)

object responsible for generating a response to each request.

Package

toot.

Methods
Reader Method: handler ((acceptor acceptor))

automatically generated reader method

Source

http.lisp.

Target Slot

handler.

Generic Writer: (setf handler) (object)
Package

toot.

Methods
Writer Method: (setf handler) ((acceptor acceptor))

automatically generated writer method

Source

http.lisp.

Target Slot

handler.

Generic Reader: message-logger (object)

object that logs miscelaneous messages to the Toot message log.

Package

toot.

Methods
Reader Method: message-logger ((acceptor acceptor))

automatically generated reader method

Source

http.lisp.

Target Slot

message-logger.

Generic Writer: (setf message-logger) (object)
Package

toot.

Methods
Writer Method: (setf message-logger) ((acceptor acceptor))

automatically generated writer method

Source

http.lisp.

Target Slot

message-logger.

Generic Reader: name (object)

name of the server, used in to set the Server response header.

Package

toot.

Methods
Reader Method: name ((acceptor acceptor))

automatically generated reader method

Source

http.lisp.

Target Slot

name.

Reader Method: name ((cookie cookie))

automatically generated reader method

Source

cookie.lisp.

Target Slot

name.

Generic Reader: persistent-connections-p (object)

flag controlling whether acceptor will allow persistent connections.

Package

toot.

Methods
Reader Method: persistent-connections-p ((acceptor acceptor))

automatically generated reader method

Source

http.lisp.

Target Slot

persistent-connections-p.

Generic Writer: (setf persistent-connections-p) (object)
Package

toot.

Methods
Writer Method: (setf persistent-connections-p) ((acceptor acceptor))

automatically generated writer method

Source

http.lisp.

Target Slot

persistent-connections-p.

Generic Reader: port (object)

port the acceptor will listen on.

Package

toot.

Methods
Reader Method: port ((acceptor acceptor))

automatically generated reader method

Source

http.lisp.

Target Slot

port.

Generic Function: post-parameters (object)
Package

toot.

Methods
Reader Method: post-parameters :before ((request request))

Lazily fill in the post-parameters slot with data from the request body.

Source

http.lisp.

Target Slot

post-parameters.

Method: post-parameters ((request request))

automatically generated reader method

Source

http.lisp.

Generic Reader: read-timeout (object)

timeout for reading from the client.

Package

toot.

Methods
Reader Method: read-timeout ((acceptor acceptor))

automatically generated reader method

Source

http.lisp.

Target Slot

read-timeout.

Generic Reader: remote-addr (object)

IP address of the client side of the socket making the request.

Package

toot.

Methods
Reader Method: remote-addr ((request request))

automatically generated reader method

Source

http.lisp.

Target Slot

remote-addr.

Generic Reader: remote-port (object)

port of the client side of the socket making the request.

Package

toot.

Methods
Reader Method: remote-port ((request request))

automatically generated reader method

Source

http.lisp.

Target Slot

remote-port.

Generic Reader: request-headers (object)

complete set of headers sent in the request as an alist.

Package

toot.

Methods
Reader Method: request-headers ((request request))

automatically generated reader method

Source

http.lisp.

Target Slot

request-headers.

Generic Reader: request-method (object)

HTTP method (e.g. GET, POST, HEAD) of the request.

Package

toot.

Methods
Reader Method: request-method ((request request))

automatically generated reader method

Source

http.lisp.

Target Slot

request-method.

Generic Reader: request-uri (object)

URI of the request as a puri:uri object.

Package

toot.

Methods
Reader Method: request-uri ((request request))

automatically generated reader method

Source

http.lisp.

Target Slot

request-uri.

Generic Reader: server-protocol (object)

server protocol of the request as a keyword.

Package

toot.

Methods
Reader Method: server-protocol ((request request))

automatically generated reader method

Source

http.lisp.

Target Slot

server-protocol.

Generic Reader: status-code (object)

HTTP status code of the response being generated.

Package

toot.

Methods
Reader Method: status-code ((request request))

automatically generated reader method

Source

http.lisp.

Target Slot

status-code.

Generic Writer: (setf status-code) (object)
Package

toot.

Methods
Writer Method: (setf status-code) ((request request))

automatically generated writer method

Source

http.lisp.

Target Slot

status-code.

Generic Reader: taskmaster (object)

object responsible for running the acceptor.

Package

toot.

Methods
Reader Method: taskmaster ((acceptor acceptor))

automatically generated reader method

Source

http.lisp.

Target Slot

taskmaster.

Generic Reader: write-timeout (object)

timeout for writing to the client.

Package

toot.

Methods
Reader Method: write-timeout ((acceptor acceptor))

automatically generated reader method

Source

http.lisp.

Target Slot

write-timeout.


5.1.6 Standalone methods

Method: initialize-instance :after ((h static-file-handler) &key &allow-other-keys)
Source

api.lisp.

Method: initialize-instance :after ((acceptor acceptor) &key &allow-other-keys)
Source

http.lisp.

Method: initialize-instance :after ((taskmaster thread-per-connection-taskmaster) &rest init-args)

Ensure the if MAX-ACCEPT-COUNT is supplied, that it is greater than MAX-THREAD-COUNT.

Source

taskmaster.lisp.

Method: initialize-instance :after ((request request) &key &allow-other-keys)
Source

http.lisp.

Method: initialize-instance :around ((cookie cookie) &key name &allow-other-keys)

Ensure COOKIE has a correct slot-value for NAME.

Source

cookie.lisp.

Reader Method: lock ((stream-logger stream-logger))

automatically generated reader method

Package

bordeaux-threads.

Source

log.lisp.

Target Slot

lock.

Method: print-object ((acceptor acceptor) stream)
Source

http.lisp.


5.1.7 Classes

Class: acceptor

The object that listens on a socket for connections.

Package

toot.

Source

http.lisp.

Direct methods
Direct Default Initargs
InitargValue
:addressnil
:portnil
:name(format nil toot ~a *toot-version*)
:listen-backlog50
:taskmaster(make-instance (if *supports-threads-p* (quote thread-per-connection-taskmaster) (quote single-threaded-taskmaster)))
:persistent-connections-pt
:read-timeout*default-connection-timeout*
:write-timeout*default-connection-timeout*
:error-generator(quote default-error-message-generator)
Direct slots
Slot: port
Initargs

:port

Readers

port.

Writers

This slot is read-only.

Slot: address
Initargs

:address

Readers

address.

Writers

This slot is read-only.

Slot: name
Initargs

:name

Readers

name.

Writers

This slot is read-only.

Slot: persistent-connections-p
Initargs

:persistent-connections-p

Readers

persistent-connections-p.

Writers

(setf persistent-connections-p).

Slot: read-timeout
Initargs

:read-timeout

Readers

read-timeout.

Writers

This slot is read-only.

Slot: write-timeout
Initargs

:write-timeout

Readers

write-timeout.

Writers

This slot is read-only.

Slot: listen-backlog
Initargs

:listen-backlog

Readers

listen-backlog.

Writers

This slot is read-only.

Slot: ssl-certificate-file
Initargs

:ssl-certificate-file

Readers

ssl-certificate-file.

Writers

This slot is read-only.

Slot: ssl-private-key-file
Initargs

:ssl-private-key-file

Readers

ssl-private-key-file.

Writers

This slot is read-only.

Slot: ssl-private-key-password
Initargs

:ssl-private-key-password

Readers

ssl-private-key-password.

Writers

This slot is read-only.

Slot: handler
Initargs

:handler

Readers

handler.

Writers

(setf handler).

Slot: error-generator
Initargs

:error-generator

Readers

error-generator.

Writers

(setf error-generator).

Slot: taskmaster
Initargs

:taskmaster

Readers

taskmaster.

Writers

This slot is read-only.

Slot: access-loggger
Initform

(make-instance (quote toot:stream-logger) :destination *error-output*)

Initargs

:access-logger

Readers

access-logger.

Writers

(setf access-logger).

Slot: message-logger
Initform

(make-instance (quote toot:stream-logger) :destination *error-output*)

Initargs

:message-logger

Readers

message-logger.

Writers

(setf message-logger).

Slot: listen-socket
Readers

listen-socket.

Writers

(setf listen-socket).

Slot: shutdown-p
Initform

t

Readers

shutdown-p.

Writers

(setf shutdown-p).

Slot: requests-in-progress
Initform

0

Readers

requests-in-progress.

Writers

(setf requests-in-progress).

Slot: shutdown-queue
Initform

(bordeaux-threads:make-condition-variable)

Readers

shutdown-queue.

Writers

(setf shutdown-queue).

Slot: shutdown-lock
Initform

(bordeaux-threads:make-lock "toot-shutdown")

Readers

shutdown-lock.

Writers

(setf shutdown-lock).

Class: static-file-handler

A handler that serves files found under a given
root directory. Checks the path before serving the file with specified path-checker which should be a function that takes the path and returns true if it is safe. If the path checker returns false, the request is aborted with 403: Forbidden.

Package

toot.

Source

api.lisp.

Direct methods
Direct slots
Slot: root
Initargs

:root

Readers

root.

Writers

(setf root).

Slot: path-checker
Initform

(function toot:safe-pathname-p)

Initargs

:path-checker

Readers

path-checker.

Writers

(setf path-checker).

Class: stream-logger

A logger that writes to a given stream.

Package

toot.

Source

log.lisp.

Direct methods
Direct slots
Slot: destination
Initargs

:destination

Readers

destination.

Writers

This slot is read-only.

Slot: lock
Package

bordeaux-threads.

Initform

(bordeaux-threads:make-lock "log-lock")

Readers

lock.

Writers

This slot is read-only.


5.2 Internals


5.2.1 Constants

Constant: +buffer-length+

Length of buffers used for internal purposes.

Package

toot.

Source

specials.lisp.

Constant: +crlf+

A 2-element array consisting of the character codes for a CRLF sequence.

Package

toot.

Source

specials.lisp.

Constant: +day-names+

The three-character names of the seven days of the week - needed for cookie date format.

Package

toot.

Source

specials.lisp.

A link to the website of the underlying Lisp implementation.

Package

toot.

Source

specials.lisp.

Constant: +latin-1+

A FLEXI-STREAMS external format used for ‘faithful’ input and output of binary data.

Package

toot.

Source

specials.lisp.

Constant: +month-names+

The three-character names of the twelve months - needed for cookie date format.

Package

toot.

Source

specials.lisp.

Constant: +new-connection-wait-time+

Time in seconds to wait for a new connection to arrive before performing a cleanup run.

Package

toot.

Source

specials.lisp.

Constant: +toot-project-url+
Package

toot.

Source

specials.lisp.

Constant: +utf-8+

A FLEXI-STREAMS external format used internally for logging and to encode cookie values.

Package

toot.

Source

specials.lisp.


5.2.2 Special variables

Special Variable: *default-charset*

The default charset for text/* content-types.

Package

toot.

Source

specials.lisp.

Special Variable: *default-logger*
Package

toot.

Source

log.lisp.

Special Variable: *default-max-accept-count*
Package

toot.

Source

taskmaster.lisp.

Special Variable: *default-max-thread-count*
Package

toot.

Source

taskmaster.lisp.

Special Variable: *error-css*
Package

toot.

Source

http.lisp.

Special Variable: *http-reason-phrase-map*

Used to map numerical return codes to reason phrases.

Package

toot.

Source

specials.lisp.

Special Variable: *hyperdoc-base-uri*
Package

toot.

Source

specials.lisp.

Special Variable: *mime-type-hash*

A hash table which maps file suffixes to MIME types.

Package

toot.

Source

mime-types.lisp.

Special Variable: *mime-type-list*

An alist where the cars are MIME types and the cdrs are lists of file suffixes for the corresponding type.

Package

toot.

Source

mime-types.lisp.

Special Variable: *test-acceptor*
Package

toot-tests.

Source

tests.lisp.

Special Variable: *tmp-counter*

Counter used in creating tmp filenames.

Package

toot.

Source

specials.lisp.

Special Variable: *tmp-counter-lock*

Lock to protect access to *tmp-counter*.

Package

toot.

Source

specials.lisp.

Special Variable: *toot-version*

A string denoting the current version of Toot. Used for diagnostic output.

Package

toot-asd.

Source

toot.asd.


5.2.3 Macros

Macro: def-http-status-code (name value reason-phrase)

Shortcut to define constants for return codes. NAME is a Lisp symbol, VALUE is the numerical value of the return code, and REASON-PHRASE is the phrase (a string) to be shown in the server’s status line.

Package

toot.

Source

specials.lisp.

Macro: defconstant (name value &optional doc)

Make sure VALUE is evaluated only once (to appease SBCL).

Package

toot.

Source

specials.lisp.

Macro: handler-case* (expression &rest clauses)

Like HANDLER-CASE, but observes *CATCH-ERRORS-P*.

Package

toot.

Source

conditions.lisp.

Macro: ignore-errors* (&body body)

Like IGNORE-ERRORS, but observes *CATCH-ERRORS-P*.

Package

toot.

Source

conditions.lisp.

Macro: upgrade-vector (vector new-type &key converter)

Returns a vector with the same length and the same elements as VECTOR (a variable holding a vector) but having element type NEW-TYPE. If CONVERTER is not NIL, it should designate a function which will be applied to each element of VECTOR before the result is stored in the new vector. The resulting vector will have a fill pointer set to its end.

The macro also uses SETF to store the new vector in VECTOR.

Package

toot.

Source

util.lisp.

Macro: with-debugger (&body body)

Executes BODY and invokes the debugger if an error is signaled and *CATCH-ERRORS-P* is NIL.

Package

toot.

Source

conditions.lisp.


5.2.4 Ordinary functions

Function: accept-connections (acceptor)

Accept connections on our listen socket and hand them back to the taskmaster via handle-incoming-connection. Called by taskmaster’s execute-acceptor.

Package

toot.

Source

http.lisp.

Function: add-handler (search-handler sub-handler)
Package

toot-tests.

Source

tests.lisp.

Function: charset-to-external-format (charset)
Package

toot.

Source

http.lisp.

Function: chunking-input-p (request)

Whether input chunking is currently switched on for the acceptor’s content stream.

Package

toot.

Source

http.lisp.

Function: connection-handler-thread-name (taskmaster socket)
Package

toot.

Source

taskmaster.lisp.

Function: connection-values (request)
Package

toot.

Source

http.lisp.

Function: content-type-sub (structure)
Package

toot.

Source

rfc2388.lisp.

Function: (setf content-type-sub) (structure)
Package

toot.

Source

rfc2388.lisp.

Function: content-type-super (structure)
Package

toot.

Source

rfc2388.lisp.

Function: (setf content-type-super) (structure)
Package

toot.

Source

rfc2388.lisp.

Function: convert-hack (string external-format)

The rfc2388 code is buggy in that it operates on a character stream and thus only accepts encodings which are 8 bit transparent. In order to support different encodings for parameter values submitted, we post process whatever string values the rfc2388 package has returned.

Package

toot.

Source

http.lisp.

Returns the current value of the outgoing cookie named NAME. Search is case-sensitive.

Package

toot.

Source

api.lisp.

Function: copy-content-type (sequence)

Return a copy of SEQUENCE which is EQUAL to SEQUENCE but not EQ.

Package

toot.

Alias for

copy-seq.

Function: copy-header (sequence)

Return a copy of SEQUENCE which is EQUAL to SEQUENCE but not EQ.

Package

toot.

Alias for

copy-seq.

Function: copy-mime-part (sequence)

Return a copy of SEQUENCE which is EQUAL to SEQUENCE but not EQ.

Package

toot.

Alias for

copy-seq.

Function: create-connection-handler-thread (taskmaster acceptor socket)

Create a thread for handling a single request

Package

toot.

Source

taskmaster.lisp.

Function: decrement-taskmaster-request-count (taskmaster)
Package

toot.

Source

taskmaster.lisp.

Function: default-error-message-generator (request error backtrace)

A function that generates a bare-bones error page to be used as an error page generator.

Package

toot.

Source

http.lisp.

Function: delete-tmp-files (request)
Package

toot.

Source

http.lisp.

Function: drain-body-stream (request)
Package

toot.

Source

http.lisp.

Function: enough-url (url url-prefix)

Returns the relative portion of URL relative to URL-PREFIX, similar to what ENOUGH-NAMESTRING does for pathnames.

Package

toot-tests.

Source

tests.lisp.

Function: error-body (request &key error backtrace)
Package

toot.

Source

http.lisp.

Function: external-format-from-content-type (content-type)

Creates and returns an external format corresponding to the value of the content type header provided in CONTENT-TYPE. If the content type was not set or if the character set specified was invalid, NIL is returned.

Package

toot.

Source

http.lisp.

Function: finalize-response-headers (request)

Set certain headers automatically based on values in the request object.

Package

toot.

Source

http.lisp.

Function: find-content-disposition-header (headers)
Package

toot.

Source

rfc2388.lisp.

Function: find-header (label headers)

Find header by label from set of headers.

Package

toot.

Source

rfc2388.lisp.

Function: find-parameter (name params)

Find header parameter by name from set of parameters.

Package

toot.

Source

rfc2388.lisp.

Function: finish-response-body (request)
Package

toot.

Source

http.lisp.

Function: form-test-get-params (request)
Package

toot-tests.

Source

tests.lisp.

Function: form-test-octets (request)
Package

toot-tests.

Source

tests.lisp.

Function: form-test-params (request)
Package

toot-tests.

Source

tests.lisp.

Function: form-test-stream (request)
Package

toot-tests.

Source

tests.lisp.

Function: form-url-encoded-list-to-alist (form-url-encoded-list &optional external-format)

Converts a list FORM-URL-ENCODED-LIST of name/value pairs into an alist. Both names and values are url-decoded while doing this.

Package

toot.

Source

util.lisp.

Function: full-content-type (request)

Return the value for the Content-Type header, including a charset if it’s a text/* type.

Package

toot.

Source

http.lisp.

Function: get-backtrace ()

Returns a string with a backtrace of what the Lisp system thinks is the "current" error.

Package

toot.

Source

conditions.lisp.

Function: get-file-name (headers)
Package

toot.

Source

rfc2388.lisp.

Function: get-peer-address-and-port (socket)

Returns the peer address and port of the socket SOCKET as two values. The address is returned as a string in dotted IP address notation.

Package

toot.

Source

http.lisp.

Function: guess-mime-type (extension)
Package

toot.

Source

mime-types.lisp.

Function: header-name (structure)
Package

toot.

Source

rfc2388.lisp.

Function: (setf header-name) (structure)
Package

toot.

Source

rfc2388.lisp.

Function: header-parameters (structure)
Package

toot.

Source

rfc2388.lisp.

Function: (setf header-parameters) (structure)
Package

toot.

Source

rfc2388.lisp.

Function: header-value (structure)
Package

toot.

Source

rfc2388.lisp.

Function: (setf header-value) (structure)
Package

toot.

Source

rfc2388.lisp.

Function: http-token-p (token)

Tests whether TOKEN is a string which is a valid ’token’ according to HTTP/1.1 (RFC 2068).

Package

toot.

Source

cookie.lisp.

Function: hyperdoc-lookup (symbol type)
Package

toot.

Source

specials.lisp.

Function: increment-taskmaster-request-count (taskmaster)
Package

toot.

Source

taskmaster.lisp.

Function: internal-error (format-control &rest format-arguments)

Signals an error of type TOOT-SIMPLE-ERROR with the provided format control and arguments.

Package

toot.

Source

conditions.lisp.

Function: iso-time (&optional time)

Returns the universal time TIME as a string in full ISO format.

Package

toot.

Source

util.lisp.

Function: keep-alive-p (request)

Should the current connection be kept alive? Secondary value indicates whether the client explicitly requested keep-alive. (Always the same as the primary value for HTTP/1.0 but potentially different in HTTP/1.1.)

Package

toot.

Source

http.lisp.

Function: length-known-p (request)
Package

toot.

Source

http.lisp.

Function: listen-thread-name (acceptor)
Package

toot.

Source

taskmaster.lisp.

Function: lwsp-char-p (char)

Returns true if CHAR is a linear-whitespace-char (LWSP-char). Either space or tab, in short.

Package

toot.

Source

rfc2388.lisp.

Function: make-content-type (super sub)
Package

toot.

Source

rfc2388.lisp.

Function: make-exact-path-handler (path sub-handler)

Make a handler that handles the request with SUB-HANDLER if the file name of the request is exactly the given PATH.

Package

toot-tests.

Source

tests.lisp.

Function: make-header (name value parameters)
Package

toot.

Source

rfc2388.lisp.

Function: make-header-stream (stream)

Make a stream just for writing the HTTP headers.

Package

toot.

Source

http.lisp.

Function: make-mime-part (contents headers)
Package

toot.

Source

rfc2388.lisp.

Function: make-search-handler (&rest sub-handlers)
Package

toot-tests.

Source

tests.lisp.

Function: make-socket-stream (socket acceptor)
Package

toot.

Source

http.lisp.

Function: maybe-log-error (request error backtrace)
Package

toot.

Source

http.lisp.

Function: maybe-log-warning (request warning)
Package

toot.

Source

http.lisp.

Function: mime-content-type (part &key as-string)

Returns the Content-Type header of mime-part PART.

Package

toot.

Source

rfc2388.lisp.

Function: mime-part-contents (structure)
Package

toot.

Source

rfc2388.lisp.

Function: (setf mime-part-contents) (structure)
Package

toot.

Source

rfc2388.lisp.

Function: mime-part-headers (structure)
Package

toot.

Source

rfc2388.lisp.

Function: (setf mime-part-headers) (structure)
Package

toot.

Source

rfc2388.lisp.

Function: not-implemented (name)

Used to signal an error if an operation named NAME is not implemented.

Package

toot.

Source

conditions.lisp.

Function: notify-free-connection (taskmaster)
Package

toot.

Source

taskmaster.lisp.

Function: parameter-error (format-control &rest format-arguments)

Signals an error of type PARAMETER-ERROR with the provided format control and arguments.

Package

toot.

Source

conditions.lisp.

Function: parse-application/x-www-form-urlencoded (request external-format)
Package

toot.

Source

http.lisp.

Function: parse-content-type (string)

Returns content-type which is parsed from STRING.

Package

toot.

Source

rfc2388.lisp.

Function: parse-content-type-header (content-type-header)

Reads and parses a ‘Content-Type’ header and returns it as three values - the type, the subtype, and the requests’ character set as specified in the ’charset’ parameter in the header, if there is one and if the content type is "text". CONTENT-TYPE-HEADER is supposed to be the corresponding header value as a string.

Package

toot.

Source

util.lisp.

Function: parse-cookies (request-headers)
Package

toot.

Source

http.lisp.

Function: parse-multipart/form-data (request external-format)

Parse the REQUEST body as multipart/form-data, assuming that its content type has already been verified. Returns the form data as alist or NIL if there was no data or the data could not be parsed.

Package

toot.

Source

http.lisp.

Function: parse-query-string (request-uri)
Package

toot.

Source

http.lisp.

Function: parse-rfc2388-form-data (stream content-type-header external-format tmp-filename-generator)

Creates an alist of POST parameters from the stream STREAM which is supposed to be of content type ’multipart/form-data’.

Package

toot.

Source

http.lisp.

Function: possible-tmp-filename ()
Package

toot.

Source

util.lisp.

Function: printable-ascii-char-p (char)
Package

toot.

Source

http.lisp.

Function: process-connection (acceptor socket)

Actually process the connection accepted via accept connection. Called by taskmaster’s handle-incoming-connection, possibly in a different thread than accept-connection is running in.

Package

toot.

Source

http.lisp.

Function: process-request (request)

Process a single request. Called repeatedly by process-connection.

Package

toot.

Source

http.lisp.

Function: quote-string (string)

Quotes string according to RFC 2616’s definition of ‘quoted-string’.

Package

toot.

Source

util.lisp.

Function: read-body-octets (request)

Read the post data and return it as a vector of octets.

Package

toot.

Source

http.lisp.

Function: read-initial-request-line (stream)
Package

toot.

Source

http.lisp.

Function: read-post-parameters (request)

Read the post parameters from the body of the request and return them as an alist.

Package

toot.

Source

http.lisp.

Function: read-request (stream)

Reads incoming headers from the client via STREAM. Returns as multiple values the headers as an alist, the request-method, the URI, and the protocol of the request. The reading of the headers is handled by Chunga’s read-http-headers method.

Package

toot.

Source

http.lisp.

Function: read-until-next-boundary (stream boundary &optional discard out-stream)

Reads from STREAM up to the next boundary. Returns two values: read data (nil if DISCARD is true), and true if the boundary is not last (i.e., there’s more data).

Package

toot.

Source

rfc2388.lisp.

Function: report-error-to-client (request error &optional backtrace)
Package

toot.

Source

http.lisp.

Function: request-body-stream (request)

Return a stream from which the body of the request can be read. If the request specified a content-length, this stream will not read beyond it. And if the request is using chunked transfer encoding, the stream will be a chunked stream that will return :eof when it gets to the end of the input. After the request has been handled, any input remaining on the stream will be drained.

Package

toot.

Source

http.lisp.

Function: reset-test-handler ()
Package

toot-tests.

Source

tests.lisp.

Function: resolve-file (path document-root)
Package

toot-tests.

Source

tests.lisp.

Function: rfc-1123-date (&optional time)

Generates a time string according to RFC 1123. Default is current time.

Package

toot.

Source

util.lisp.

Function: sans (args &rest to-remove)
Package

toot.

Source

util.lisp.

Function: send-bad-request-response (stream &optional additional-info)
Package

toot.

Source

http.lisp.

Function: send-response (request content &key content-type charset)

Send a full response with the given content as the body.

Package

toot.

Source

http.lisp.

Function: send-response-headers (request content-length content-type charset)

Send the response headers and return the stream to which the body of the response can be written. The stream is a binary stream. The public API function, SEND-HEADERS will wrap that stream in a flexi-stream based on the content-type and charset, if needed. Thus function is for functions that are going to take care of encoding the response themselves, such as SERVE-FILE, which just dumps an already encoded to the steam as octets. If the request was a HEAD request we dynamically abort rather than returning a stream.

Package

toot.

Source

http.lisp.

Function: send-service-unavailable-response (acceptor socket)

Send a response to the client before we’ve created a request object. This can be used by taskmasters when they cannot accept a connection.

Package

toot.

Source

http.lisp.

Function: set-timeouts (usocket read-timeout write-timeout)

Sets up timeouts on the given USOCKET object. READ-TIMEOUT is the read timeout period, WRITE-TIMEOUT is the write timeout, specified in (fractional) seconds. The timeouts can either be implemented using the low-level socket options SO_RCVTIMEO and SO_SNDTIMEO or some other, implementation specific mechanism. On platforms that do not support separate read and write timeouts, both must be equal or an error will be signaled. READ-TIMEOUT and WRITE-TIMEOUT may be NIL, which means that the corresponding socket timeout value will not be set.

Package

toot.

Source

set-timeouts.lisp.

Function: setup-ssl-stream (acceptor stream)
Package

toot.

Source

http.lisp.

Function: skip-linear-whitespace (string &key start end)

Returns the position of first non-linear-whitespace character in STRING bound by START and END.

Package

toot.

Source

rfc2388.lisp.

Function: start-test-server (port)
Package

toot-tests.

Source

tests.lisp.

Function: start-trivial-server (&key port)
Package

toot-tests.

Source

tests.lisp.

Function: stringify-cookie (cookie)
Package

toot.

Source

cookie.lisp.

Function: test-document-directory (&optional sub-directory)
Package

toot-tests.

Source

tests.lisp.

Function: test-handler ()
Package

toot-tests.

Source

tests.lisp.

Function: text-type-p (content-type)
Package

toot.

Source

http.lisp.

Function: tmp-filename ()
Package

toot.

Source

util.lisp.

Function: toot-warn (format-control &rest format-arguments)

Signals a warning of type TOOT-SIMPLE-WARNING with the provided format control and arguments.

Package

toot.

Source

conditions.lisp.

Function: trivial-handler (request)
Package

toot-tests.

Source

tests.lisp.

Function: unparse-content-type (ct)

Returns content-type CT in string representation.

Package

toot.

Source

rfc2388.lisp.

Function: wait-for-free-connection (taskmaster)
Package

toot.

Source

taskmaster.lisp.

Function: write-cookies (stream cookies)
Package

toot.

Source

http.lisp.

Function: write-header-line (key value stream)
Package

toot.

Source

http.lisp.

Function: write-headers (stream headers)
Package

toot.

Source

http.lisp.

Function: write-line-crlf (stream fmt &rest args)
Package

toot.

Source

http.lisp.

Function: write-simple-response (stream status-code &optional headers content)
Package

toot.

Source

http.lisp.

Function: write-status-line (stream status-code)
Package

toot.

Source

http.lisp.


5.2.5 Generic functions

Generic Reader: acceptor-process (object)
Package

toot.

Methods
Reader Method: acceptor-process ((thread-per-connection-taskmaster thread-per-connection-taskmaster))

automatically generated reader method

Source

taskmaster.lisp.

Target Slot

acceptor-process.

Generic Writer: (setf acceptor-process) (object)
Package

toot.

Methods
Writer Method: (setf acceptor-process) ((thread-per-connection-taskmaster thread-per-connection-taskmaster))

automatically generated writer method

Source

taskmaster.lisp.

Target Slot

acceptor-process.

Generic Reader: body (condition)
Package

toot.

Methods
Reader Method: body ((condition request-aborted))
Source

conditions.lisp.

Target Slot

body.

Generic Reader: close-stream-p (object)
Package

toot.

Methods
Reader Method: close-stream-p ((request request))

automatically generated reader method

Source

http.lisp.

Target Slot

close-stream-p.

Generic Writer: (setf close-stream-p) (object)
Package

toot.

Methods
Writer Method: (setf close-stream-p) ((request request))

automatically generated writer method

Source

http.lisp.

Target Slot

close-stream-p.

Generic Reader: content-stream (object)
Package

toot.

Methods
Reader Method: content-stream ((request request))

automatically generated reader method

Source

http.lisp.

Target Slot

content-stream.

Generic Writer: (setf content-stream) (object)
Package

toot.

Methods
Writer Method: (setf content-stream) ((request request))

automatically generated writer method

Source

http.lisp.

Target Slot

content-stream.

Generic Reader: cookies-out (object)
Package

toot.

Methods
Reader Method: cookies-out ((request request))

automatically generated reader method

Source

http.lisp.

Target Slot

cookies-out.

Generic Writer: (setf cookies-out) (object)
Package

toot.

Methods
Writer Method: (setf cookies-out) ((request request))

automatically generated writer method

Source

http.lisp.

Target Slot

cookies-out.

Generic Reader: destination (object)
Package

toot.

Methods
Reader Method: destination ((stream-logger stream-logger))

automatically generated reader method

Source

log.lisp.

Target Slot

destination.

Generic Reader: domain (object)
Package

toot.

Methods
Reader Method: domain ((cookie cookie))

automatically generated reader method

Source

cookie.lisp.

Target Slot

domain.

Generic Writer: (setf domain) (object)
Package

toot.

Methods
Writer Method: (setf domain) ((cookie cookie))

automatically generated writer method

Source

cookie.lisp.

Target Slot

domain.

Generic Function: execute-acceptor (taskmaster acceptor)

Called on a taskmaster which should call accept-connections on the acceptor.

Package

toot.

Source

taskmaster.lisp.

Methods
Method: execute-acceptor ((taskmaster thread-per-connection-taskmaster) acceptor)
Method: execute-acceptor ((taskmaster single-threaded-taskmaster) acceptor)
Generic Reader: expires (object)
Package

toot.

Methods
Reader Method: expires ((cookie cookie))

automatically generated reader method

Source

cookie.lisp.

Target Slot

expires.

Generic Writer: (setf expires) (object)
Package

toot.

Methods
Writer Method: (setf expires) ((cookie cookie))

automatically generated writer method

Source

cookie.lisp.

Target Slot

expires.

Generic Function: handle-incoming-connection (taskmaster acceptor socket)

Called on a taskmaster to handle a new connection by calling process-connection on acceptor.

Package

toot.

Source

taskmaster.lisp.

Methods
Method: handle-incoming-connection ((taskmaster thread-per-connection-taskmaster) acceptor socket)
Method: handle-incoming-connection ((taskmaster single-threaded-taskmaster) acceptor socket)
Generic Reader: handlers (object)
Package

toot-tests.

Methods
Reader Method: handlers ((search-handler search-handler))

automatically generated reader method

Source

tests.lisp.

Target Slot

handlers.

Generic Writer: (setf handlers) (object)
Package

toot-tests.

Methods
Writer Method: (setf handlers) ((search-handler search-handler))

automatically generated writer method

Source

tests.lisp.

Target Slot

handlers.

Generic Reader: headers-sent-p (object)
Package

toot.

Methods
Reader Method: headers-sent-p ((request request))

automatically generated reader method

Source

http.lisp.

Target Slot

headers-sent-p.

Generic Writer: (setf headers-sent-p) (object)
Package

toot.

Methods
Writer Method: (setf headers-sent-p) ((request request))

automatically generated writer method

Source

http.lisp.

Target Slot

headers-sent-p.

Generic Reader: http-only (object)
Package

toot.

Methods
Reader Method: http-only ((cookie cookie))

automatically generated reader method

Source

cookie.lisp.

Target Slot

http-only.

Generic Writer: (setf http-only) (object)
Package

toot.

Methods
Writer Method: (setf http-only) ((cookie cookie))

automatically generated writer method

Source

cookie.lisp.

Target Slot

http-only.

Generic Reader: listen-backlog (object)
Package

toot.

Methods
Reader Method: listen-backlog ((acceptor acceptor))

automatically generated reader method

Source

http.lisp.

Target Slot

listen-backlog.

Generic Reader: listen-socket (object)
Package

toot.

Methods
Reader Method: listen-socket ((acceptor acceptor))

automatically generated reader method

Source

http.lisp.

Target Slot

listen-socket.

Generic Writer: (setf listen-socket) (object)
Package

toot.

Methods
Writer Method: (setf listen-socket) ((acceptor acceptor))

automatically generated writer method

Source

http.lisp.

Target Slot

listen-socket.

Generic Function: log-access (logger request)

Write a log entry for the request to the access log.

Package

toot.

Source

log.lisp.

Methods
Method: log-access ((logger stream-logger) request)
Method: log-access ((logger null) request)
Generic Function: log-message (logger log-level format-string &rest format-arguments)

Write a log entry to the message log.

Package

toot.

Source

log.lisp.

Methods
Method: log-message ((request request) log-level format-string &rest format-arguments)
Source

http.lisp.

Method: log-message ((acceptor acceptor) log-level format-string &rest format-arguments)
Source

http.lisp.

Method: log-message ((logger stream-logger) log-level format-string &rest format-arguments)
Method: log-message ((logger null) log-level format-string &rest format-arguments)
Generic Function: maybe-invoke-debugger (condition)

This generic function is called whenever a
condition CONDITION is signaled in Toot. You might want to specialize it on specific condition classes for debugging purposes. The default method invokes the debugger with CONDITION if *CATCH-ERRORS-P* is NIL.

Package

toot.

Source

conditions.lisp.

Methods
Method: maybe-invoke-debugger (condition)
Generic Reader: operation (condition)
Package

toot.

Methods
Reader Method: operation ((condition operation-not-implemented))
Source

conditions.lisp.

Target Slot

operation.

Generic Function: parse-header (source &optional start-state)

Parses SOURCE and returs a single MIME header.

Header is a list of the form (NAME VALUE PARAMETERS), PARAMETERS is a list of (NAME . VALUE)

Package

toot.

Source

rfc2388.lisp.

Methods
Method: parse-header ((stream stream) &optional start-state)

Returns a MIME part header, or NIL, if there is no header. Header is terminated by CRLF.

Method: parse-header ((source string) &optional start-state)
Generic Function: parse-mime (source boundary tmp-filename-generator)

Parses MIME entities, returning them as a list. Each element in the list is of form: (body headers), where BODY is the contents of MIME part, and HEADERS are all headers for that part. BOUNDARY is a string used to separate MIME entities.

Package

toot.

Source

rfc2388.lisp.

Methods
Method: parse-mime ((input stream) boundary tmp-filename-generator)
Method: parse-mime ((input string) separator tmp-filename-generator)
Generic Reader: path (object)
Package

toot.

Methods
Reader Method: path ((cookie cookie))

automatically generated reader method

Source

cookie.lisp.

Target Slot

path.

Generic Writer: (setf path) (object)
Package

toot.

Methods
Writer Method: (setf path) ((cookie cookie))

automatically generated writer method

Source

cookie.lisp.

Target Slot

path.

Generic Reader: path-checker (object)
Package

toot.

Methods
Reader Method: path-checker ((static-file-handler static-file-handler))

automatically generated reader method

Source

api.lisp.

Target Slot

path-checker.

Generic Writer: (setf path-checker) (object)
Package

toot.

Methods
Writer Method: (setf path-checker) ((static-file-handler static-file-handler))

automatically generated writer method

Source

api.lisp.

Target Slot

path-checker.

Generic Reader: requests-in-progress (object)
Package

toot.

Methods
Reader Method: requests-in-progress ((acceptor acceptor))

automatically generated reader method

Source

http.lisp.

Target Slot

requests-in-progress.

Generic Writer: (setf requests-in-progress) (object)
Package

toot.

Methods
Writer Method: (setf requests-in-progress) ((acceptor acceptor))

automatically generated writer method

Source

http.lisp.

Target Slot

requests-in-progress.

Generic Reader: response-charset (object)
Package

toot.

Methods
Reader Method: response-charset ((request request))

automatically generated reader method

Source

http.lisp.

Target Slot

response-charset.

Generic Writer: (setf response-charset) (object)
Package

toot.

Methods
Writer Method: (setf response-charset) ((request request))

automatically generated writer method

Source

http.lisp.

Target Slot

response-charset.

Generic Reader: response-headers (object)
Package

toot.

Methods
Reader Method: response-headers ((request request))

automatically generated reader method

Source

http.lisp.

Target Slot

response-headers.

Generic Writer: (setf response-headers) (object)
Package

toot.

Methods
Writer Method: (setf response-headers) ((request request))

automatically generated writer method

Source

http.lisp.

Target Slot

response-headers.

Generic Reader: response-status-code (condition)
Package

toot.

Methods
Reader Method: response-status-code ((condition request-aborted))
Source

conditions.lisp.

Target Slot

response-status-code.

Generic Reader: root (object)
Package

toot.

Methods
Reader Method: root ((static-file-handler static-file-handler))

automatically generated reader method

Source

api.lisp.

Target Slot

root.

Generic Writer: (setf root) (object)
Package

toot.

Methods
Writer Method: (setf root) ((static-file-handler static-file-handler))

automatically generated writer method

Source

api.lisp.

Target Slot

root.

Generic Reader: secure (object)
Package

toot.

Methods
Reader Method: secure ((cookie cookie))

automatically generated reader method

Source

cookie.lisp.

Target Slot

secure.

Generic Writer: (setf secure) (object)
Package

toot.

Methods
Writer Method: (setf secure) ((cookie cookie))

automatically generated writer method

Source

cookie.lisp.

Target Slot

secure.

Generic Function: shutdown (taskmaster)

Shutdown the taskmaster, cleaning up any threads it created.

Package

toot.

Source

taskmaster.lisp.

Methods
Method: shutdown ((taskmaster thread-per-connection-taskmaster))
Method: shutdown ((taskmaster single-threaded-taskmaster))
Generic Reader: shutdown-lock (object)
Package

toot.

Methods
Reader Method: shutdown-lock ((acceptor acceptor))

automatically generated reader method

Source

http.lisp.

Target Slot

shutdown-lock.

Generic Writer: (setf shutdown-lock) (object)
Package

toot.

Methods
Writer Method: (setf shutdown-lock) ((acceptor acceptor))

automatically generated writer method

Source

http.lisp.

Target Slot

shutdown-lock.

Generic Reader: shutdown-p (object)
Package

toot.

Methods
Reader Method: shutdown-p ((acceptor acceptor))

automatically generated reader method

Source

http.lisp.

Target Slot

shutdown-p.

Generic Writer: (setf shutdown-p) (object)
Package

toot.

Methods
Writer Method: (setf shutdown-p) ((acceptor acceptor))

automatically generated writer method

Source

http.lisp.

Target Slot

shutdown-p.

Generic Reader: shutdown-queue (object)
Package

toot.

Methods
Reader Method: shutdown-queue ((acceptor acceptor))

automatically generated reader method

Source

http.lisp.

Target Slot

shutdown-queue.

Generic Writer: (setf shutdown-queue) (object)
Package

toot.

Methods
Writer Method: (setf shutdown-queue) ((acceptor acceptor))

automatically generated writer method

Source

http.lisp.

Target Slot

shutdown-queue.

Generic Reader: ssl-certificate-file (object)
Package

toot.

Methods
Reader Method: ssl-certificate-file ((acceptor acceptor))

automatically generated reader method

Source

http.lisp.

Target Slot

ssl-certificate-file.

Generic Reader: ssl-private-key-file (object)
Package

toot.

Methods
Reader Method: ssl-private-key-file ((acceptor acceptor))

automatically generated reader method

Source

http.lisp.

Target Slot

ssl-private-key-file.

Generic Reader: ssl-private-key-password (object)
Package

toot.

Methods
Reader Method: ssl-private-key-password ((acceptor acceptor))

automatically generated reader method

Source

http.lisp.

Target Slot

ssl-private-key-password.

Generic Reader: taskmaster-max-accept-count (object)
Package

toot.

Methods
Reader Method: taskmaster-max-accept-count ((thread-per-connection-taskmaster thread-per-connection-taskmaster))

automatically generated reader method

Source

taskmaster.lisp.

Target Slot

max-accept-count.

Generic Writer: (setf taskmaster-max-accept-count) (object)
Package

toot.

Methods
Writer Method: (setf taskmaster-max-accept-count) ((thread-per-connection-taskmaster thread-per-connection-taskmaster))

automatically generated writer method

Source

taskmaster.lisp.

Target Slot

max-accept-count.

Generic Reader: taskmaster-max-thread-count (object)
Package

toot.

Methods
Reader Method: taskmaster-max-thread-count ((thread-per-connection-taskmaster thread-per-connection-taskmaster))

automatically generated reader method

Source

taskmaster.lisp.

Target Slot

max-thread-count.

Generic Writer: (setf taskmaster-max-thread-count) (object)
Package

toot.

Methods
Writer Method: (setf taskmaster-max-thread-count) ((thread-per-connection-taskmaster thread-per-connection-taskmaster))

automatically generated writer method

Source

taskmaster.lisp.

Target Slot

max-thread-count.

Generic Reader: taskmaster-request-count (object)
Package

toot.

Methods
Reader Method: taskmaster-request-count ((thread-per-connection-taskmaster thread-per-connection-taskmaster))

automatically generated reader method

Source

taskmaster.lisp.

Target Slot

request-count.

Generic Writer: (setf taskmaster-request-count) (object)
Package

toot.

Methods
Writer Method: (setf taskmaster-request-count) ((thread-per-connection-taskmaster thread-per-connection-taskmaster))

automatically generated writer method

Source

taskmaster.lisp.

Target Slot

request-count.

Generic Reader: taskmaster-request-count-lock (object)
Package

toot.

Methods
Reader Method: taskmaster-request-count-lock ((thread-per-connection-taskmaster thread-per-connection-taskmaster))

automatically generated reader method

Source

taskmaster.lisp.

Target Slot

request-count-lock.

Generic Reader: taskmaster-wait-lock (object)
Package

toot.

Methods
Reader Method: taskmaster-wait-lock ((thread-per-connection-taskmaster thread-per-connection-taskmaster))

automatically generated reader method

Source

taskmaster.lisp.

Target Slot

wait-lock.

Generic Reader: taskmaster-wait-queue (object)
Package

toot.

Methods
Reader Method: taskmaster-wait-queue ((thread-per-connection-taskmaster thread-per-connection-taskmaster))

automatically generated reader method

Source

taskmaster.lisp.

Target Slot

wait-queue.

Generic Reader: taskmaster-worker-thread-name-format (object)
Package

toot.

Methods
Reader Method: taskmaster-worker-thread-name-format ((thread-per-connection-taskmaster thread-per-connection-taskmaster))

automatically generated reader method

Source

taskmaster.lisp.

Target Slot

worker-thread-name-format.

Generic Writer: (setf taskmaster-worker-thread-name-format) (object)
Package

toot.

Methods
Writer Method: (setf taskmaster-worker-thread-name-format) ((thread-per-connection-taskmaster thread-per-connection-taskmaster))

automatically generated writer method

Source

taskmaster.lisp.

Target Slot

worker-thread-name-format.

Generic Reader: tmp-files (object)
Package

toot.

Methods
Reader Method: tmp-files ((request request))

automatically generated reader method

Source

http.lisp.

Target Slot

tmp-files.

Generic Writer: (setf tmp-files) (object)
Package

toot.

Methods
Writer Method: (setf tmp-files) ((request request))

automatically generated writer method

Source

http.lisp.

Target Slot

tmp-files.

Generic Reader: value (object)
Package

toot.

Methods
Reader Method: value ((cookie cookie))

automatically generated reader method

Source

cookie.lisp.

Target Slot

value.

Generic Writer: (setf value) (object)
Package

toot.

Methods
Writer Method: (setf value) ((cookie cookie))

automatically generated writer method

Source

cookie.lisp.

Target Slot

value.


5.2.6 Conditions

Condition: operation-not-implemented

This warning is signalled when an operation (like SETUID for example) is not implemented for a specific Lisp.

Package

toot.

Source

conditions.lisp.

Direct superclasses

toot-error.

Direct methods

operation.

Direct slots
Slot: operation

The name of the unimplemented operation.

Initargs

:operation

Readers

operation.

Writers

This slot is read-only.

Condition: parameter-error

Signalled if a function was called with incosistent or illegal parameters.

Package

toot.

Source

conditions.lisp.

Direct superclasses

toot-simple-error.

Condition: request-aborted

Signaled internally to cause handling of a request to be aborted and a response sent by Toot itself.

Package

toot.

Source

conditions.lisp.

Direct superclasses

toot-condition.

Direct methods
Direct slots
Slot: response-status-code
Initargs

:response-status-code

Readers

response-status-code.

Writers

This slot is read-only.

Slot: body
Initform

(quote nil)

Initargs

:body

Readers

body.

Writers

This slot is read-only.

Condition: toot-condition

Superclass for all conditions related to Toot.

Package

toot.

Source

conditions.lisp.

Direct superclasses

condition.

Direct subclasses
Condition: toot-error

Superclass for all errors related to Toot.

Package

toot.

Source

conditions.lisp.

Direct superclasses
Direct subclasses
Condition: toot-simple-error

Like TOOT-ERROR but with formatting capabilities.

Package

toot.

Source

conditions.lisp.

Direct superclasses
Direct subclasses

parameter-error.

Condition: toot-simple-warning

Like TOOT-WARNING but with formatting capabilities.

Package

toot.

Source

conditions.lisp.

Direct superclasses
Condition: toot-warning

Superclass for all warnings related to Toot.

Package

toot.

Source

conditions.lisp.

Direct superclasses
Direct subclasses

toot-simple-warning.


5.2.7 Classes

Package

toot.

Source

cookie.lisp.

Direct methods
Direct slots
Slot: name
Type

string

Initargs

:name

Readers

name.

Writers

This slot is read-only.

Slot: value
Initform

""

Initargs

:value

Readers

value.

Writers

(setf value).

Slot: expires
Initargs

:expires

Readers

expires.

Writers

(setf expires).

Slot: path
Initargs

:path

Readers

path.

Writers

(setf path).

Slot: domain
Initargs

:domain

Readers

domain.

Writers

(setf domain).

Slot: secure
Initargs

:secure

Readers

secure.

Writers

(setf secure).

Slot: http-only
Initargs

:http-only

Readers

http-only.

Writers

(setf http-only).

Class: request
Package

toot.

Source

http.lisp.

Direct methods
Direct slots
Slot: remote-addr
Initargs

:remote-addr

Readers

remote-addr.

Writers

This slot is read-only.

Slot: remote-port
Initargs

:remote-port

Readers

remote-port.

Writers

This slot is read-only.

Slot: request-method
Initargs

:request-method

Readers

request-method.

Writers

This slot is read-only.

Slot: server-protocol
Initargs

:server-protocol

Readers

server-protocol.

Writers

This slot is read-only.

Slot: request-uri
Initargs

:request-uri

Readers

request-uri.

Writers

This slot is read-only.

Slot: get-parameters
Readers

get-parameters.

Writers

This slot is read-only.

Slot: post-parameters
Readers

post-parameters.

Writers

This slot is read-only.

Slot: body-stream
Readers

body-stream.

Writers

This slot is read-only.

Slot: body-octets
Readers

body-octets.

Writers

This slot is read-only.

Slot: request-headers
Initargs

:request-headers

Readers

request-headers.

Writers

This slot is read-only.

Slot: cookies-in
Readers

cookies-in.

Writers

This slot is read-only.

Slot: status-code
Initform

toot:+http-ok+

Readers

status-code.

Writers

(setf status-code).

Slot: content-length
Readers

content-length.

Writers

(setf content-length).

Slot: content-type
Initform

toot:*default-content-type*

Readers

content-type.

Writers

(setf content-type).

Slot: response-charset
Initform

toot::*default-charset*

Readers

response-charset.

Writers

(setf response-charset).

Slot: response-headers
Readers

response-headers.

Writers

(setf response-headers).

Slot: cookies-out
Readers

cookies-out.

Writers

(setf cookies-out).

Slot: headers-sent-p
Readers

headers-sent-p.

Writers

(setf headers-sent-p).

Slot: close-stream-p
Initform

t

Readers

close-stream-p.

Writers

(setf close-stream-p).

Slot: acceptor
Initargs

:acceptor

Readers

acceptor.

Writers

This slot is read-only.

Slot: content-stream
Initargs

:content-stream

Readers

content-stream.

Writers

(setf content-stream).

Slot: tmp-files
Readers

tmp-files.

Writers

(setf tmp-files).

Class: search-handler
Package

toot-tests.

Source

tests.lisp.

Direct methods
Direct slots
Slot: handlers
Initargs

:handlers

Readers

handlers.

Writers

(setf handlers).

Class: single-threaded-taskmaster
Package

toot.

Source

taskmaster.lisp.

Direct methods
Class: thread-per-connection-taskmaster

A taskmaster that starts one thread for listening
to incoming requests and one new thread for each incoming connection.

If MAX-THREAD-COUNT is null, a new thread will always be created for each request.

If MAX-THREAD-COUNT is supplied, the number of request threads is limited to that. Furthermore, if MAX-ACCEPT-COUNT is not supplied, an HTTP 503 will be sent if the thread limit is exceeded. Otherwise, if MAX-ACCEPT-COUNT is supplied, it must be greater than MAX-THREAD-COUNT; in this case, requests are accepted up to MAX-ACCEPT-COUNT, and only then is HTTP 503 sent.

In a load-balanced environment with multiple Toot servers, it’s reasonable to provide MAX-THREAD-COUNT but leave MAX-ACCEPT-COUNT null. This will immediately result in HTTP 503 when one server is out of resources, so the load balancer can try to find another server.

In an environment with a single Toot server, it’s reasonable
to provide both MAX-THREAD-COUNT and a somewhat larger value for MAX-ACCEPT-COUNT. This will cause a server that’s almost out of resources to wait a bit; if the server is completely out of resources, then the reply will be HTTP 503.

This is the default taskmaster implementation for multi-threaded Lisp implementations.

Package

toot.

Source

taskmaster.lisp.

Direct methods
Direct Default Initargs
InitargValue
:max-thread-count*default-max-thread-count*
:max-accept-count*default-max-accept-count*
Direct slots
Slot: acceptor-process
Readers

acceptor-process.

Writers

(setf acceptor-process).

Slot: max-thread-count
Type

(or integer null)

Initargs

:max-thread-count

Readers

taskmaster-max-thread-count.

Writers

(setf taskmaster-max-thread-count).

Slot: max-accept-count
Type

(or integer null)

Initargs

:max-accept-count

Readers

taskmaster-max-accept-count.

Writers

(setf taskmaster-max-accept-count).

Slot: request-count
Type

integer

Initform

0

Readers

taskmaster-request-count.

Writers

(setf taskmaster-request-count).

Slot: request-count-lock
Initform

(bordeaux-threads:make-lock "taskmaster-request-count")

Readers

taskmaster-request-count-lock.

Writers

This slot is read-only.

Slot: wait-queue
Initform

(bordeaux-threads:make-condition-variable)

Readers

taskmaster-wait-queue.

Writers

This slot is read-only.

Slot: wait-lock
Initform

(bordeaux-threads:make-lock "taskmaster-thread-lock")

Readers

taskmaster-wait-lock.

Writers

This slot is read-only.

Slot: worker-thread-name-format
Type

(or string null)

Initform

"toot-worker-~a"

Initargs

:worker-thread-name-format

Readers

taskmaster-worker-thread-name-format.

Writers

(setf taskmaster-worker-thread-name-format).


Appendix A Indexes


A.1 Concepts


A.2 Functions

Jump to:   (  
A   B   C   D   E   F   G   H   I   K   L   M   N   O   P   Q   R   S   T   U   V   W  
Index Entry  Section

(
(setf acceptor-process): Private generic functions
(setf acceptor-process): Private generic functions
(setf access-logger): Public generic functions
(setf access-logger): Public generic functions
(setf close-stream-p): Private generic functions
(setf close-stream-p): Private generic functions
(setf content-length): Public generic functions
(setf content-length): Public generic functions
(setf content-stream): Private generic functions
(setf content-stream): Private generic functions
(setf content-type): Public generic functions
(setf content-type): Public generic functions
(setf content-type-sub): Private ordinary functions
(setf content-type-super): Private ordinary functions
(setf cookies-out): Private generic functions
(setf cookies-out): Private generic functions
(setf domain): Private generic functions
(setf domain): Private generic functions
(setf error-generator): Public generic functions
(setf error-generator): Public generic functions
(setf expires): Private generic functions
(setf expires): Private generic functions
(setf handler): Public generic functions
(setf handler): Public generic functions
(setf handlers): Private generic functions
(setf handlers): Private generic functions
(setf header-name): Private ordinary functions
(setf header-parameters): Private ordinary functions
(setf header-value): Private ordinary functions
(setf headers-sent-p): Private generic functions
(setf headers-sent-p): Private generic functions
(setf http-only): Private generic functions
(setf http-only): Private generic functions
(setf listen-socket): Private generic functions
(setf listen-socket): Private generic functions
(setf message-logger): Public generic functions
(setf message-logger): Public generic functions
(setf mime-part-contents): Private ordinary functions
(setf mime-part-headers): Private ordinary functions
(setf path): Private generic functions
(setf path): Private generic functions
(setf path-checker): Private generic functions
(setf path-checker): Private generic functions
(setf persistent-connections-p): Public generic functions
(setf persistent-connections-p): Public generic functions
(setf requests-in-progress): Private generic functions
(setf requests-in-progress): Private generic functions
(setf response-charset): Private generic functions
(setf response-charset): Private generic functions
(setf response-header): Public ordinary functions
(setf response-headers): Private generic functions
(setf response-headers): Private generic functions
(setf root): Private generic functions
(setf root): Private generic functions
(setf secure): Private generic functions
(setf secure): Private generic functions
(setf shutdown-lock): Private generic functions
(setf shutdown-lock): Private generic functions
(setf shutdown-p): Private generic functions
(setf shutdown-p): Private generic functions
(setf shutdown-queue): Private generic functions
(setf shutdown-queue): Private generic functions
(setf status-code): Public generic functions
(setf status-code): Public generic functions
(setf taskmaster-max-accept-count): Private generic functions
(setf taskmaster-max-accept-count): Private generic functions
(setf taskmaster-max-thread-count): Private generic functions
(setf taskmaster-max-thread-count): Private generic functions
(setf taskmaster-request-count): Private generic functions
(setf taskmaster-request-count): Private generic functions
(setf taskmaster-worker-thread-name-format): Private generic functions
(setf taskmaster-worker-thread-name-format): Private generic functions
(setf tmp-files): Private generic functions
(setf tmp-files): Private generic functions
(setf value): Private generic functions
(setf value): Private generic functions

A
abort-request-handler: Public ordinary functions
accept-connections: Private ordinary functions
acceptor: Public generic functions
acceptor: Public generic functions
acceptor-process: Private generic functions
acceptor-process: Private generic functions
access-logger: Public generic functions
access-logger: Public generic functions
add-handler: Private ordinary functions
add-index: Public ordinary functions
address: Public generic functions
address: Public generic functions
authorization: Public ordinary functions

B
body: Private generic functions
body: Private generic functions
body-octets: Public generic functions
body-octets: Public generic functions
body-octets: Public generic functions
body-stream: Public generic functions
body-stream: Public generic functions
body-stream: Public generic functions

C
charset-to-external-format: Private ordinary functions
chunking-input-p: Private ordinary functions
close-stream-p: Private generic functions
close-stream-p: Private generic functions
connection-handler-thread-name: Private ordinary functions
connection-values: Private ordinary functions
content-length: Public generic functions
content-length: Public generic functions
content-stream: Private generic functions
content-stream: Private generic functions
content-type: Public generic functions
content-type: Public generic functions
content-type-sub: Private ordinary functions
content-type-super: Private ordinary functions
convert-hack: Private ordinary functions
cookie-out: Private ordinary functions
cookie-value: Public ordinary functions
cookies-in: Public generic functions
cookies-in: Public generic functions
cookies-out: Private generic functions
cookies-out: Private generic functions
copy-content-type: Private ordinary functions
copy-header: Private ordinary functions
copy-mime-part: Private ordinary functions
create-connection-handler-thread: Private ordinary functions

D
decrement-taskmaster-request-count: Private ordinary functions
def-http-status-code: Private macros
default-error-message-generator: Private ordinary functions
defconstant: Private macros
delete-tmp-files: Private ordinary functions
destination: Private generic functions
destination: Private generic functions
domain: Private generic functions
domain: Private generic functions
drain-body-stream: Private ordinary functions

E
enough-url: Private ordinary functions
error-body: Private ordinary functions
error-generator: Public generic functions
error-generator: Public generic functions
escape-for-html: Public ordinary functions
execute-acceptor: Private generic functions
execute-acceptor: Private generic functions
execute-acceptor: Private generic functions
expires: Private generic functions
expires: Private generic functions
external-format-from-content-type: Private ordinary functions

F
finalize-response-headers: Private ordinary functions
find-content-disposition-header: Private ordinary functions
find-header: Private ordinary functions
find-parameter: Private ordinary functions
finish-response-body: Private ordinary functions
form-test-get-params: Private ordinary functions
form-test-octets: Private ordinary functions
form-test-params: Private ordinary functions
form-test-stream: Private ordinary functions
form-url-encoded-list-to-alist: Private ordinary functions
full-content-type: Private ordinary functions
Function, (setf content-type-sub): Private ordinary functions
Function, (setf content-type-super): Private ordinary functions
Function, (setf header-name): Private ordinary functions
Function, (setf header-parameters): Private ordinary functions
Function, (setf header-value): Private ordinary functions
Function, (setf mime-part-contents): Private ordinary functions
Function, (setf mime-part-headers): Private ordinary functions
Function, (setf response-header): Public ordinary functions
Function, abort-request-handler: Public ordinary functions
Function, accept-connections: Private ordinary functions
Function, add-handler: Private ordinary functions
Function, add-index: Public ordinary functions
Function, authorization: Public ordinary functions
Function, charset-to-external-format: Private ordinary functions
Function, chunking-input-p: Private ordinary functions
Function, connection-handler-thread-name: Private ordinary functions
Function, connection-values: Private ordinary functions
Function, content-type-sub: Private ordinary functions
Function, content-type-super: Private ordinary functions
Function, convert-hack: Private ordinary functions
Function, cookie-out: Private ordinary functions
Function, cookie-value: Public ordinary functions
Function, copy-content-type: Private ordinary functions
Function, copy-header: Private ordinary functions
Function, copy-mime-part: Private ordinary functions
Function, create-connection-handler-thread: Private ordinary functions
Function, decrement-taskmaster-request-count: Private ordinary functions
Function, default-error-message-generator: Private ordinary functions
Function, delete-tmp-files: Private ordinary functions
Function, drain-body-stream: Private ordinary functions
Function, enough-url: Private ordinary functions
Function, error-body: Private ordinary functions
Function, escape-for-html: Public ordinary functions
Function, external-format-from-content-type: Private ordinary functions
Function, finalize-response-headers: Private ordinary functions
Function, find-content-disposition-header: Private ordinary functions
Function, find-header: Private ordinary functions
Function, find-parameter: Private ordinary functions
Function, finish-response-body: Private ordinary functions
Function, form-test-get-params: Private ordinary functions
Function, form-test-octets: Private ordinary functions
Function, form-test-params: Private ordinary functions
Function, form-test-stream: Private ordinary functions
Function, form-url-encoded-list-to-alist: Private ordinary functions
Function, full-content-type: Private ordinary functions
Function, get-backtrace: Private ordinary functions
Function, get-file-name: Private ordinary functions
Function, get-parameter: Public ordinary functions
Function, get-peer-address-and-port: Private ordinary functions
Function, guess-mime-type: Private ordinary functions
Function, handle-if-modified-since: Public ordinary functions
Function, handle-range: Public ordinary functions
Function, header-name: Private ordinary functions
Function, header-parameters: Private ordinary functions
Function, header-value: Private ordinary functions
Function, http-token-p: Private ordinary functions
Function, hyperdoc-lookup: Private ordinary functions
Function, increment-taskmaster-request-count: Private ordinary functions
Function, internal-error: Private ordinary functions
Function, iso-time: Private ordinary functions
Function, keep-alive-p: Private ordinary functions
Function, length-known-p: Private ordinary functions
Function, listen-thread-name: Private ordinary functions
Function, lwsp-char-p: Private ordinary functions
Function, make-content-type: Private ordinary functions
Function, make-exact-path-handler: Private ordinary functions
Function, make-header: Private ordinary functions
Function, make-header-stream: Private ordinary functions
Function, make-mime-part: Private ordinary functions
Function, make-search-handler: Private ordinary functions
Function, make-socket-stream: Private ordinary functions
Function, maybe-log-error: Private ordinary functions
Function, maybe-log-warning: Private ordinary functions
Function, mime-content-type: Private ordinary functions
Function, mime-part-contents: Private ordinary functions
Function, mime-part-headers: Private ordinary functions
Function, no-cache: Public ordinary functions
Function, not-implemented: Private ordinary functions
Function, notify-free-connection: Private ordinary functions
Function, parameter: Public ordinary functions
Function, parameter-error: Private ordinary functions
Function, parse-application/x-www-form-urlencoded: Private ordinary functions
Function, parse-content-type: Private ordinary functions
Function, parse-content-type-header: Private ordinary functions
Function, parse-cookies: Private ordinary functions
Function, parse-multipart/form-data: Private ordinary functions
Function, parse-query-string: Private ordinary functions
Function, parse-rfc2388-form-data: Private ordinary functions
Function, possible-tmp-filename: Private ordinary functions
Function, post-parameter: Public ordinary functions
Function, printable-ascii-char-p: Private ordinary functions
Function, process-connection: Private ordinary functions
Function, process-request: Private ordinary functions
Function, quote-string: Private ordinary functions
Function, read-body-octets: Private ordinary functions
Function, read-initial-request-line: Private ordinary functions
Function, read-post-parameters: Private ordinary functions
Function, read-request: Private ordinary functions
Function, read-until-next-boundary: Private ordinary functions
Function, real-remote-addr: Public ordinary functions
Function, reason-phrase: Public ordinary functions
Function, redirect: Public ordinary functions
Function, report-error-to-client: Private ordinary functions
Function, request-authority: Public ordinary functions
Function, request-body-stream: Private ordinary functions
Function, request-header: Public ordinary functions
Function, request-host: Public ordinary functions
Function, request-path: Public ordinary functions
Function, request-port: Public ordinary functions
Function, request-query: Public ordinary functions
Function, request-scheme: Public ordinary functions
Function, require-authorization: Public ordinary functions
Function, reset-test-handler: Private ordinary functions
Function, resolve-file: Private ordinary functions
Function, response-header: Public ordinary functions
Function, response-sent-p: Public ordinary functions
Function, rfc-1123-date: Private ordinary functions
Function, safe-pathname-p: Public ordinary functions
Function, sans: Private ordinary functions
Function, send-bad-request-response: Private ordinary functions
Function, send-headers: Public ordinary functions
Function, send-response: Private ordinary functions
Function, send-response-headers: Private ordinary functions
Function, send-service-unavailable-response: Private ordinary functions
Function, serve-file: Public ordinary functions
Function, set-cookie: Public ordinary functions
Function, set-timeouts: Private ordinary functions
Function, setup-ssl-stream: Private ordinary functions
Function, skip-linear-whitespace: Private ordinary functions
Function, start-acceptor: Public ordinary functions
Function, start-server: Public ordinary functions
Function, start-test-server: Private ordinary functions
Function, start-trivial-server: Private ordinary functions
Function, stop-acceptor: Public ordinary functions
Function, stringify-cookie: Private ordinary functions
Function, test-document-directory: Private ordinary functions
Function, test-handler: Private ordinary functions
Function, text-type-p: Private ordinary functions
Function, tmp-filename: Private ordinary functions
Function, toot-warn: Private ordinary functions
Function, trivial-handler: Private ordinary functions
Function, unparse-content-type: Private ordinary functions
Function, url-decode: Public ordinary functions
Function, url-encode: Public ordinary functions
Function, wait-for-free-connection: Private ordinary functions
Function, write-cookies: Private ordinary functions
Function, write-header-line: Private ordinary functions
Function, write-headers: Private ordinary functions
Function, write-line-crlf: Private ordinary functions
Function, write-simple-response: Private ordinary functions
Function, write-status-line: Private ordinary functions

G
generate-error-page: Public generic functions
generate-error-page: Public generic functions
generate-error-page: Public generic functions
Generic Function, (setf acceptor-process): Private generic functions
Generic Function, (setf access-logger): Public generic functions
Generic Function, (setf close-stream-p): Private generic functions
Generic Function, (setf content-length): Public generic functions
Generic Function, (setf content-stream): Private generic functions
Generic Function, (setf content-type): Public generic functions
Generic Function, (setf cookies-out): Private generic functions
Generic Function, (setf domain): Private generic functions
Generic Function, (setf error-generator): Public generic functions
Generic Function, (setf expires): Private generic functions
Generic Function, (setf handler): Public generic functions
Generic Function, (setf handlers): Private generic functions
Generic Function, (setf headers-sent-p): Private generic functions
Generic Function, (setf http-only): Private generic functions
Generic Function, (setf listen-socket): Private generic functions
Generic Function, (setf message-logger): Public generic functions
Generic Function, (setf path): Private generic functions
Generic Function, (setf path-checker): Private generic functions
Generic Function, (setf persistent-connections-p): Public generic functions
Generic Function, (setf requests-in-progress): Private generic functions
Generic Function, (setf response-charset): Private generic functions
Generic Function, (setf response-headers): Private generic functions
Generic Function, (setf root): Private generic functions
Generic Function, (setf secure): Private generic functions
Generic Function, (setf shutdown-lock): Private generic functions
Generic Function, (setf shutdown-p): Private generic functions
Generic Function, (setf shutdown-queue): Private generic functions
Generic Function, (setf status-code): Public generic functions
Generic Function, (setf taskmaster-max-accept-count): Private generic functions
Generic Function, (setf taskmaster-max-thread-count): Private generic functions
Generic Function, (setf taskmaster-request-count): Private generic functions
Generic Function, (setf taskmaster-worker-thread-name-format): Private generic functions
Generic Function, (setf tmp-files): Private generic functions
Generic Function, (setf value): Private generic functions
Generic Function, acceptor: Public generic functions
Generic Function, acceptor-process: Private generic functions
Generic Function, access-logger: Public generic functions
Generic Function, address: Public generic functions
Generic Function, body: Private generic functions
Generic Function, body-octets: Public generic functions
Generic Function, body-stream: Public generic functions
Generic Function, close-stream-p: Private generic functions
Generic Function, content-length: Public generic functions
Generic Function, content-stream: Private generic functions
Generic Function, content-type: Public generic functions
Generic Function, cookies-in: Public generic functions
Generic Function, cookies-out: Private generic functions
Generic Function, destination: Private generic functions
Generic Function, domain: Private generic functions
Generic Function, error-generator: Public generic functions
Generic Function, execute-acceptor: Private generic functions
Generic Function, expires: Private generic functions
Generic Function, generate-error-page: Public generic functions
Generic Function, get-parameters: Public generic functions
Generic Function, handle-incoming-connection: Private generic functions
Generic Function, handle-request: Public generic functions
Generic Function, handler: Public generic functions
Generic Function, handlers: Private generic functions
Generic Function, headers-sent-p: Private generic functions
Generic Function, http-only: Private generic functions
Generic Function, listen-backlog: Private generic functions
Generic Function, listen-socket: Private generic functions
Generic Function, log-access: Private generic functions
Generic Function, log-message: Private generic functions
Generic Function, maybe-invoke-debugger: Private generic functions
Generic Function, message-logger: Public generic functions
Generic Function, name: Public generic functions
Generic Function, operation: Private generic functions
Generic Function, parse-header: Private generic functions
Generic Function, parse-mime: Private generic functions
Generic Function, path: Private generic functions
Generic Function, path-checker: Private generic functions
Generic Function, persistent-connections-p: Public generic functions
Generic Function, port: Public generic functions
Generic Function, post-parameters: Public generic functions
Generic Function, read-timeout: Public generic functions
Generic Function, remote-addr: Public generic functions
Generic Function, remote-port: Public generic functions
Generic Function, request-headers: Public generic functions
Generic Function, request-method: Public generic functions
Generic Function, request-uri: Public generic functions
Generic Function, requests-in-progress: Private generic functions
Generic Function, response-charset: Private generic functions
Generic Function, response-headers: Private generic functions
Generic Function, response-status-code: Private generic functions
Generic Function, root: Private generic functions
Generic Function, secure: Private generic functions
Generic Function, server-protocol: Public generic functions
Generic Function, shutdown: Private generic functions
Generic Function, shutdown-lock: Private generic functions
Generic Function, shutdown-p: Private generic functions
Generic Function, shutdown-queue: Private generic functions
Generic Function, ssl-certificate-file: Private generic functions
Generic Function, ssl-private-key-file: Private generic functions
Generic Function, ssl-private-key-password: Private generic functions
Generic Function, status-code: Public generic functions
Generic Function, taskmaster: Public generic functions
Generic Function, taskmaster-max-accept-count: Private generic functions
Generic Function, taskmaster-max-thread-count: Private generic functions
Generic Function, taskmaster-request-count: Private generic functions
Generic Function, taskmaster-request-count-lock: Private generic functions
Generic Function, taskmaster-wait-lock: Private generic functions
Generic Function, taskmaster-wait-queue: Private generic functions
Generic Function, taskmaster-worker-thread-name-format: Private generic functions
Generic Function, tmp-files: Private generic functions
Generic Function, value: Private generic functions
Generic Function, write-timeout: Public generic functions
get-backtrace: Private ordinary functions
get-file-name: Private ordinary functions
get-parameter: Public ordinary functions
get-parameters: Public generic functions
get-parameters: Public generic functions
get-peer-address-and-port: Private ordinary functions
guess-mime-type: Private ordinary functions

H
handle-if-modified-since: Public ordinary functions
handle-incoming-connection: Private generic functions
handle-incoming-connection: Private generic functions
handle-incoming-connection: Private generic functions
handle-range: Public ordinary functions
handle-request: Public generic functions
handle-request: Public generic functions
handle-request: Public generic functions
handle-request: Public generic functions
handle-request: Public generic functions
handle-request: Public generic functions
handler: Public generic functions
handler: Public generic functions
handler-case*: Private macros
handlers: Private generic functions
handlers: Private generic functions
header-name: Private ordinary functions
header-parameters: Private ordinary functions
header-value: Private ordinary functions
headers-sent-p: Private generic functions
headers-sent-p: Private generic functions
http-only: Private generic functions
http-only: Private generic functions
http-token-p: Private ordinary functions
hyperdoc-lookup: Private ordinary functions

I
ignore-errors*: Private macros
increment-taskmaster-request-count: Private ordinary functions
initialize-instance: Public standalone methods
initialize-instance: Public standalone methods
initialize-instance: Public standalone methods
initialize-instance: Public standalone methods
initialize-instance: Public standalone methods
internal-error: Private ordinary functions
iso-time: Private ordinary functions

K
keep-alive-p: Private ordinary functions

L
length-known-p: Private ordinary functions
listen-backlog: Private generic functions
listen-backlog: Private generic functions
listen-socket: Private generic functions
listen-socket: Private generic functions
listen-thread-name: Private ordinary functions
lock: Public standalone methods
log-access: Private generic functions
log-access: Private generic functions
log-access: Private generic functions
log-message: Private generic functions
log-message: Private generic functions
log-message: Private generic functions
log-message: Private generic functions
log-message: Private generic functions
lwsp-char-p: Private ordinary functions

M
Macro, def-http-status-code: Private macros
Macro, defconstant: Private macros
Macro, handler-case*: Private macros
Macro, ignore-errors*: Private macros
Macro, upgrade-vector: Private macros
Macro, with-debugger: Private macros
Macro, with-response-body: Public macros
make-content-type: Private ordinary functions
make-exact-path-handler: Private ordinary functions
make-header: Private ordinary functions
make-header-stream: Private ordinary functions
make-mime-part: Private ordinary functions
make-search-handler: Private ordinary functions
make-socket-stream: Private ordinary functions
maybe-invoke-debugger: Private generic functions
maybe-invoke-debugger: Private generic functions
maybe-log-error: Private ordinary functions
maybe-log-warning: Private ordinary functions
message-logger: Public generic functions
message-logger: Public generic functions
Method, (setf acceptor-process): Private generic functions
Method, (setf access-logger): Public generic functions
Method, (setf close-stream-p): Private generic functions
Method, (setf content-length): Public generic functions
Method, (setf content-stream): Private generic functions
Method, (setf content-type): Public generic functions
Method, (setf cookies-out): Private generic functions
Method, (setf domain): Private generic functions
Method, (setf error-generator): Public generic functions
Method, (setf expires): Private generic functions
Method, (setf handler): Public generic functions
Method, (setf handlers): Private generic functions
Method, (setf headers-sent-p): Private generic functions
Method, (setf http-only): Private generic functions
Method, (setf listen-socket): Private generic functions
Method, (setf message-logger): Public generic functions
Method, (setf path): Private generic functions
Method, (setf path-checker): Private generic functions
Method, (setf persistent-connections-p): Public generic functions
Method, (setf requests-in-progress): Private generic functions
Method, (setf response-charset): Private generic functions
Method, (setf response-headers): Private generic functions
Method, (setf root): Private generic functions
Method, (setf secure): Private generic functions
Method, (setf shutdown-lock): Private generic functions
Method, (setf shutdown-p): Private generic functions
Method, (setf shutdown-queue): Private generic functions
Method, (setf status-code): Public generic functions
Method, (setf taskmaster-max-accept-count): Private generic functions
Method, (setf taskmaster-max-thread-count): Private generic functions
Method, (setf taskmaster-request-count): Private generic functions
Method, (setf taskmaster-worker-thread-name-format): Private generic functions
Method, (setf tmp-files): Private generic functions
Method, (setf value): Private generic functions
Method, acceptor: Public generic functions
Method, acceptor-process: Private generic functions
Method, access-logger: Public generic functions
Method, address: Public generic functions
Method, body: Private generic functions
Method, body-octets: Public generic functions
Method, body-octets: Public generic functions
Method, body-stream: Public generic functions
Method, body-stream: Public generic functions
Method, close-stream-p: Private generic functions
Method, content-length: Public generic functions
Method, content-stream: Private generic functions
Method, content-type: Public generic functions
Method, cookies-in: Public generic functions
Method, cookies-out: Private generic functions
Method, destination: Private generic functions
Method, domain: Private generic functions
Method, error-generator: Public generic functions
Method, execute-acceptor: Private generic functions
Method, execute-acceptor: Private generic functions
Method, expires: Private generic functions
Method, generate-error-page: Public generic functions
Method, generate-error-page: Public generic functions
Method, get-parameters: Public generic functions
Method, handle-incoming-connection: Private generic functions
Method, handle-incoming-connection: Private generic functions
Method, handle-request: Public generic functions
Method, handle-request: Public generic functions
Method, handle-request: Public generic functions
Method, handle-request: Public generic functions
Method, handle-request: Public generic functions
Method, handler: Public generic functions
Method, handlers: Private generic functions
Method, headers-sent-p: Private generic functions
Method, http-only: Private generic functions
Method, initialize-instance: Public standalone methods
Method, initialize-instance: Public standalone methods
Method, initialize-instance: Public standalone methods
Method, initialize-instance: Public standalone methods
Method, initialize-instance: Public standalone methods
Method, listen-backlog: Private generic functions
Method, listen-socket: Private generic functions
Method, lock: Public standalone methods
Method, log-access: Private generic functions
Method, log-access: Private generic functions
Method, log-message: Private generic functions
Method, log-message: Private generic functions
Method, log-message: Private generic functions
Method, log-message: Private generic functions
Method, maybe-invoke-debugger: Private generic functions
Method, message-logger: Public generic functions
Method, name: Public generic functions
Method, name: Public generic functions
Method, operation: Private generic functions
Method, parse-header: Private generic functions
Method, parse-header: Private generic functions
Method, parse-mime: Private generic functions
Method, parse-mime: Private generic functions
Method, path: Private generic functions
Method, path-checker: Private generic functions
Method, persistent-connections-p: Public generic functions
Method, port: Public generic functions
Method, post-parameters: Public generic functions
Method, post-parameters: Public generic functions
Method, print-object: Public standalone methods
Method, read-timeout: Public generic functions
Method, remote-addr: Public generic functions
Method, remote-port: Public generic functions
Method, request-headers: Public generic functions
Method, request-method: Public generic functions
Method, request-uri: Public generic functions
Method, requests-in-progress: Private generic functions
Method, response-charset: Private generic functions
Method, response-headers: Private generic functions
Method, response-status-code: Private generic functions
Method, root: Private generic functions
Method, secure: Private generic functions
Method, server-protocol: Public generic functions
Method, shutdown: Private generic functions
Method, shutdown: Private generic functions
Method, shutdown-lock: Private generic functions
Method, shutdown-p: Private generic functions
Method, shutdown-queue: Private generic functions
Method, ssl-certificate-file: Private generic functions
Method, ssl-private-key-file: Private generic functions
Method, ssl-private-key-password: Private generic functions
Method, status-code: Public generic functions
Method, taskmaster: Public generic functions
Method, taskmaster-max-accept-count: Private generic functions
Method, taskmaster-max-thread-count: Private generic functions
Method, taskmaster-request-count: Private generic functions
Method, taskmaster-request-count-lock: Private generic functions
Method, taskmaster-wait-lock: Private generic functions
Method, taskmaster-wait-queue: Private generic functions
Method, taskmaster-worker-thread-name-format: Private generic functions
Method, tmp-files: Private generic functions
Method, value: Private generic functions
Method, write-timeout: Public generic functions
mime-content-type: Private ordinary functions
mime-part-contents: Private ordinary functions
mime-part-headers: Private ordinary functions

N
name: Public generic functions
name: Public generic functions
name: Public generic functions
no-cache: Public ordinary functions
not-implemented: Private ordinary functions
notify-free-connection: Private ordinary functions

O
operation: Private generic functions
operation: Private generic functions

P
parameter: Public ordinary functions
parameter-error: Private ordinary functions
parse-application/x-www-form-urlencoded: Private ordinary functions
parse-content-type: Private ordinary functions
parse-content-type-header: Private ordinary functions
parse-cookies: Private ordinary functions
parse-header: Private generic functions
parse-header: Private generic functions
parse-header: Private generic functions
parse-mime: Private generic functions
parse-mime: Private generic functions
parse-mime: Private generic functions
parse-multipart/form-data: Private ordinary functions
parse-query-string: Private ordinary functions
parse-rfc2388-form-data: Private ordinary functions
path: Private generic functions
path: Private generic functions
path-checker: Private generic functions
path-checker: Private generic functions
persistent-connections-p: Public generic functions
persistent-connections-p: Public generic functions
port: Public generic functions
port: Public generic functions
possible-tmp-filename: Private ordinary functions
post-parameter: Public ordinary functions
post-parameters: Public generic functions
post-parameters: Public generic functions
post-parameters: Public generic functions
print-object: Public standalone methods
printable-ascii-char-p: Private ordinary functions
process-connection: Private ordinary functions
process-request: Private ordinary functions

Q
quote-string: Private ordinary functions

R
read-body-octets: Private ordinary functions
read-initial-request-line: Private ordinary functions
read-post-parameters: Private ordinary functions
read-request: Private ordinary functions
read-timeout: Public generic functions
read-timeout: Public generic functions
read-until-next-boundary: Private ordinary functions
real-remote-addr: Public ordinary functions
reason-phrase: Public ordinary functions
redirect: Public ordinary functions
remote-addr: Public generic functions
remote-addr: Public generic functions
remote-port: Public generic functions
remote-port: Public generic functions
report-error-to-client: Private ordinary functions
request-authority: Public ordinary functions
request-body-stream: Private ordinary functions
request-header: Public ordinary functions
request-headers: Public generic functions
request-headers: Public generic functions
request-host: Public ordinary functions
request-method: Public generic functions
request-method: Public generic functions
request-path: Public ordinary functions
request-port: Public ordinary functions
request-query: Public ordinary functions
request-scheme: Public ordinary functions
request-uri: Public generic functions
request-uri: Public generic functions
requests-in-progress: Private generic functions
requests-in-progress: Private generic functions
require-authorization: Public ordinary functions
reset-test-handler: Private ordinary functions
resolve-file: Private ordinary functions
response-charset: Private generic functions
response-charset: Private generic functions
response-header: Public ordinary functions
response-headers: Private generic functions
response-headers: Private generic functions
response-sent-p: Public ordinary functions
response-status-code: Private generic functions
response-status-code: Private generic functions
rfc-1123-date: Private ordinary functions
root: Private generic functions
root: Private generic functions

S
safe-pathname-p: Public ordinary functions
sans: Private ordinary functions
secure: Private generic functions
secure: Private generic functions
send-bad-request-response: Private ordinary functions
send-headers: Public ordinary functions
send-response: Private ordinary functions
send-response-headers: Private ordinary functions
send-service-unavailable-response: Private ordinary functions
serve-file: Public ordinary functions
server-protocol: Public generic functions
server-protocol: Public generic functions
set-cookie: Public ordinary functions
set-timeouts: Private ordinary functions
setup-ssl-stream: Private ordinary functions
shutdown: Private generic functions
shutdown: Private generic functions
shutdown: Private generic functions
shutdown-lock: Private generic functions
shutdown-lock: Private generic functions
shutdown-p: Private generic functions
shutdown-p: Private generic functions
shutdown-queue: Private generic functions
shutdown-queue: Private generic functions
skip-linear-whitespace: Private ordinary functions
ssl-certificate-file: Private generic functions
ssl-certificate-file: Private generic functions
ssl-private-key-file: Private generic functions
ssl-private-key-file: Private generic functions
ssl-private-key-password: Private generic functions
ssl-private-key-password: Private generic functions
start-acceptor: Public ordinary functions
start-server: Public ordinary functions
start-test-server: Private ordinary functions
start-trivial-server: Private ordinary functions
status-code: Public generic functions
status-code: Public generic functions
stop-acceptor: Public ordinary functions
stringify-cookie: Private ordinary functions

T
taskmaster: Public generic functions
taskmaster: Public generic functions
taskmaster-max-accept-count: Private generic functions
taskmaster-max-accept-count: Private generic functions
taskmaster-max-thread-count: Private generic functions
taskmaster-max-thread-count: Private generic functions
taskmaster-request-count: Private generic functions
taskmaster-request-count: Private generic functions
taskmaster-request-count-lock: Private generic functions
taskmaster-request-count-lock: Private generic functions
taskmaster-wait-lock: Private generic functions
taskmaster-wait-lock: Private generic functions
taskmaster-wait-queue: Private generic functions
taskmaster-wait-queue: Private generic functions
taskmaster-worker-thread-name-format: Private generic functions
taskmaster-worker-thread-name-format: Private generic functions
test-document-directory: Private ordinary functions
test-handler: Private ordinary functions
text-type-p: Private ordinary functions
tmp-filename: Private ordinary functions
tmp-files: Private generic functions
tmp-files: Private generic functions
toot-warn: Private ordinary functions
trivial-handler: Private ordinary functions

U
unparse-content-type: Private ordinary functions
upgrade-vector: Private macros
url-decode: Public ordinary functions
url-encode: Public ordinary functions

V
value: Private generic functions
value: Private generic functions

W
wait-for-free-connection: Private ordinary functions
with-debugger: Private macros
with-response-body: Public macros
write-cookies: Private ordinary functions
write-header-line: Private ordinary functions
write-headers: Private ordinary functions
write-line-crlf: Private ordinary functions
write-simple-response: Private ordinary functions
write-status-line: Private ordinary functions
write-timeout: Public generic functions
write-timeout: Public generic functions


A.3 Variables

Jump to:   *   +  
A   B   C   D   E   G   H   L   M   N   O   P   R   S   T   V   W  
Index Entry  Section

*
*debug-errors-p*: Public special variables
*default-charset*: Private special variables
*default-connection-timeout*: Public special variables
*default-content-type*: Public special variables
*default-external-format*: Public special variables
*default-logger*: Private special variables
*default-max-accept-count*: Private special variables
*default-max-thread-count*: Private special variables
*error-css*: Private special variables
*header-stream*: Public special variables
*http-reason-phrase-map*: Private special variables
*hyperdoc-base-uri*: Private special variables
*lisp-errors-log-level*: Public special variables
*lisp-warnings-log-level*: Public special variables
*log-lisp-backtraces-p*: Public special variables
*log-lisp-errors-p*: Public special variables
*log-lisp-warnings-p*: Public special variables
*mime-type-hash*: Private special variables
*mime-type-list*: Private special variables
*show-lisp-backtraces-p*: Public special variables
*show-lisp-errors-p*: Public special variables
*test-acceptor*: Private special variables
*tmp-counter*: Private special variables
*tmp-counter-lock*: Private special variables
*tmp-directory*: Public special variables
*toot-version*: Private special variables

+
+buffer-length+: Private constants
+crlf+: Private constants
+day-names+: Private constants
+http-accepted+: Public constants
+http-authorization-required+: Public constants
+http-bad-gateway+: Public constants
+http-bad-request+: Public constants
+http-conflict+: Public constants
+http-continue+: Public constants
+http-created+: Public constants
+http-expectation-failed+: Public constants
+http-failed-dependency+: Public constants
+http-forbidden+: Public constants
+http-gateway-time-out+: Public constants
+http-gone+: Public constants
+http-internal-server-error+: Public constants
+http-length-required+: Public constants
+http-method-not-allowed+: Public constants
+http-moved-permanently+: Public constants
+http-moved-temporarily+: Public constants
+http-multi-status+: Public constants
+http-multiple-choices+: Public constants
+http-no-content+: Public constants
+http-non-authoritative-information+: Public constants
+http-not-acceptable+: Public constants
+http-not-found+: Public constants
+http-not-implemented+: Public constants
+http-not-modified+: Public constants
+http-ok+: Public constants
+http-partial-content+: Public constants
+http-payment-required+: Public constants
+http-precondition-failed+: Public constants
+http-proxy-authentication-required+: Public constants
+http-request-entity-too-large+: Public constants
+http-request-time-out+: Public constants
+http-request-uri-too-large+: Public constants
+http-requested-range-not-satisfiable+: Public constants
+http-reset-content+: Public constants
+http-see-other+: Public constants
+http-service-unavailable+: Public constants
+http-switching-protocols+: Public constants
+http-temporary-redirect+: Public constants
+http-unsupported-media-type+: Public constants
+http-use-proxy+: Public constants
+http-version-not-supported+: Public constants
+implementation-link+: Private constants
+latin-1+: Private constants
+month-names+: Private constants
+new-connection-wait-time+: Private constants
+toot-project-url+: Private constants
+utf-8+: Private constants

A
acceptor: Private classes
acceptor-process: Private classes
access-loggger: Public classes
address: Public classes

B
body: Private conditions
body-octets: Private classes
body-stream: Private classes

C
close-stream-p: Private classes
Constant, +buffer-length+: Private constants
Constant, +crlf+: Private constants
Constant, +day-names+: Private constants
Constant, +http-accepted+: Public constants
Constant, +http-authorization-required+: Public constants
Constant, +http-bad-gateway+: Public constants
Constant, +http-bad-request+: Public constants
Constant, +http-conflict+: Public constants
Constant, +http-continue+: Public constants
Constant, +http-created+: Public constants
Constant, +http-expectation-failed+: Public constants
Constant, +http-failed-dependency+: Public constants
Constant, +http-forbidden+: Public constants
Constant, +http-gateway-time-out+: Public constants
Constant, +http-gone+: Public constants
Constant, +http-internal-server-error+: Public constants
Constant, +http-length-required+: Public constants
Constant, +http-method-not-allowed+: Public constants
Constant, +http-moved-permanently+: Public constants
Constant, +http-moved-temporarily+: Public constants
Constant, +http-multi-status+: Public constants
Constant, +http-multiple-choices+: Public constants
Constant, +http-no-content+: Public constants
Constant, +http-non-authoritative-information+: Public constants
Constant, +http-not-acceptable+: Public constants
Constant, +http-not-found+: Public constants
Constant, +http-not-implemented+: Public constants
Constant, +http-not-modified+: Public constants
Constant, +http-ok+: Public constants
Constant, +http-partial-content+: Public constants
Constant, +http-payment-required+: Public constants
Constant, +http-precondition-failed+: Public constants
Constant, +http-proxy-authentication-required+: Public constants
Constant, +http-request-entity-too-large+: Public constants
Constant, +http-request-time-out+: Public constants
Constant, +http-request-uri-too-large+: Public constants
Constant, +http-requested-range-not-satisfiable+: Public constants
Constant, +http-reset-content+: Public constants
Constant, +http-see-other+: Public constants
Constant, +http-service-unavailable+: Public constants
Constant, +http-switching-protocols+: Public constants
Constant, +http-temporary-redirect+: Public constants
Constant, +http-unsupported-media-type+: Public constants
Constant, +http-use-proxy+: Public constants
Constant, +http-version-not-supported+: Public constants
Constant, +implementation-link+: Private constants
Constant, +latin-1+: Private constants
Constant, +month-names+: Private constants
Constant, +new-connection-wait-time+: Private constants
Constant, +toot-project-url+: Private constants
Constant, +utf-8+: Private constants
content-length: Private classes
content-stream: Private classes
content-type: Private classes
cookies-in: Private classes
cookies-out: Private classes

D
destination: Public classes
domain: Private classes

E
error-generator: Public classes
expires: Private classes

G
get-parameters: Private classes

H
handler: Public classes
handlers: Private classes
headers-sent-p: Private classes
http-only: Private classes

L
listen-backlog: Public classes
listen-socket: Public classes
lock: Public classes

M
max-accept-count: Private classes
max-thread-count: Private classes
message-logger: Public classes

N
name: Public classes
name: Private classes

O
operation: Private conditions

P
path: Private classes
path-checker: Public classes
persistent-connections-p: Public classes
port: Public classes
post-parameters: Private classes

R
read-timeout: Public classes
remote-addr: Private classes
remote-port: Private classes
request-count: Private classes
request-count-lock: Private classes
request-headers: Private classes
request-method: Private classes
request-uri: Private classes
requests-in-progress: Public classes
response-charset: Private classes
response-headers: Private classes
response-status-code: Private conditions
root: Public classes

S
secure: Private classes
server-protocol: Private classes
shutdown-lock: Public classes
shutdown-p: Public classes
shutdown-queue: Public classes
Slot, acceptor: Private classes
Slot, acceptor-process: Private classes
Slot, access-loggger: Public classes
Slot, address: Public classes
Slot, body: Private conditions
Slot, body-octets: Private classes
Slot, body-stream: Private classes
Slot, close-stream-p: Private classes
Slot, content-length: Private classes
Slot, content-stream: Private classes
Slot, content-type: Private classes
Slot, cookies-in: Private classes
Slot, cookies-out: Private classes
Slot, destination: Public classes
Slot, domain: Private classes
Slot, error-generator: Public classes
Slot, expires: Private classes
Slot, get-parameters: Private classes
Slot, handler: Public classes
Slot, handlers: Private classes
Slot, headers-sent-p: Private classes
Slot, http-only: Private classes
Slot, listen-backlog: Public classes
Slot, listen-socket: Public classes
Slot, lock: Public classes
Slot, max-accept-count: Private classes
Slot, max-thread-count: Private classes
Slot, message-logger: Public classes
Slot, name: Public classes
Slot, name: Private classes
Slot, operation: Private conditions
Slot, path: Private classes
Slot, path-checker: Public classes
Slot, persistent-connections-p: Public classes
Slot, port: Public classes
Slot, post-parameters: Private classes
Slot, read-timeout: Public classes
Slot, remote-addr: Private classes
Slot, remote-port: Private classes
Slot, request-count: Private classes
Slot, request-count-lock: Private classes
Slot, request-headers: Private classes
Slot, request-method: Private classes
Slot, request-uri: Private classes
Slot, requests-in-progress: Public classes
Slot, response-charset: Private classes
Slot, response-headers: Private classes
Slot, response-status-code: Private conditions
Slot, root: Public classes
Slot, secure: Private classes
Slot, server-protocol: Private classes
Slot, shutdown-lock: Public classes
Slot, shutdown-p: Public classes
Slot, shutdown-queue: Public classes
Slot, ssl-certificate-file: Public classes
Slot, ssl-private-key-file: Public classes
Slot, ssl-private-key-password: Public classes
Slot, status-code: Private classes
Slot, taskmaster: Public classes
Slot, tmp-files: Private classes
Slot, value: Private classes
Slot, wait-lock: Private classes
Slot, wait-queue: Private classes
Slot, worker-thread-name-format: Private classes
Slot, write-timeout: Public classes
Special Variable, *debug-errors-p*: Public special variables
Special Variable, *default-charset*: Private special variables
Special Variable, *default-connection-timeout*: Public special variables
Special Variable, *default-content-type*: Public special variables
Special Variable, *default-external-format*: Public special variables
Special Variable, *default-logger*: Private special variables
Special Variable, *default-max-accept-count*: Private special variables
Special Variable, *default-max-thread-count*: Private special variables
Special Variable, *error-css*: Private special variables
Special Variable, *header-stream*: Public special variables
Special Variable, *http-reason-phrase-map*: Private special variables
Special Variable, *hyperdoc-base-uri*: Private special variables
Special Variable, *lisp-errors-log-level*: Public special variables
Special Variable, *lisp-warnings-log-level*: Public special variables
Special Variable, *log-lisp-backtraces-p*: Public special variables
Special Variable, *log-lisp-errors-p*: Public special variables
Special Variable, *log-lisp-warnings-p*: Public special variables
Special Variable, *mime-type-hash*: Private special variables
Special Variable, *mime-type-list*: Private special variables
Special Variable, *show-lisp-backtraces-p*: Public special variables
Special Variable, *show-lisp-errors-p*: Public special variables
Special Variable, *test-acceptor*: Private special variables
Special Variable, *tmp-counter*: Private special variables
Special Variable, *tmp-counter-lock*: Private special variables
Special Variable, *tmp-directory*: Public special variables
Special Variable, *toot-version*: Private special variables
ssl-certificate-file: Public classes
ssl-private-key-file: Public classes
ssl-private-key-password: Public classes
status-code: Private classes

T
taskmaster: Public classes
tmp-files: Private classes

V
value: Private classes

W
wait-lock: Private classes
wait-queue: Private classes
worker-thread-name-format: Private classes
write-timeout: Public classes


A.4 Data types

Jump to:   A   C   D   F   H   L   M   O   P   R   S   T   U  
Index Entry  Section

A
acceptor: Public classes
api.lisp: The toot/api․lisp file

C
Class, acceptor: Public classes
Class, cookie: Private classes
Class, request: Private classes
Class, search-handler: Private classes
Class, single-threaded-taskmaster: Private classes
Class, static-file-handler: Public classes
Class, stream-logger: Public classes
Class, thread-per-connection-taskmaster: Private classes
Condition, operation-not-implemented: Private conditions
Condition, parameter-error: Private conditions
Condition, request-aborted: Private conditions
Condition, toot-condition: Private conditions
Condition, toot-error: Private conditions
Condition, toot-simple-error: Private conditions
Condition, toot-simple-warning: Private conditions
Condition, toot-warning: Private conditions
conditions.lisp: The toot/conditions․lisp file
cookie: Private classes
cookie.lisp: The toot/cookie․lisp file

D
documentation.lisp: The toot/documentation․lisp file

F
File, api.lisp: The toot/api․lisp file
File, conditions.lisp: The toot/conditions․lisp file
File, cookie.lisp: The toot/cookie․lisp file
File, documentation.lisp: The toot/documentation․lisp file
File, http.lisp: The toot/http․lisp file
File, log.lisp: The toot/log․lisp file
File, mime-types.lisp: The toot/mime-types․lisp file
File, packages.lisp: The toot/packages․lisp file
File, rfc2388.lisp: The toot/rfc2388․lisp file
File, set-timeouts.lisp: The toot/set-timeouts․lisp file
File, specials.lisp: The toot/specials․lisp file
File, taskmaster.lisp: The toot/taskmaster․lisp file
File, tests.lisp: The toot/tests․lisp file
File, toot.asd: The toot/toot․asd file
File, util.lisp: The toot/util․lisp file

H
http.lisp: The toot/http․lisp file

L
log.lisp: The toot/log․lisp file

M
mime-types.lisp: The toot/mime-types․lisp file

O
operation-not-implemented: Private conditions

P
Package, toot: The toot package
Package, toot-asd: The toot-asd package
Package, toot-tests: The toot-tests package
packages.lisp: The toot/packages․lisp file
parameter-error: Private conditions

R
request: Private classes
request-aborted: Private conditions
rfc2388.lisp: The toot/rfc2388․lisp file

S
search-handler: Private classes
set-timeouts.lisp: The toot/set-timeouts․lisp file
single-threaded-taskmaster: Private classes
specials.lisp: The toot/specials․lisp file
static-file-handler: Public classes
stream-logger: Public classes
System, toot: The toot system

T
taskmaster.lisp: The toot/taskmaster․lisp file
tests.lisp: The toot/tests․lisp file
thread-per-connection-taskmaster: Private classes
toot: The toot system
toot: The toot package
toot-asd: The toot-asd package
toot-condition: Private conditions
toot-error: Private conditions
toot-simple-error: Private conditions
toot-simple-warning: Private conditions
toot-tests: The toot-tests package
toot-warning: Private conditions
toot.asd: The toot/toot․asd file

U
util.lisp: The toot/util․lisp file