The http2 Reference Manual

This is the http2 Reference Manual, version 2.0.2, generated automatically by Declt version 4.0 beta 2 "William Riker" on Sun Jul 13 20:35:29 2025 GMT+0.

Table of Contents


1 Introduction


2 Systems

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


2.1 http2

Otherwise empty system that depends on - and thus loads when loaded - both HTTP/2 client and HTTP/2 server.

The system also supports TEST-OP to run the test suite.

Version

2.0.2

Dependencies
Source

http2.asd.

Child Component

overview.lisp (file).


2.2 http2/client

An example of http/2 client

Author

Tomáš Zellerin <>

License

MIT

Version

2.0.2

Dependencies
Source

http2.asd.

Child Components

2.3 http2/stream-based

HTTP2 protocol implementation

Author

Tomáš Zellerin <>

License

MIT

Dependencies
Source

http2.asd.

Child Components

2.4 http2/core

HTTP2 protocol implementation

Author

Tomáš Zellerin <>

License

MIT

Dependencies
  • trivial-gray-streams (system).
  • flexi-streams (system).
  • anaphora (system).
  • gzip-stream (system).
  • alexandria (system).
  • trivial-utf-8 (system).
  • chipz (system).
  • mgl-pax (system).
  • cl+ssl (system).
Source

http2.asd.

Child Components

2.5 http2/server

Asyncronous polling implementations of HTTP2 server.

Author

Tomáš Zellerin <>

Version

2.0.2

Dependencies
Source

http2.asd.

Child Components

2.6 http2/server/threaded

An example of http/2 server

Author

Tomáš Zellerin <>

License

MIT

Dependencies
Source

http2.asd.

Child Components

2.7 http2/server/shared

An example of http/2 server

Author

Tomáš Zellerin <>

License

MIT

Dependencies
Source

http2.asd.

Child Components

2.8 http2/openssl

Version

0.1

Defsystem Dependency

cffi-grovel (system).

Dependencies
  • cffi (system).
  • mgl-pax (system).
  • anaphora (system).
  • cl+ssl (system).
Source

http2.asd.

Child Components

2.9 http2/server/poll

Asyncronous polling implementations of HTTP2 server.

Author

Tomáš Zellerin <>

Dependencies
Source

http2.asd.

Child Components

3 Modules

Modules are listed depth-first from the system components tree.


3.1 http2/stream-based/core

Dependency

package.lisp (file).

Source

http2.asd.

Parent Component

http2/stream-based (system).

Child Components

3.2 http2/core/core

Dependency

package.lisp (file).

Source

http2.asd.

Parent Component

http2/core (system).

Child Components

4 Files

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


4.1 Lisp


4.1.1 http2/http2.asd

Source

http2.asd.

Parent Component

http2 (system).

ASDF Systems

4.1.2 http2/overview.lisp

Source

http2.asd.

Parent Component

http2 (system).

Internals

4.1.3 http2/client/client-utils.lisp

Source

http2.asd.

Parent Component

http2/client (system).

Public Interface
Internals

4.1.4 http2/client/client.lisp

Dependency

client-utils.lisp (file).

Source

http2.asd.

Parent Component

http2/client (system).

Public Interface
Internals

4.1.6 http2/stream-based/core/stream-based-connections.lisp

Source

http2.asd.

Parent Component

core (module).

Public Interface
Internals

@stream-based-connection (special variable).


4.1.7 http2/stream-based/core/payload-streams.lisp

Source

http2.asd.

Parent Component

core (module).

Public Interface
Internals

4.1.9 http2/core/core/utils.lisp

Source

http2.asd.

Parent Component

core (module).

Public Interface
Internals

4.1.10 http2/core/core/pipe.lisp

Source

http2.asd.

Parent Component

core (module).

Public Interface
Internals

4.1.11 http2/core/core/errors.lisp

Source

http2.asd.

Parent Component

core (module).

Public Interface
Internals

4.1.12 http2/core/core/hpack.lisp

Source

http2.asd.

Parent Component

core (module).

Public Interface
Internals

4.1.13 http2/core/core/classes.lisp

Source

http2.asd.

Parent Component

core (module).

Public Interface
Internals

4.1.14 http2/core/core/frames.lisp

Source

http2.asd.

Parent Component

core (module).

Public Interface
Internals

4.1.15 http2/core/core/frames/http2-stream.lisp

Source

http2.asd.

Parent Component

core (module).

Public Interface
Internals

4.1.16 http2/core/core/frames/rst-and-goaway.lisp

Source

http2.asd.

Parent Component

core (module).

Public Interface
Internals

4.1.17 http2/core/core/frames/headers.lisp

Source

http2.asd.

Parent Component

core (module).

Public Interface
Internals

4.1.18 http2/core/core/frames/data.lisp

Source

http2.asd.

Parent Component

core (module).

Public Interface
Internals

4.1.19 http2/core/core/frames/settings.lisp

Source

http2.asd.

Parent Component

core (module).

Public Interface
Internals

+settings-frame+ (constant).


4.1.20 http2/core/core/frames/push-promise.lisp

Source

http2.asd.

Parent Component

core (module).

Public Interface
Internals

+push-promise-frame+ (constant).


4.1.21 http2/core/core/frames/altsvc.lisp

Source

http2.asd.

Parent Component

core (module).

Public Interface
Internals

4.1.22 http2/core/core/frames/ping.lisp

Source

http2.asd.

Parent Component

core (module).

Public Interface
Internals

4.1.23 http2/core/core/binary-payload.lisp

Source

http2.asd.

Parent Component

core (module).

Public Interface
Internals

4.1.24 http2/core/core/gzip-decode.lisp

Source

http2.asd.

Parent Component

core (module).

Public Interface
Internals

4.1.25 http2/core/core/utf8.lisp

Source

http2.asd.

Parent Component

core (module).

Public Interface
Internals

4.1.26 http2/server/poll-grovel.lisp

Source

http2.asd.

Parent Component

http2/server (system).


4.1.27 http2/server/poll-openssl.lisp

Dependency

poll-grovel.lisp (file).

Source

http2.asd.

Parent Component

http2/server (system).

Public Interface
Internals

process-ssl-errors (function).


4.1.28 http2/server/poll-server.lisp

Dependency

poll-openssl.lisp (file).

Source

http2.asd.

Parent Component

http2/server (system).

Public Interface
Internals

4.1.29 http2/server/threaded/../tls/server.lisp

Source

http2.asd.

Parent Component

http2/server/threaded (system).

Internals

4.1.30 http2/server/threaded/threaded.lisp

Dependency

../tls/server.lisp (file).

Source

http2.asd.

Parent Component

http2/server/threaded (system).

Public Interface
Internals

4.1.31 http2/server/shared/socket-dispatcher.lisp

Source

http2.asd.

Parent Component

http2/server/shared (system).

Public Interface
Internals

4.1.32 http2/server/shared/dispatch.lisp

Dependency

socket-dispatcher.lisp (file).

Source

http2.asd.

Parent Component

http2/server/shared (system).

Public Interface
Internals

4.1.33 http2/server/shared/scheduler.lisp

Dependency

dispatch.lisp (file).

Source

http2.asd.

Parent Component

http2/server/shared (system).

Public Interface
Internals

4.1.35 http2/openssl/openssl-grovel.lisp

Source

http2.asd.

Parent Component

http2/openssl (system).


4.1.36 http2/openssl/openssl.lisp

Source

http2.asd.

Parent Component

http2/openssl (system).

Public Interface
Internals

4.1.37 http2/server/poll/poll-grovel.lisp

Source

http2.asd.

Parent Component

http2/server/poll (system).


4.1.38 http2/server/poll/poll-openssl.lisp

Dependency

poll-grovel.lisp (file).

Source

http2.asd.

Parent Component

http2/server/poll (system).

Public Interface
Internals

process-ssl-errors (function).


4.1.39 http2/server/poll/poll-server.lisp

Dependency

poll-openssl.lisp (file).

Source

http2.asd.

Parent Component

http2/server/poll (system).

Public Interface
Internals

5 Packages

Packages are listed by definition order.


5.1 http2/stream-overlay

Source

package.lisp.

Use List
Used By List
Public Interface
Internals

5.2 http2/client

HTTP/2 client functions, in particular, RETRIEVE-URL.

Source

package.lisp.

Use List
Used By List

http2.

Public Interface
Internals

5.3 http2/core

Source

package.lisp.

Use List
Used By List
Public Interface
Internals

5.4 http2/openssl

Source

package.lisp.

Use List
  • cffi.
  • common-lisp.
Used By List
Public Interface
Internals

5.5 http2/hpack

Source

package.lisp.

Use List
Used By List

http2/core.

Public Interface
Internals

5.6 http2

Source

package.lisp.

Use List
Internals

5.7 http2/utils

Source

package.lisp.

Use List
  • common-lisp.
  • mgl-pax.
Used By List
Public Interface
Internals

5.8 http2/cl+ssl

Source

package.lisp.

Use List

5.9 http2/server

HTTP/2 server functions - for example START to start the server and DEFINE-EXACT-HANDLER and HANDLER macro to define content to serve.

Source

package.lisp.

Nicknames
  • http2/server/shared
  • http2/server/poll
  • http2/server/threaded
Use List
Used By List

http2.

Public Interface
Internals

6 Definitions

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


6.1 Public Interface


6.1.1 Special variables

Special Variable: *buffer*

Preallocated buffer for reading from stream. This is initialized for each connection depending on the dispatch method.

Package

http2/server.

Source

socket-dispatcher.lisp.

Special Variable: *default-client-connection-class*

Default class to be used for new connections in FETCH-RESOURCE.

Package

http2/client.

Source

client.lisp.

Special Variable: *no-client-poll-timeout*

Default timeout in seconds to use when there is no client (to limit time to a client to connect).

This is supposed to be used primarily in the automated tests, where you do not
want indefinite waits in case of a problem.

On timeout signals POLL-TIMEOUT error.

Default means an indefinite wait.

Package

http2/server.

Source

poll-server.lisp.

Special Variable: *poll-timeout*

Default timeout in seconds to use for poll when there are connected clients, but no client communication.

On timeout signals POLL-TIMEOUT error.

Default means an indefinite wait.

Package

http2/server.

Source

poll-server.lisp.

Special Variable: *use-huffman-coding-by-default*

Is set, the headers are by default huffman-encoded. Special value :maybe means whatever is shorter, plain encoding in case of draw.

Package

http2/hpack.

Source

hpack.lisp.

Special Variable: *vanilla-server-dispatcher*

Default value of the server dispatcher. One of DETACHED-TLS-THREADED-DISPATCHER ot POLL-DISPATCHER

Package

http2/server.

Source

socket-dispatcher.lisp.

Special Variable: +client-preface-start+

The client connection preface starts with a sequence of 24 octets, which in hex notation is this. That is, the connection preface starts with the string "PRI * HTTP/2.0rnrnSMrnrn").

Package

http2/core.

Source

classes.lisp.


6.1.2 Macros

Macro: compile-payload-from-stream ((stream-name charset gzip) &body body)

Run BODY with STREAM-NAME bound to a stream named STREAM-NAME. Return octets that represent text written to that stream given specified CHARSET, possibly compressed.

“‘cl-transcript
(http2/core:compile-payload-from-stream (foo :utf8 nil) (princ "Hello😃" foo)) => #(72 101 108 108 111 240 159 152 131)
“‘

Package

http2/core.

Source

binary-payload.lisp.

Macro: constant-handler ((flexi-stream-name charset gzip headers) &body body)

Run BODY to print the output to FLEXI-STREAM-NAME in compile time. This constant (static) page is served every time as-is.

Package

http2/server.

Source

dispatch.lisp.

Macro: define-exact-handler (path fn &optional connection)

Define function to run when peer closes http stream on CONNECTION (or any server defined in future) if the path of the stream is PATH.

Package

http2/server.

Source

dispatch.lisp.

Macro: define-prefix-handler (prefix fn &optional connection)

Define function to run when peer closes http stream on CONNECTION (or any server defined in future) if the path of the stream starts with PREFIX.

Package

http2/server.

Source

dispatch.lisp.

Macro: handler ((flexi-stream-name charset gzip) &body body)

Return a HANDLER type function.

This handler, when called, runs BODY in a context where

- FLEXI-STREAM-NAME is bound to an open flexi stream that can be written to (to write response). On background, written text is converted from CHARSET to octets, possibly compressed by GZIP and split into frames, - and two lexical functions are defined, SEND-HEADERS and SEND-GOAWAY.

The SEND-HEADERS sends the provided headers to the STREAM.

The SEND-GOAWAY sends go away frame to the client to close connection.

The handler body needs to close the underlying stream if the response is
actually to be sent, or possibly schedule sending more data for later.

Package

http2/server.

Source

dispatch.lisp.

Macro: with-ssl-context ((ctx dispatcher) &body body)

Run body with SSL context created by MAKE-SSL-CONTEXT in CTX.

Package

http2/openssl.

Source

openssl.lisp.


6.1.3 Ordinary functions

Function: aref/wide (sequence start size)

Same as read-bytes, but from a sequence

Package

http2/utils.

Source

utils.lisp.

Function: (setf aref/wide) (sequence start size)
Package

http2/utils.

Source

utils.lisp.

Function: bio-new (bio-method)
Package

http2/openssl.

Source

openssl.lisp.

Function: bio-read% (bio-method data dlen)
Package

http2/openssl.

Source

openssl.lisp.

Function: bio-s-mem ()
Package

http2/openssl.

Source

openssl.lisp.

Function: bio-should-retry (wbio)
Package

http2/openssl.

Source

poll-openssl.lisp.

Function: bio-write (bio-method data dlen)
Package

http2/openssl.

Source

openssl.lisp.

Function: callback-on-server (fn &key thread-name)

Return a function that takes one parameter, URL, as a parameter and calls FN on it in a separate thread. Then it kills the server by invoking KILL-SERVER restart.

This is to be used as callback on an open server for testing it.

Package

http2/server.

Source

socket-dispatcher.lisp.

Function: close-http2-stream (stream)

Close the http2 stream.

It marks the stream as closed, which is maybe unnecessary, as the stream is immediately removed from the list of streams of its connection. This is consistent with the concept that any stream not in the connection streams explicitly is either idle (if above last-id-seen or id-to-use, depending on even/odd) or closed - see FIND-HTTP-STREAM-BY-ID.

The removal of unused streams is necessary to prevent leakage for big requests - other solution would be to send go-away after the number of streams is too high; however some clients (e.g., h2load) do not retry when they receive this.

This stream removal should be done with lock on the appropriate stream when in multiple threads.

Package

http2/core.

Source

classes.lisp.

Function: compile-headers (headers context)

Compile headers with given CONTEXT to an array. Context can be NIL; if it is
not, the headers are stored in the dynamic table and the CONTEXT it is updated
appropriately.

Each header is a list of form (NAME VALUE &KEY HUFFMAN INDEX):

- NO-INDEX indicates that it should be stored in the dynamic table (if possible), should not, or use the NEVER encoding (value :never), - HUFFMAN to use huffman encoding

Package

http2/hpack.

Source

hpack.lisp.

Function: compute-poll-timeout-value (human-form)

Compute poll timeout from "nice" value (seconds or :∞) to value accepted by poll (miliseconds or -1)

Package

http2/server.

Source

poll-server.lisp.

Function: connect-to-tls-server (host &key port sni verify alpn-protocols)

Return a client TLS stream to HOST on PORT, created using SNI and with specified ALPN protocol (H2 by default).

Package

http2/client.

Source

client-utils.lisp.

Function: connection-error (class connection &rest args)

Send \GOAWAY frame to the PEER and raise the CONNECTION-ERROR[condition]. NETWORK-STREAM used.

Package

http2/core.

Source

frames/rst-and-goaway.lisp.

Function: create-new-local-stream (connection &optional pars)

Create new local stream of default class on CONNECTION. Additional PARS are passed to the make-instance

Package

http2/core.

Source

frames/http2-stream.lisp.

Function: create-server (port dispatcher &rest keys &key host &allow-other-keys)

Create a server on HOST and PORT that handles connections using DISPATCH-METHOD.

Establishes restart KILL-SERVER to close the TCP connection and return.

Calls DO-NEW-CONNECTION to actually handle the connections after the callback returns This function also receives the listening socket and TLS and DISPATCH-METHOD as parameters.

Additional keyword parameters are allowed; they are defined and consumed by the dispatcher.

Package

http2/server.

Source

socket-dispatcher.lisp.

Function: do-decoded-headers (fn context data &optional start end)

Call FN on each header decoded from DATA between START and END.

Return nil if the complete headers were processed, or index to first unprocessed octet.

Package

http2/hpack.

Source

hpack.lisp.

Function: drakma-style-stream-values (raw-stream &key close-stream)

Return values as from DRAKMA:HTTP-REQUEST. Some of the values are meaningless,
but kept for compatibility purposes.

- body of the reply
- status code as integer
- alist of headers
- the URL the reply came from (bogus value)
- the connection the reply comes from (not network stream as in Drakma, but same purpose - can be reused for ruther queries.) - whether connection is closed (passed as parameter)
- reason phrase (bogus value)

Package

http2/client.

Source

client.lisp.

Function: encrypt-some* (ssl pointer size)
Package

http2/openssl.

Source

poll-openssl.lisp.

Function: err-reason-error-string (e)
Package

http2/openssl.

Source

openssl.lisp.

Function: extract-charset-from-content-type (content-type)

Guess charset from the content type. NIL for binary data.

Package

http2/client.

Source

client-utils.lisp.

Function: find-certificate-file (keypath)

Find a certificate file for private key stored in KEYPATH.

Try file of same name ending with .crt, or, if the name of private key was privkey.pem, try fullchain.pem (this is what let’s encrypt uses).

Package

http2/server.

Source

socket-dispatcher.lisp.

Function: find-http-stream-by-id (connection id frame-type)

Find HTTP stream in the connection.

Returns either HTTP2-STREAM object (existing or new), CONNECTION or one of IDLE and CLOSED for yet or already nonexistent streams.

Also do some checks on the stream id based on the frame type.

Package

http2/core.

Source

frames/http2-stream.lisp.

Function: find-private-key-file (hostname)

Find the private key for HOSTNAME or create it.

Look for
- /etc/letsencrypt/live/<hostname>privkey.pem (this is where let’s encrypt stores them) - file named <hostname>.key in /tmp (ad-hoc generated files)

If it does not exist, generate the key and self signed cert in /tmp/

Package

http2/server.

Source

socket-dispatcher.lisp.

Function: find-setting-by-id (id)
Package

http2/utils.

Source

utils.lisp.

Function: find-setting-code (name)

Find setting name by code

Package

http2/utils.

Source

utils.lisp.

Function: get-error-name (code)

Get HTTP/2 error name from the error code.

Package

http2/utils.

Source

errors.lisp.

Function: handle-ssl-errors* (ssl wbio ret)

Check RET value of a openssl call. Either raise a condition, or return a state to add to the client, if any, or nil

Package

http2/openssl.

Source

poll-openssl.lisp.

Function: http-stream-error (e stream &rest args)

We detected a HTTP2-STREAM-ERROR in a peer frame. So we send a RST frame, raise appropriate warning in case someone is interested, close affected stream, and continue.

Package

http2/core.

Source

frames/rst-and-goaway.lisp.

Function: http-stream-to-string (http-stream)

HTTP-STREAM should be a TEXT-COLLECTING-STREAM.

HTTP-STREAM-TO-VECTOR then assembles the text from individual chunks.

Package

http2/core.

Source

binary-payload.lisp.

Function: is-utf8-p (headers)

Test headers to see if the encoding is UTF-8.

Package

http2/core.

Source

utf8.lisp.

Function: kill-server (&optional result)

Kill server by invoking KILL-SERVER restart, if it exists.

Package

http2/server.

Source

socket-dispatcher.lisp.

Function: make-full-pipe ()

Two values, each representing one end of a full binary pipe: writes to ones are read from the other.

Package

http2/utils.

Source

pipe.lisp.

Function: make-initialized-octet-buffer (content)
Package

http2/utils.

Source

utils.lisp.

Function: make-octet-buffer (size)
Package

http2/utils.

Source

utils.lisp.

Function: make-pipe (&key buffer-size)

Two values, each representing one end of a freshly created one-way binary pipe: writer and reader. They share the buffer.

Package

http2/utils.

Source

pipe.lisp.

Function: make-transport-output-stream (raw-stream charset gzip)

An OUTPUT-STREAM built atop RAW STREAM with added text to binary encoding using charset (as understood by flexi-streams) and possibly gzip compression.

Package

http2/core.

Source

payload-streams.lisp.

Function: maybe-create-certificate (key certificate &key system base)

Generate key and a self-signed certificate to it for localhost using openssl cli.

Package

http2/server.

Source

socket-dispatcher.lisp.

Function: maybe-end-stream (flags stream)

Close the STREAM if FLAGS indicates so. It changes state to either of

Package

http2/core.

Source

frames/http2-stream.lisp.

Function: open-http2-stream (connection headers &key end-stream end-headers stream-pars)

Open HTTP/2 stream (typically, from client side) by sending headers.

- STREAM-PARS are used as parameters for creating new stream instance.

- HEADERS are headers to be send for the client. You can use REQUEST-HEADERS to
get necessary headers.

- END-HEADERS is aflag to the server that no more headers would be sent; true by default.

- END-STREAM is a flag to the server that there would be no payload.

Package

http2/core.

Source

classes.lisp.

Function: parse-altsvc-frame (http-stream flags)
Package

http2/core.

Source

frames/altsvc.lisp.

Function: parse-client-preface (connection buffer)

Parse client preface.

Check that buffer contains a client preface, or raise an error.

Then write the initial settings frame, and expect normal frame. Actually, this should be a settings frame, but this is not enforced now.

Package

http2/core.

Source

classes.lisp.

Function: parse-continuation-frame (http-stream flags)
Package

http2/core.

Source

frames/headers.lisp.

Function: parse-data-frame (active-stream flags)
Package

http2/core.

Source

frames/data.lisp.

Function: parse-frame-header (connection header &optional start end)

Parse header (9 octets array) and return two values, a function to parse following data (that can be again #’PARSE-FRAME-HEADER if there is no payload), and size of data that the following function expects.

Package

http2/core.

Source

frames.lisp.

Function: parse-goaway-frame (http-stream flags)
Package

http2/core.

Source

frames/rst-and-goaway.lisp.

Function: parse-headers-frame (active-stream flags)

Read incoming headers and call ADD-HEADER callback for each header.

Call PROCESS-END-HEADERS and PEER-ENDS-HTTP-STREAM (in this order) if relevant flag is set.

At the beginning, invoke APPLY-STREAM-PRIORITY if priority was present.

Package

http2/core.

Source

frames/headers.lisp.

Function: parse-ping-frame (http-stream flags)
Package

http2/core.

Source

frames/ping.lisp.

Function: parse-priority-frame (http-stream flags)
Package

http2/core.

Source

frames/headers.lisp.

Function: parse-push-promise-frame (http-stream flags)
Package

http2/core.

Source

frames/push-promise.lisp.

Function: parse-rst-stream-frame (http-stream flags)
Package

http2/core.

Source

frames/rst-and-goaway.lisp.

Function: parse-settings-frame (http-stream flags)
Package

http2/core.

Source

frames/settings.lisp.

Function: parse-window-update-frame (http-stream flags)
Package

http2/core.

Source

frames/data.lisp.

Function: process-pending-frames (connection &optional just-pending initial-action initial-size)

@FRAME-HANDLER built atop CL streams.

Read and process frames on the input stream taken from the CONNECTION’s network-stream.

Finish normally when either

- peer closes connection (END-OF-FILE, CONNECTION-ERROR condition or CL+SSL::SSL-ERROR was signalled), or - JUST-PENDING was true, we are at a frame border and there is no additional input on the stream

This is to be called on client when the initial request was send, or on server
to serve requests.

May block.

Package

http2/stream-overlay.

Source

stream-based-connections.lisp.

Function: read-frame (connection &optional network-stream)

Read one frame related to the CONNECTION from STREAM. Flush outstanding data to write, read the header and process it.

Package

http2/core.

Source

stream-based-connections.lisp.

Function: redirect-handler (target &key code content-type content)

A handler that emits redirect response with http status being CODE, and optionally provides CONTENT with CONTENT-TYPE.

Package

http2/server.

Source

dispatch.lisp.

Function: request-headers (method path authority &key scheme content-type gzip-content additional-headers)

Encode standard request headers. The obligatory headers are passed as the positional arguments. ADDITIONAL-HEADERS are a list of conses, each containing header name and value.

Package

http2/client.

Source

client.lisp.

Function: retrieve-url (url &rest pars &key method content content-fn additional-headers content-type charset gzip-content &allow-other-keys)

Retrieve URL (a string) through HTTP/2 over TLS.

See FETCH-RESOURCE for documentation of the keyword parameters.

Example:

“‘
(http2/client:retrieve-url "https://example.com")
==> "<!doctype html>
... <html>
... <head>
... <title>Example Domain</title>
...
... <meta charset="utf-8" />
... <meta http-equiv="Content-type" content="text/html; charset=utf-8" /> ... <meta name="viewport" conten...[sly-elided string of length 1256]" ==> 200 (8 bits, #xC8, #o310, #b11001000)
==> (("content-length" . "1256") ("x-cache" . "HIT") ("vary" . "Accept-Encoding") ... ("server" . "ECS (bsb/27E0)")
... ("last-modified" . "Thu, 17 Oct 2019 07:18:26 GMT")
... ("expires" . "Thu, 28 Sep 2023 19:38:44 GMT")
... ("etag" . "\"3147526947+ident\"") ("date" . "Thu, 21 Sep 2023 19:38:44 GMT") ... ("content-type" . "text/html; charset=UTF-8")
... ("cache-control" . "max-age=604800") ("age" . "151654"))
==> "/"
==> #<VANILLA-CLIENT-CONNECTION >
==> NIL
==> "HTTP2 does not provide reason phrases"
“‘

See DRAKMA-STYLE-STREAM-VALUES for meaning of the individual values.

Package

http2/client.

Source

client.lisp.

Function: run (port &rest pars &key certificate-file private-key-file)

Run a default HTTP/2 server on PORT on foreground.

Package

http2/server.

Source

dispatch.lisp.

Function: run-scheduler-in-thread (scheduler)

Make a thread that runs tasks as they mature. CONTINUE restart can be used during the sleep to re-asses next tasks.

Package

http2/server.

Source

scheduler.lisp.

Function: scheduler-empty-p (scheduler)
Package

http2/server.

Source

scheduler.lisp.

Function: send-goaway (code debug-data)

Start closing connection, sending CODE and DEBUG-DATA in the go-away frame to peer. Must be called from inside of HANDLER macro.

Package

http2/server.

Source

dispatch.lisp.

Function: send-headers (stream headers &key end-stream end-headers &allow-other-keys)

Send HEADERS to a HTTP2 stream. The stream is returned.

The END-HEADERS and END-STREAM allow to set the appropriate flags.

Inside HANDLER macro, this names a function that has the STREAM argument implicit and only HEADERS and key parameters are to be provided.

Package

http2/core.

Source

classes.lisp.

Function: send-text-handler (text &key content-type gzip additional-headers)

A handler that returns TEXT as content of CONTENT-TYPE.

TEXT is evaluated when handler is defined, not when handler is invoked. For content that can change on individual invocations write to the stream.

ADDITIONAL-HEADERS are sent along with :status and content-type headers.

Package

http2/server.

Source

dispatch.lisp.

Function: ssl-accept (ssl)
Package

http2/openssl.

Source

openssl.lisp.

Function: ssl-free (ssl)
Package

http2/openssl.

Source

openssl.lisp.

Function: ssl-is-init-finished (ssl)
Package

http2/openssl.

Source

openssl.lisp.

Function: ssl-new (bio-method)
Package

http2/openssl.

Source

openssl.lisp.

Function: ssl-read% (ssl buffer bufsize)
Package

http2/openssl.

Source

openssl.lisp.

Function: ssl-set-accept-state (ssl)
Package

http2/openssl.

Source

openssl.lisp.

Function: ssl-set-bio (ssl rbio wbio)
Package

http2/openssl.

Source

openssl.lisp.

Function: start (port &rest args &key host dispatcher certificate-file private-key-file &allow-other-keys)

Start a default HTTP/2 https server on PORT on background.

Returns two values with a detached (see below) dispatcher, which is default:

- Server instance (that is appropriate parameter for stop)
- base url of the server (most useful when PORT was 0 - any free port)

With a non-detached dispatcher the value is not specified.

DISPATCHER parameter sets the dispatcher to use for the server. Dispatchers determine how are new requests handled. Presently there are several sets of dispatchers defined, see @DISPATCHERS

Detached variants run the server in a separate thread and returns immediately after opening the socket.

Value of *VANILLA-SERVER-DISPATCHER* is not specified (set it if you care) but should be presently best detached dispatcher.

FIND-PRIVATE-KEY-FILE and FIND-CERTIFICATE-FILE as default values for the respective parameters try to locate the files.

Package

http2/server.

Source

dispatch.lisp.

Function: stop (&optional server)

Stop a server and remove it from list of servers.

Package

http2/server.

Source

dispatch.lisp.

Function: stop-scheduler-in-thread (scheduler)
Package

http2/server.

Source

scheduler.lisp.

Function: update-dynamic-table-size (context new-size)

Update dynamic table for new size that is smaller than the previous one. This is called after receiving appropriate settings update.

Zero size means evict completely; in this case the new vector can be cleaned

Package

http2/hpack.

Source

hpack.lisp.

Function: url-from-port (port host tls)

Return URL that combines HOST with the port of the SOCKET.

This is to be used as callback fn on an open server for testing it.

Package

http2/server.

Source

socket-dispatcher.lisp.

Function: url-from-socket (socket host tls)

Return URL that combines HOST with the port of the SOCKET.

This is to be used as callback fn on an open server for testing it.

Package

http2/server.

Source

socket-dispatcher.lisp.

Function: vector-from-hex-text (text)

Convert a hex string to an octet vector.

Package

http2/utils.

Source

utils.lisp.

Function: write-ack-setting-frame (connection)

Write ACK settings frame.

ACK (0x1): When set, bit 0 indicates that this frame acknowledges receipt and application of the peer’s SETTINGS frame. When this bit is set, the payload of the SETTINGS frame MUST be empty. Receipt of a SETTINGS frame with the ACK flag set and a length field value other than 0 MUST be treated as a connection error (Section 5.4.1) of type FRAME_SIZE_ERROR. For more information, see Section 6.5.3 ("Settings Synchronization").

Package

http2/core.

Source

frames/settings.lisp.

Function: write-altsvc-frame (stream-or-connection origin alt-svc-field-value &rest keys &key)

See RFC 7838. The ALTSVC HTTP/2 frame advertises the availability of an alternative service to an HTTP/2 client.

“‘ +——————————-+——————————-+ | Origin-Len (16) | Origin? (*) ... +——————————-+——————————-+ | Alt-Svc-Field-Value (*) ... +—————————————————————+ “‘

Package

http2/core.

Source

frames/altsvc.lisp.

Function: write-binary-payload (connection stream payload &key end-stream)

Write binary PAYLOAD to the http2 STREAM.

The payload is written in chunks of peer frame size, and if the available window is not big enough we stop writing and return, making sure that the writing continues when window size increases.

Package

http2/core.

Source

binary-payload.lisp.

Function: write-continuation-frame (stream headers &rest keys &key end-headers end-stream)

“‘

+—————————————————————+
| Header Block Fragment (*) ... +—————————————————————+
“‘

The CONTINUATION frame (type=0x9) is used to continue a sequence of header block fragments (Section 4.3). Any number of CONTINUATION frames can be sent, as long as the preceding frame is on the same stream and is a HEADERS, PUSH_PROMISE, or CONTINUATION frame without the END_HEADERS flag set.

Package

http2/core.

Source

frames/headers.lisp.

Function: write-data-frame (stream data &rest keys &key padded end-stream)

“‘ +—————+———————————————–+ | Data (*) ... +—————————————————————+ “‘

DATA frames (type=0x0) convey arbitrary, variable-length sequences of octets associated with a stream. One or more DATA frames are used, for instance, to carry HTTP request or response payloads.

Package

http2/core.

Source

frames/data.lisp.

Function: write-data-frame-multi (stream data &rest keys &key end-stream)

Write a data frame that includes DATA - that is a sequence of octet vectors.

Package

http2/core.

Source

frames/data.lisp.

Function: write-frame-header-to-vector (vector start length type flags stream-id r)

Write a frame header to an octet buffer.

Package

http2/core.

Source

frames.lisp.

Function: write-goaway-frame (connection last-stream-id error-code debug-data &rest keys &key reserved)

“‘ +-+————————————————————-+ |R| Last-Stream-ID (31) | +-+————————————————————-+ | Error Code (32) | +—————————————————————+ | Additional Debug Data (*) | +—————————————————————+ “‘

The GOAWAY frame (type=0x7) is used to initiate shutdown of a connection or to signal serious error conditions. GOAWAY allows an endpoint to gracefully stop accepting new streams while still finishing processing of previously established streams. This enables administrative actions, like server maintenance.

Package

http2/core.

Source

frames/rst-and-goaway.lisp.

Function: write-headers-frame (stream headers &rest keys &key end-headers end-stream padded priority)

“‘

+-+————-+———————————————–+ |E| Stream Dependency? (31) | +-+————-+———————————————–+ | Weight? (8) | +-+————-+———————————————–+ | Header Block Fragment (*) ... +—————————————————————+ “‘

The HEADERS frame (type=0x1) is used to open a stream (Section 5.1), and additionally carries a header block fragment. HEADERS frames can .be sent on a stream in the "idle", "reserved (local)", "open", or "half-closed (remote)" state.

Package

http2/core.

Source

frames/headers.lisp.

Function: write-ping-frame (connection opaque-data &rest keys &key ack)

The PING frame (type=0x6) is a mechanism for measuring a minimal round-trip time from the sender, as well as determining whether an idle connection is still functional. PING frames can be sent from any endpoint.

“‘ +—————————————————————+ | | | Opaque Data (64) | | | +—————————————————————+ “‘

In addition to the frame header, PING frames MUST contain 8 octets of opaque data in the payload. A sender can include any value it chooses and use those octets in any fashion.

Receivers of a PING frame that does not include an ACK flag MUST send a PING frame with the ACK flag set in response, with an identical payload. PING responses SHOULD be given higher priority than any other frame.

The PING frame defines the following flags:

ACK (0x1): When set, bit 0 indicates that this PING frame is a PING response. An endpoint MUST set this flag in PING responses. An endpoint MUST NOT respond to PING frames containing this flag.

Package

http2/core.

Source

frames/ping.lisp.

Function: write-priority-frame (stream priority &rest keys &key)

The PRIORITY frame (type=0x2) specifies the sender-advised priority
of a stream ([Section 5.3](https://www.rfc-editor.org/rfc/rfc9113.html#name-prioritization)).

“‘
+-+————————————————————-+
|E| Stream Dependency (31) | +-+————-+———————————————–+
| Weight (8) |
+-+————-+
“‘

The payload of a PRIORITY frame contains the following fields:

E: A single-bit flag indicating that the stream dependency is
exclusive.

Stream Dependency: A 31-bit stream identifier for the stream that
this stream depends on.

Weight: An unsigned 8-bit integer representing a priority weight for
the stream. Add one to the value to obtain a
weight between 1 and 256.

Package

http2/core.

Source

frames/headers.lisp.

Function: write-push-promise-frame (stream headers promised-stream-id &rest keys &key end-headers padded reserved)

The PUSH_PROMISE frame (type=0x5) is used to notify the peer endpoint in advance of streams the sender intends to initiate. The PUSH_PROMISE frame includes the unsigned 31-bit identifier of the stream the endpoint plans to create along with a set of headers that provide additional context for the stream. Section 8.2 contains a thorough description of the use of PUSH_PROMISE frames.

“‘ +-+————-+———————————————–+ |R| Promised Stream ID (31) | +-+—————————–+——————————-+ | Header Block Fragment (*) ... +—————————————————————+ “‘

The PUSH_PROMISE frame payload has the following fields:

R: A single reserved bit.

Promised Stream ID: An unsigned 31-bit integer that identifies the stream that is reserved by the PUSH_PROMISE. The promised stream identifier MUST be a valid choice for the next stream sent by the sender (see "new stream identifier" in Section 5.1.1).

Header Block Fragment: A header block fragment (Section 4.3) containing request header fields.

The PUSH_PROMISE frame defines the following flags:

END_HEADERS (0x4): When set, bit 2 indicates that this frame contains an entire header block (Section 4.3) and is not followed by any CONTINUATION frames.

A PUSH_PROMISE frame without the END_HEADERS flag set MUST be followed by a CONTINUATION frame for the same stream. A receiver MUST treat the receipt of any other type of frame or a frame on a different stream as a connection error (Section 5.4.1) of type PROTOCOL_ERROR.

Package

http2/core.

Source

frames/push-promise.lisp.

Function: write-rst-stream-frame (stream error-code &rest keys &key)

The RST_STREAM frame (type=0x3) allows for immediate termination of a stream. RST_STREAM is sent to request cancellation of a stream or to indicate that an error condition has occurred.

“‘ +—————————————————————+ | Error Code (32) | +—————————————————————+ “‘

The RST_STREAM frame contains a single unsigned, 32-bit integer identifying the error code (Section 7). The error code indicates why the stream is being terminated.

The RST_STREAM frame does not define any flags.

Package

http2/core.

Source

frames/rst-and-goaway.lisp.

Function: write-settings-frame (connection settings &rest keys)

“‘
+——————————-+
| Identifier (16) | +——————————-+——————————-+ | Value (32) | +—————————————————————+ “‘

The SETTINGS frame (type=0x4) conveys configuration parameters that affect how endpoints communicate, such as preferences and constraints on peer behavior. The SETTINGS frame is also used to acknowledge the receipt of those parameters. Individually, a SETTINGS parameter can also be referred to as a "setting".

Package

http2/core.

Source

frames/settings.lisp.

Function: write-window-update-frame (stream-or-connection window-size-increment &rest keys &key reserved)

“‘ +-+————————————————————-+ |R| Window Size Increment (31) | +-+————————————————————-+ “‘

The WINDOW_UPDATE frame (type=0x8) is used to implement flow control; see Section 5.2 for an overview. Flow control operates at two levels: on each individual stream and on the entire connection.

Package

http2/core.

Source

frames/data.lisp.


6.1.4 Generic functions

Generic Function: add-header (connection stream name value)
Package

http2/core.

Source

frames/headers.lisp.

Methods
Method: add-header (connection stream name value)
Method: add-header (connection (stream server-stream) (name symbol) value)
Method: add-header (connection (stream client-stream) (name symbol) value)
Method: add-header (connection (stream header-collecting-mixin) name value)
Generic Function: apply-data-frame (stream payload start end)

STREAM (a HTTP/2 stream) should process received PAYLOAD from the data frame from START to END.

Package

http2/core.

Source

frames/data.lisp.

Methods
Method: apply-data-frame ((stream http2-stream-with-input-stream) frame-data start end)
Source

payload-streams.lisp.

Method: apply-data-frame ((stream fallback-all-is-ascii) payload start end)
Source

utf8.lisp.

Method: apply-data-frame ((stream utf8-parser-mixin) payload start end)

When headers satisfy IS-UTF8-P, convert the the binary frame to text (taking care about UTF-8 characters possibly split between frames) and call APPLY-TEXT-DATA-FRAME on it.

Source

utf8.lisp.

Method: apply-data-frame :around ((stream gzip-decoding-mixin) payload start end)

When there is a ‘Content-Encoding: gzip‘ header, decompress the data and call next APPLY-DATA-FRAME methods.

Source

gzip-decode.lisp.

Method: apply-data-frame (stream payload start end)

Just ignore the data and warn about it.

Method: apply-data-frame ((stream body-collecting-mixin) data start end)

Concatenate received data to the BODY slot of the object.

Generic Function: apply-stream-priority (stream exclusive weight stream-dependency)

Called when priority frame - or other frame with priority settings set - arrives. Does nothing, as priorities are deprecated in RFC9113 anyway.

Package

http2/core.

Source

frames/headers.lisp.

Methods
Method: apply-stream-priority (stream exclusive weight stream-dependency)
Generic Function: apply-text-data-frame (stream text)
Package

http2/core.

Methods
Method: apply-text-data-frame ((stream text-collecting-stream) text)
Source

binary-payload.lisp.

Generic Function: apply-window-size-increment (object increment)

Called on window update frame. By default, increases PEER-WINDOW-SIZE slot of the strem or connection.

Package

http2/core.

Source

frames/data.lisp.

Methods
Method: apply-window-size-increment :after ((object multi-part-data-stream) increment)
Source

binary-payload.lisp.

Method: apply-window-size-increment ((object (eql :closed)) increment)
Method: apply-window-size-increment (object increment)
Method: apply-window-size-increment :after ((object flow-control-mixin) increment)
Generic Function: do-goaway (connection error-code last-stream-id debug-data)

Called when a go-away frame is received. By default throws GO-AWAY condition if error was reported.

Package

http2/core.

Source

frames/rst-and-goaway.lisp.

Methods
Method: do-goaway (connection error-code last-stream-id debug-data)
Method: do-goaway ((connection server-http2-connection) error-code last-stream-id debug-data)
Source

classes.lisp.

Generic Function: do-new-connection (listening-socket dispatcher)

This method is implemented for the separate connection types. It waits on new (possibly tls) connection to the LISTENING-SOCKET and start handling it using DISPATCH-METHOD.

See @IMPLEMENTATIONS for available DISPATCH-METHOD.

TLS is either NIL or :TLS. Note that when using HTTP/2 without TLS, most clients have to be instructed to use tls - e.g., –http2-prior-knowledge for curl.

Raise UNSUPPORTED-SERVER-SETUP if there is no relevant method.

Package

http2/server.

Source

socket-dispatcher.lisp.

Methods
Method: do-new-connection (socket (dispatcher poll-dispatcher-mixin))

Handle new connections by adding pollfd to and then polling.

When poll indicates available data, process them with openssl using BIO. Data to the client are sent to SSL to BIO to socket buffer (and again poll to write them).

This in the end does not use usocket, async nor cl+ssl - it is a direct rewrite from C code.

Source

poll-server.lisp.

Method: do-new-connection (listening-socket (dispatcher threaded-dispatcher))
Source

threaded.lisp.

Method: do-new-connection (listening-socket (dispatcher single-client-dispatcher))
Method: do-new-connection (listening-socket dispatcher)
Generic Function: do-pong (connection data)

Called when ping-frame with ACK is received. By default warns about unexpected ping response; see also TIMESHIFT-PINGING-CONNECTION mixin.

Package

http2/core.

Source

frames/ping.lisp.

Methods
Method: do-pong (connection data)
Method: do-pong ((connection timeshift-pinging-connection) data)
Source

classes.lisp.

Generic Function: fetch-resource (medium url pars)

Retrieve URL over some medium - HTTP/2 connection, network socket, .....

The ARGS is a property list used by some methods and ignored/passed down by others.

Package

http2/client.

Source

client.lisp.

Methods
Method: fetch-resource (medium (url string) args)

Parse URL into PURI:URI object and fetch the resource using that.

Method: fetch-resource (medium (url uri) args)

Convert URL into an instance of SIMPLE-REQUEST, REQUEST-WITH-UTF8-BODY or REQUEST-WITH-BINARY-BODY class.

Pass ARGS to the MAKE-INSTANCE call.

If ARGS (a property list) has CONTENT property, check its type - if it is a
string, REQUEST-WITH-UTF8-BODY is created, if a simple or octet vector,
REQUEST-WITH-BINARY-BODY, if not present or nil SIMPLE-REQUEST. If it is
something else, behaviour is undocumented.

Note that some of the methods actually wait to get the responses.

Method: fetch-resource ((medium (eql :connect)) (request generic-request) args)

Not part of API.

Method: fetch-resource ((network-stream stream) (request generic-request) args)

Open HTTP/2 connection over the STREAM and fetch the resource using this connection.

*Wait for the pending frames to actually receive the response*.

Class of the new connection is taken from :CONNECTION-CLASS property of ARGS, falling back to *DEFAULT-CLIENT-CONNECTION-CLASS*. ARGS are passed to the MAKE-INSTANCE.

Method: fetch-resource ((connection client-http2-connection) (request generic-request) args)

Open the new stream by sending headers frame to the server.

Details of the frame are taken from the REQUEST instance.

Return the new stream.

Method: fetch-resource ((connection client-http2-connection) (request request-with-utf8-body) args)

Open the HTTP/2 stream and send out the content as UTF-8.

Method: fetch-resource ((connection client-http2-connection) (request request-with-binary-body) args)

Open the HTTP/2 stream and send out the content as octets sequence.

Generic Function: flush-http2-data (connection)

Send all the pending connection data to the peer.

Package

http2/core.

Source

frames.lisp.

Methods
Method: flush-http2-data ((connection poll-server-connection))
Source

poll-server.lisp.

Method: flush-http2-data (connection)
Method: flush-http2-data ((connection stream-based-connection-mixin))
Generic Reader: get-authority (object)
Generic Writer: (setf get-authority) (object)
Package

http2/core.

Methods
Reader Method: get-authority ((server-stream server-stream))
Writer Method: (setf get-authority) ((server-stream server-stream))

The authority portion of the target URI ([RFC3986], Section 3.2)

Source

classes.lisp.

Target Slot

authority.

Generic Reader: get-body (object)
Generic Writer: (setf get-body) (object)
Package

http2/core.

Methods
Reader Method: get-body ((body-collecting-mixin body-collecting-mixin))
Writer Method: (setf get-body) ((body-collecting-mixin body-collecting-mixin))

Body of the request as an octet vector.

May be empty if some higher priority mixin (e.g., UTF8-PARSER-MIXIN) processed the data.

Source

frames/data.lisp.

Target Slot

body.

Generic Function: get-connection (condition)
Package

http2/core.

Methods
Reader Method: get-connection ((http2-stream-minimal http2-stream-minimal))

automatically generated reader method

Source

frames/http2-stream.lisp.

Target Slot

connection.

Method: get-connection ((c http2-connection))
Source

classes.lisp.

Reader Method: get-connection ((condition connection-error))
Source

errors.lisp.

Target Slot

connection.

Generic Writer: (setf get-connection) (condition)
Package

http2/core.

Methods
Writer Method: (setf get-connection) ((http2-stream-minimal http2-stream-minimal))

automatically generated writer method

Source

frames/http2-stream.lisp.

Target Slot

connection.

Writer Method: (setf get-connection) ((condition connection-error))
Source

errors.lisp.

Target Slot

connection.

Generic Reader: get-dynamic-table-size (object)
Package

http2/hpack.

Methods
Reader Method: get-dynamic-table-size ((hpack-context hpack-context))

automatically generated reader method

Source

hpack.lisp.

Target Slot

dynamic-table-size.

Generic Writer: (setf get-dynamic-table-size) (object)
Package

http2/hpack.

Methods
Writer Method: (setf get-dynamic-table-size) ((hpack-context hpack-context))

automatically generated writer method

Source

hpack.lisp.

Target Slot

dynamic-table-size.

Generic Function: get-headers (object)
Package

http2/core.

Methods
Method: get-headers ((request request-with-body))
Source

client.lisp.

Reader Method: get-headers ((generic-request generic-request))

automatically generated reader method

Source

client.lisp.

Target Slot

headers.

Reader Method: get-headers ((header-collecting-mixin header-collecting-mixin))

List of collected (header . value) pairs. Does not include ‘:method‘, ‘:path‘, etc.

Source

frames/headers.lisp.

Target Slot

headers.

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

http2/core.

Methods
Writer Method: (setf get-headers) ((generic-request generic-request))

automatically generated writer method

Source

client.lisp.

Target Slot

headers.

Writer Method: (setf get-headers) ((header-collecting-mixin header-collecting-mixin))

List of collected (header . value) pairs. Does not include ‘:method‘, ‘:path‘, etc.

Source

frames/headers.lisp.

Target Slot

headers.

Generic Reader: get-index (object)
Package

http2/utils.

Methods
Reader Method: get-index ((payload-input-stream payload-input-stream))

automatically generated reader method

Source

payload-streams.lisp.

Target Slot

index.

Reader Method: get-index ((pipe-end-for-read pipe-end-for-read))

automatically generated reader method

Source

pipe.lisp.

Target Slot

index.

Generic Writer: (setf get-index) (object)
Package

http2/utils.

Methods
Writer Method: (setf get-index) ((payload-input-stream payload-input-stream))

automatically generated writer method

Source

payload-streams.lisp.

Target Slot

index.

Writer Method: (setf get-index) ((pipe-end-for-read pipe-end-for-read))

automatically generated writer method

Source

pipe.lisp.

Target Slot

index.

Generic Reader: get-lock (object)
Package

http2/stream-overlay.

Methods
Reader Method: get-lock ((threaded-server-mixin threaded-server-mixin))

automatically generated reader method

Source

threaded.lisp.

Target Slot

lock.

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

http2/stream-overlay.

Methods
Writer Method: (setf get-lock) ((threaded-server-mixin threaded-server-mixin))

automatically generated writer method

Source

threaded.lisp.

Target Slot

lock.

Generic Reader: get-max-peer-frame-size (object)
Package

http2/core.

Methods
Reader Method: get-max-peer-frame-size ((frame-context frame-context))

automatically generated reader method

Source

frames.lisp.

Target Slot

max-peer-frame-size.

Generic Writer: (setf get-max-peer-frame-size) (object)
Package

http2/core.

Methods
Writer Method: (setf get-max-peer-frame-size) ((frame-context frame-context))

automatically generated writer method

Source

frames.lisp.

Target Slot

max-peer-frame-size.

Generic Reader: get-method (object)
Package

http2/core.

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

automatically generated reader method

Source

client.lisp.

Target Slot

method.

Reader Method: get-method ((server-stream server-stream))

The HTTP method ([RFC7231], Section 4)

Source

classes.lisp.

Target Slot

method.

Generic Writer: (setf get-method) (object)
Package

http2/core.

Methods
Writer Method: (setf get-method) ((generic-request generic-request))

automatically generated writer method

Source

client.lisp.

Target Slot

method.

Writer Method: (setf get-method) ((server-stream server-stream))

The HTTP method ([RFC7231], Section 4)

Source

classes.lisp.

Target Slot

method.

Generic Function: get-network-stream (object)

Get network stream for the object.

Package

http2/core.

Source

classes.lisp.

Methods
Reader Method: get-network-stream ((stream-based-connection-mixin stream-based-connection-mixin))

automatically generated reader method

Source

frames.lisp.

Target Slot

network-stream.

Method: get-network-stream ((object http2-stream))
Generic Writer: (setf get-network-stream) (object)
Package

http2/core.

Methods
Writer Method: (setf get-network-stream) ((stream-based-connection-mixin stream-based-connection-mixin))

automatically generated writer method

Source

frames.lisp.

Target Slot

network-stream.

Generic Reader: get-path (object)
Generic Writer: (setf get-path) (object)
Package

http2/core.

Methods
Reader Method: get-path ((server-stream server-stream))
Writer Method: (setf get-path) ((server-stream server-stream))

The path and query parts of the target URI

Source

classes.lisp.

Target Slot

path.

Generic Reader: get-peer-window-size (object)
Package

http2/core.

Methods
Reader Method: get-peer-window-size ((flow-control-mixin flow-control-mixin))

automatically generated reader method

Source

frames/data.lisp.

Target Slot

peer-window-size.

Generic Writer: (setf get-peer-window-size) (object)
Package

http2/core.

Methods
Writer Method: (setf get-peer-window-size) ((flow-control-mixin flow-control-mixin))

automatically generated writer method

Source

frames/data.lisp.

Target Slot

peer-window-size.

Generic Reader: get-scheduler (object)
Package

http2/stream-overlay.

Methods
Reader Method: get-scheduler ((threaded-server-mixin threaded-server-mixin))

automatically generated reader method

Source

threaded.lisp.

Target Slot

scheduler.

Generic Writer: (setf get-scheduler) (object)
Package

http2/stream-overlay.

Methods
Writer Method: (setf get-scheduler) ((threaded-server-mixin threaded-server-mixin))

automatically generated writer method

Source

threaded.lisp.

Target Slot

scheduler.

Generic Reader: get-scheme (object)
Generic Writer: (setf get-scheme) (object)
Package

http2/core.

Methods
Reader Method: get-scheme ((server-stream server-stream))
Writer Method: (setf get-scheme) ((server-stream server-stream))

Scheme portion of the target URI ([RFC3986], Section 3.1).

Not restricted to "http" and "https" schemed URIs.
A proxy or gateway can translate requests for non-HTTP schemes, enabling the use of HTTP to interact with non-HTTP services

Source

classes.lisp.

Target Slot

scheme.

Generic Reader: get-stream-class (object)
Generic Writer: (setf get-stream-class) (object)
Package

http2/core.

Methods
Reader Method: get-stream-class ((stream-collection stream-collection))
Writer Method: (setf get-stream-class) ((stream-collection stream-collection))

Class for new streams

Source

frames/http2-stream.lisp.

Target Slot

stream-class.

Reader Method: get-stream-class ((http2-connection http2-connection))
Writer Method: (setf get-stream-class) ((http2-connection http2-connection))

Class for new streams

Source

classes.lisp.

Target Slot

stream-class.

Generic Reader: get-streams (connection)
Package

http2/core.

Source

frames/http2-stream.lisp.

Methods
Reader Method: get-streams ((stream-collection stream-collection))

Sequence of streams the connection knows about.
This includes all open and half-closed streams, but not the already closed and idle streams.

Target Slot

streams.

Generic Writer: (setf get-streams) (object)
Package

http2/core.

Methods
Writer Method: (setf get-streams) ((stream-collection stream-collection))

Sequence of streams the connection knows about.
This includes all open and half-closed streams, but not the already closed and idle streams.

Source

frames/http2-stream.lisp.

Target Slot

streams.

Generic Reader: get-updates-needed (object)
Package

http2/hpack.

Methods
Reader Method: get-updates-needed ((hpack-context hpack-context))

automatically generated reader method

Source

hpack.lisp.

Target Slot

updates-needed.

Generic Writer: (setf get-updates-needed) (object)
Package

http2/hpack.

Methods
Writer Method: (setf get-updates-needed) ((hpack-context hpack-context))

automatically generated writer method

Source

hpack.lisp.

Target Slot

updates-needed.

Generic Function: handle-undefined-frame (connection type flags data)

Callback that is called when a frame of unknown type is received.

Package

http2/core.

Source

frames.lisp.

Methods
Method: handle-undefined-frame (connection type flags data)
Generic Function: make-http2-tls-context (dispatcher)

Make TLS context suitable for http2.

Practically, it means:
- ALPN callback that selects h2 if present,
- Do not request client certificates
- Do not allow ssl compression and renegotiation. We should also limit allowed ciphers, but we do not.

Package

http2/openssl.

Source

openssl.lisp.

Methods
Method: make-http2-tls-context (dispatcher)
Method: make-http2-tls-context :around ((dispatcher certificated-dispatcher))
Generic Function: peer-acks-settings (connection)

Called when SETTINGS-FRAME with ACK flag is received. By default does nothing.

Package

http2/core.

Source

frames/settings.lisp.

Methods
Method: peer-acks-settings (connection)
Generic Function: peer-ends-http-stream (stream)

Do relevant state changes when peer closes HTTP-STREAM (as part of received HEADERS or
PAYLOAD). Does nothing by default; client and server would want to specialize it to send response or process it.

Package

http2/core.

Source

classes.lisp.

Methods
Method: peer-ends-http-stream ((stream vanilla-server-stream))

Send appropriate payload, or an error page.

Source

dispatch.lisp.

Method: peer-ends-http-stream ((stream vanilla-client-stream))
Source

client-utils.lisp.

Method: peer-ends-http-stream (stream)
Generic Function: peer-expects-settings-ack (connection)

Called when settings-frame without ACK is received, after individual SET-PEER-SETTING calls. By default, send ACK frame.

Package

http2/core.

Source

frames/settings.lisp.

Methods
Method: peer-expects-settings-ack (connection)
Generic Function: peer-resets-stream (stream error-code)

The RST_STREAM frame fully terminates the referenced stream and causes it to enter the "closed" state. After receiving a RST_STREAM on a stream, the receiver MUST NOT send additional frames for that stream, with the exception of PRIORITY. However, after sending the RST_STREAM, the sending endpoint MUST be prepared to receive and process additional frames sent on the stream that might have been sent by the peer prior to the arrival of the RST_STREAM.

Package

http2/core.

Source

frames/rst-and-goaway.lisp.

Methods
Method: peer-resets-stream ((stram (eql :closed)) error-code)
Method: peer-resets-stream (stream error-code)
Generic Function: process-end-headers (connection stream)
Package

http2/core.

Source

frames/headers.lisp.

Methods
Method: process-end-headers :after (connection (stream gzip-decoding-mixin))
Source

gzip-decode.lisp.

Method: process-end-headers (connection stream)
Method: process-end-headers (connection (stream client-stream))
Method: process-end-headers (connection (stream server-stream))
Generic Function: queue-frame (connection frame)

Send or queue FRAME (octet vector) to the connection.

Each connection has to actually implement it.

Existing implementations are for:

- STREAM-BASED-CONNECTION-MIXIN, where the data are simply sent to the List stream, - WRITE-BUFFER-CONNECTION-MIXIN, where the data are pushed to a buffer.

Package

http2/core.

Source

frames.lisp.

Methods
Method: queue-frame ((connection poll-server-connection) frame)
Source

poll-server.lisp.

Method: queue-frame :around ((server threaded-server-mixin) frame)
Source

threaded.lisp.

Method: queue-frame ((connection write-buffer-connection-mixin) frame)
Method: queue-frame ((connection stream-based-connection-mixin) frame)
Generic Function: schedule-task (scheduler delay action name)
Package

http2/server.

Methods
Method: schedule-task :after ((scheduler scheduler-in-thread) delay action name)

Add a new action to server with scheduler. If scheduler already has a thread, wake it up by invoking CONTINUE restart.

Source

scheduler.lisp.

Method: schedule-task ((scheduler scheduler) delay action name)

Add a new action to a scheduler to be run in DELAY seconds.

Returns SCHEDULER.

Source

scheduler.lisp.

Generic Function: server-socket-stream (socket dispatcher)

Make a Lisp stream from a socket. This is primarily used as a hook to insert TLS layer when needed.

Package

http2/server.

Source

socket-dispatcher.lisp.

Methods
Method: server-socket-stream (socket (dispatcher tls-dispatcher-mixin))

The cl-ssl server socket.

Source

threaded.lisp.

Method: server-socket-stream (socket dispatcher)
Generic Function: set-peer-setting (connection name value)

Process received information about peers setting.

The setting relates to the CONNECTION. NAME is a keyword symbol (see *SETTINGS*, subject to possible change to 16bit number in future) and VALUE is 32bit number.

Package

http2/core.

Source

frames/settings.lisp.

Methods
Method: set-peer-setting (connection name value)

Fallback.

Method: set-peer-setting (connection (name (eql :header-table-size)) value)
Method: set-peer-setting (connection (name (eql :initial-window-size)) value)
Method: set-peer-setting (connection (name (eql :max-frame-size)) value)
Method: set-peer-setting (connection (name (eql :no-rfc5740-priorities)) value)
Method: set-peer-setting (connection (name (eql :max-header-list-size)) value)
Method: set-peer-setting ((connection client-http2-connection) (name (eql :enable-push)) value)
Method: set-peer-setting ((connection server-http2-connection) (name (eql :enable-push)) value)
Method: set-peer-setting (connection (name (eql :max-concurrent-streams)) value)
Generic Function: start-server-on-socket (dispatcher socket)
Package

http2/server.

Source

socket-dispatcher.lisp.

Methods
Method: start-server-on-socket ((server tls-threaded-dispatcher) socket)
Source

threaded.lisp.

Method: start-server-on-socket (dispatcher listening-socket)
Method: start-server-on-socket ((dispatcher detached-server-mixin) socket)

6.1.5 Standalone methods

Method: close ((stream payload-input-stream) &key &allow-other-keys)
Source

payload-streams.lisp.

Method: close ((stream payload-output-stream) &key &allow-other-keys)
Source

payload-streams.lisp.

Method: describe-object ((context hpack-context) stream)
Source

hpack.lisp.

Method: initialize-instance :after ((stream payload-input-stream) &key base-http2-stream &allow-other-keys)
Source

payload-streams.lisp.

Method: initialize-instance :after ((stream payload-output-stream) &key base-http2-stream connection window-size &allow-other-keys)
Source

payload-streams.lisp.

Method: initialize-instance :after ((connection client-http2-connection) &key &allow-other-keys)

In HTTP/2, each endpoint is required to send a connection preface as a final confirmation of the protocol in use and to establish the initial settings for the HTTP/2 connection. The client and server each send a different connection preface.

The client connection preface starts with a sequence of 24 octets. This sequence MUST be followed by a SETTINGS frame (Section 6.5), which MAY be empty.

Source

classes.lisp.

Method: initialize-instance :after ((stream constant-output-stream) &key &allow-other-keys)
Source

binary-payload.lisp.

Method: initialize-instance :after ((stream http2-stream) &key connection)
Source

classes.lisp.

Method: print-object ((o window-is-closed) stream)
Source

payload-streams.lisp.

Method: print-object ((ce connection-error) out)
Source

errors.lisp.

Method: print-object ((stream server-stream) out)
Source

classes.lisp.

Method: print-object ((connection http2-connection) out)
Source

classes.lisp.

Method: print-object ((err go-away) out)
Source

errors.lisp.

Method: print-object ((err http-stream-error) out)
Source

errors.lisp.

Method: print-object ((o too-big-frame) stream)
Source

errors.lisp.

Method: print-object ((object frame-type) stream)
Source

frames.lisp.

Method: print-object ((err client-preface-mismatch) out)
Source

errors.lisp.

Method: print-object ((o http2-stream) out)
Source

classes.lisp.

Method: print-object ((o no-payload-action) out)
Source

errors.lisp.

Method: print-object ((object ssl-error-condition) stream)
Source

poll-server.lisp.

Method: print-object ((context hpack-context) stream)
Source

hpack.lisp.

Method: print-object ((pipe pipe-end-for-read) stream)
Source

pipe.lisp.

Method: print-object ((pipe pipe-end-for-write) stream)
Source

pipe.lisp.

Method: print-object ((server detached-server-mixin) out)
Source

socket-dispatcher.lisp.

Method: print-object ((task scheduled-task) stream)
Source

scheduler.lisp.

Method: print-object ((scheduler scheduler) out)
Source

scheduler.lisp.

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

poll-server.lisp.

Method: stream-element-type ((stream binary-stream))
Source

payload-streams.lisp.

Method: stream-force-output ((stream payload-output-stream))
Package

sb-gray.

Source

payload-streams.lisp.

Method: stream-listen ((stream payload-input-stream))
Package

sb-gray.

Source

payload-streams.lisp.

Method: stream-listen ((stream pipe-end-for-read))

If the index is not on end of stream, it can probably be read.

Note that this does not work on clisp, see https://clisp.sourceforge.io/impnotes/non-block-io.html

Package

sb-gray.

Source

pipe.lisp.

Method: stream-read-byte ((stream payload-input-stream))
Package

sb-gray.

Source

payload-streams.lisp.

Method: stream-read-byte ((stream pipe-end-for-read))
Package

sb-gray.

Source

pipe.lisp.

Method: stream-write-byte ((stream payload-output-stream) byte)

Write an octet to the output buffer.

Special cases:

- Buffer is full -> warn and do nothing (FIXME: handle it somehow)
- Buffer contains more that max peer frame size octets -> send the data out

Package

sb-gray.

Source

payload-streams.lisp.

Method: stream-write-byte ((stream constant-output-stream) byte)
Package

sb-gray.

Source

binary-payload.lisp.

Method: stream-write-byte ((stream pipe-end-for-write) byte)
Package

sb-gray.

Source

pipe.lisp.

Method: stream-write-sequence ((stream payload-output-stream) sequence start end &key)
Package

trivial-gray-streams.

Source

payload-streams.lisp.


6.1.6 Conditions

Condition: client-done

Handled by RETRIEVE-URL. The client should signal it when the processing is done.

Package

http2/client.

Source

client.lisp.

Direct superclasses

condition.

Direct methods
Direct slots
Slot: result
Initform

(quote nil)

Initargs

:result

Readers

get-result.

Writers

(setf get-result).

Condition: connection-error

A connection error is signalled when we detect an illegal frame content.

Use [CONNECTION-ERROR][function] function to signal it or its subclasses. Application must handle it, including closing associated NETWORK-STREAM.

Package

http2/core.

Source

errors.lisp.

Direct superclasses

http2-error.

Direct subclasses
Direct methods
Direct slots
Slot: connection
Initargs

:connection

Readers

get-connection.

Writers

(setf get-connection).

Slot: code
Initargs

:code

Readers

get-code.

Writers

(setf get-code).

Condition: frame-too-small-for-priority

Length of the padding is the length of the frame payload or greater.

Package

http2/core.

Source

errors.lisp.

Direct superclasses

protocol-error.

Condition: go-away

Signaled when GO-AWAY frame is received.

Package

http2/core.

Source

errors.lisp.

Direct superclasses

serious-condition.

Direct methods
Direct slots
Slot: error-code
Initargs

:error-code

Readers

get-error-code.

Writers

(setf get-error-code).

Slot: debug-data
Initargs

:debug-data

Readers

get-debug-data.

Writers

(setf get-debug-data).

Slot: last-stream-id
Initargs

:last-stream-id

Readers

get-last-stream-id.

Writers

(setf get-last-stream-id).

Condition: h2-not-supported-by-server
Package

http2/core.

Source

errors.lisp.

Direct superclasses

error.

Direct methods
Direct slots
Slot: host
Initargs

:host

Readers

get-host.

Writers

(setf get-host).

Slot: port
Initargs

:port

Readers

get-port.

Writers

(setf get-port).

Condition: http-stream-error
Package

http2/core.

Source

errors.lisp.

Direct superclasses

warning.

Direct subclasses
Direct methods
Direct slots
Slot: code
Initargs

:code

Readers

get-code.

Writers

(setf get-code).

Slot: stream
Package

common-lisp.

Initargs

:stream

Readers

get-stream.

Writers

(setf get-stream).

Condition: poll-timeout

Poll was called with a timeout and returned before any file descriptor became ready.

Package

http2/server.

Source

poll-server.lisp.

Direct superclasses

error.

Condition: ssl-error-condition

The socket on the other side is closed.

Package

http2/openssl.

Source

poll-server.lisp.

Direct superclasses

error.

Direct methods
Direct slots
Slot: code
Package

http2/server.

Initargs

:code

Readers

get-code.

Writers

(setf get-code).

Condition: too-big-frame

Frame exceeds the size defined in SETTINGS_MAX_FRAME_SIZE.

Package

http2/core.

Source

errors.lisp.

Direct superclasses

connection-error.

Direct methods
Direct Default Initargs
InitargValue
:code+frame-size-error+
Direct slots
Slot: max-frame-size
Initargs

:max-frame-size

Readers

get-max-frame-size.

Writers

(setf get-max-frame-size).

Slot: frame-size
Package

http2/utils.

Initargs

:frame-size

Readers

get-frame-size.

Writers

(setf get-frame-size).

Condition: unsupported-server-setup
Package

http2/server.

Source

socket-dispatcher.lisp.

Direct superclasses

error.

Direct methods
Direct slots
Slot: dispatcher
Initargs

:dispatcher

Readers

get-dispatcher.

Writers

(setf get-dispatcher).


6.1.7 Structures

Structure: priority

Structure capturing stream priority parameters.

Package

http2/core.

Source

frames/headers.lisp.

Direct superclasses

structure-object.

Direct slots
Slot: exclusive
Readers

priority-exclusive.

Writers

(setf priority-exclusive).

Slot: stream-dependency
Readers

priority-stream-dependency.

Writers

(setf priority-stream-dependency).

Slot: weight
Readers

priority-weight.

Writers

(setf priority-weight).


6.1.8 Classes

Class: base-dispatcher
Package

http2/server.

Source

socket-dispatcher.lisp.

Direct subclasses
Direct methods
Direct Default Initargs
InitargValue
:connection-class(quote vanilla-server-connection)
:connection-argsnil
Direct slots
Slot: tls
Allocation

:class

Readers

get-tls.

Writers

This slot is read-only.

Slot: connection-class
Initargs

:connection-class

Readers

get-connection-class.

Writers

(setf get-connection-class).

Slot: connection-args
Initargs

:connection-args

Readers

get-connection-args.

Writers

(setf get-connection-args).

Slot: url
Initargs

:url

Readers

get-url.

Writers

(setf get-url).

Class: binary-stream
Package

http2/utils.

Source

pipe.lisp.

Direct subclasses
Direct methods

stream-element-type.

Class: body-collecting-mixin

Mixin to collect all payload parts to one string.

Package

http2/core.

Source

frames/data.lisp.

Direct subclasses
Direct methods
Direct Default Initargs
InitargValue
:bodynil
Direct slots
Slot: body

Body of the request as an octet vector.

May be empty if some higher priority mixin (e.g., UTF8-PARSER-MIXIN) processed the data.

Initargs

:body

Readers

get-body.

Writers

(setf get-body).

Class: certificated-dispatcher

Dispatcher with two slots, CERTIFICATE-FILE and PRIVATE-KEY-FILE, that are used for TLS context creation.

Package

http2/openssl.

Source

openssl.lisp.

Direct subclasses

tls-dispatcher-mixin.

Direct methods

make-http2-tls-context.

Direct slots
Slot: certificate-file
Initargs

:certificate-file

Slot: private-key-file
Initargs

:private-key-file

Class: client-http2-connection

Client connections have odd-numbered streams.

Package

http2/core.

Source

classes.lisp.

Direct superclasses

http2-connection.

Direct subclasses

vanilla-client-connection.

Direct methods
Direct Default Initargs
InitargValue
:id-to-use1
Class: client-stream

HTTP2 stream that checks headers as required for clients (no psedoheader other than :status allowed, etc.

Package

http2/core.

Source

classes.lisp.

Direct superclasses

http2-stream.

Direct subclasses

vanilla-client-stream.

Direct methods
Direct Default Initargs
InitargValue
:statusnil
Direct slots
Slot: status

HTTP status code field (see [RFC7231], Section 6)

Initargs

:status

Readers

get-status.

Writers

(setf get-status).

Class: detached-poll-dispatcher

Detached version of the POLL-DISPATCHER.

Package

http2/server.

Source

poll-server.lisp.

Direct superclasses
Class: detached-server-mixin
Package

http2/server.

Source

socket-dispatcher.lisp.

Direct subclasses
Direct methods
Direct Default Initargs
InitargValue
:namehttp/2 server
Direct slots
Slot: thread
Initargs

:thread

Readers

get-thread.

Writers

(setf get-thread).

Slot: name
Initargs

:name

Readers

get-name.

Writers

(setf get-name).

Class: detached-single-client-dispatcher
Package

http2/server.

Source

threaded.lisp.

Direct superclasses
Class: detached-tls-single-client-dispatcher
Package

http2/server.

Source

dispatch.lisp.

Direct superclasses
Class: detached-tls-threaded-dispatcher
Package

http2/server.

Source

threaded.lisp.

Direct superclasses
Class: fallback-all-is-ascii
Package

http2/core.

Source

utf8.lisp.

Direct methods

apply-data-frame.

Class: frame-context
Package

http2/core.

Source

frames.lisp.

Direct subclasses

http2-connection.

Direct methods
Direct Default Initargs
InitargValue
:max-frame-size16384
:max-peer-frame-size16384
Direct slots
Slot: max-frame-size
Initargs

:max-frame-size

Readers

get-max-frame-size.

Writers

(setf get-max-frame-size).

Slot: max-peer-frame-size
Initargs

:max-peer-frame-size

Readers

get-max-peer-frame-size.

Writers

(setf get-max-peer-frame-size).

Class: generic-request

Base class for requests. It has slots for URI, HTTP METHOD, HEADERS (some headers are implicit) and NO-BODY flag to determine whether there would be data frames sent.

Package

http2/client.

Source

client.lisp.

Direct subclasses
Direct methods
Direct Default Initargs
InitargValue
:methodget
:headersnil
Direct slots
Slot: uri
Initargs

:uri

Readers

get-uri.

Writers

(setf get-uri).

Slot: method
Package

common-lisp.

Initargs

:method

Readers

get-method.

Writers

(setf get-method).

Slot: headers
Initargs

:headers

Readers

get-headers.

Writers

(setf get-headers).

Slot: no-body
Initargs

:no-body

Readers

get-no-body.

Writers

(setf get-no-body).

Class: gzip-decoding-mixin
Package

http2/core.

Source

gzip-decode.lisp.

Direct subclasses

vanilla-client-stream.

Direct methods
Direct slots
Slot: dstate
Initargs

:dstate

Readers

get-dstate.

Writers

(setf get-dstate).

Class: header-collecting-mixin

Mixin to be used to collect all observed headers to a slot.

Package

http2/core.

Source

frames/headers.lisp.

Direct subclasses
Direct methods
Direct Default Initargs
InitargValue
:headersnil
Direct slots
Slot: headers

List of collected (header . value) pairs. Does not include ‘:method‘, ‘:path‘, etc.

Initargs

:headers

Readers

get-headers.

Writers

(setf get-headers).

Class: hpack-context

Dynamic tables implementation: they are stored in an adjustable array, with
[0] element storing first element initially (indexed by s+1), and (s+k)th element after k insertions.

After deletion of D elements, element s+k is stored on index D, element s+1
on index

<———- Index Address Space ———->
<– Static Table –> <– Dynamic Table –>
+—+———–+—+ +—–+———–+—–+
| 1 | ... | s | |s+1+D| ... |s+k+D| ...deleted... +—+———–+—+ +—–+———–+—–+
k D 0
<—– table aref index ————–>
^ |
| V
Insertion Point Dropping Point

Package

http2/hpack.

Source

hpack.lisp.

Direct methods
Direct Default Initargs
InitargValue
:dynamic-table(make-array 0 fill-pointer 0 adjustable t)
:dynamic-table-size4096
:deleted-items0
:updates-needednil
Direct slots
Slot: dynamic-table
Initargs

:dynamic-table

Readers

get-dynamic-table.

Writers

(setf get-dynamic-table).

Slot: bytes-left-in-table
Initargs

:dynamic-table-size

Readers

get-bytes-left-in-table.

Writers

(setf get-bytes-left-in-table).

Slot: dynamic-table-size
Initargs

:dynamic-table-size

Readers

get-dynamic-table-size.

Writers

(setf get-dynamic-table-size).

Slot: updates-needed
Initargs

:updates-needed

Readers

get-updates-needed.

Writers

(setf get-updates-needed).

Slot: deleted-items
Initargs

:deleted-items

Readers

get-deleted-items.

Writers

(setf get-deleted-items).

Class: http2-connection

A simple connection: promise push not allowed, otherwise reasonable behaviour

Package

http2/core.

Source

classes.lisp.

Direct superclasses
Direct subclasses
Direct methods
Direct Default Initargs
InitargValue
:id-to-use1
:last-id-seen0
:streamsnil
:acked-settingsnil
:window-size65535
:compression-context(make-instance (quote hpack-context))
:decompression-context(make-instance (quote hpack-context))
:stream-class(quote http2-stream)
:initial-peer-window-size65535
:initial-window-size65535
:peer-window-size65535
Direct slots
Slot: acked-settings
Initargs

:acked-settings

Readers

get-acked-settings.

Writers

(setf get-acked-settings).

Slot: stream-class

Class for new streams

Initargs

:stream-class

Readers

get-stream-class.

Writers

(setf get-stream-class).

Slot: initial-window-size
Initargs

:initial-window-size

Readers

get-initial-window-size.

Writers

(setf get-initial-window-size).

Slot: initial-peer-window-size
Initargs

:initial-peer-window-size

Readers

get-initial-peer-window-size.

Writers

(setf get-initial-peer-window-size).

Class: http2-stream-minimal

Part of representation of HTTP/2 stream needed to read and write frames.

Package

http2/core.

Source

frames/http2-stream.lisp.

Direct superclasses

flow-control-mixin.

Direct subclasses

http2-stream.

Direct methods
Direct Default Initargs
InitargValue
:window-size0
:state(quote idle)
Direct slots
Slot: connection
Initargs

:connection

Readers

get-connection.

Writers

(setf get-connection).

Slot: stream-id
Package

http2/utils.

Type

http2/utils:stream-id

Initargs

:stream-id

Readers

get-stream-id.

Writers

(setf get-stream-id).

Slot: state
Type

http2/utils:http2-stream-state

Initargs

:state

Readers

get-state.

Writers

(setf get-state).

Class: http2-stream-with-input-stream

HTTP2 stream that passes all its DATA frames to PAYLOAD-INPUT-STREAM.

Package

http2/stream-overlay.

Source

payload-streams.lisp.

Direct methods
Direct slots
Slot: payload-input-stream
Initargs

:payload-input-stream

Readers

get-payload-input-stream.

Writers

(setf get-payload-input-stream).

Slot: charset
Initargs

:charset

Readers

get-charset.

Writers

(setf get-charset).

Slot: compression
Initargs

:compression

Readers

get-compression.

Writers

(setf get-compression).

Class: multi-part-data-stream

Implement writing of data that may possibly be too big to send at once.

When peer sends window size increment frame, call specified callback function. This is set in WRITE-BINARY-PAYLOAD to write rest of data to write.

Package

http2/core.

Source

binary-payload.lisp.

Direct subclasses

vanilla-server-stream.

Direct methods
Direct Default Initargs
InitargValue
:window-size-increment-callbacknil
Direct slots
Slot: window-size-increment-callback
Initargs

:window-size-increment-callback

Readers

get-window-size-increment-callback.

Writers

(setf get-window-size-increment-callback).

Class: pipe-end-for-read

Octet stream backed by a buffer.

Each instance has a buffer and an index to the first unread element of it. It is assumed that whole the buffer can be read.

Package

http2/utils.

Source

pipe.lisp.

Direct superclasses
Direct methods
Direct slots
Slot: buffer
Initargs

:buffer

Readers

get-buffer.

Writers

(setf get-buffer).

Slot: index
Initargs

:index

Readers

get-index.

Writers

(setf get-index).

Slot: end
Initargs

:end

Readers

get-end.

Writers

(setf get-end).

Class: pipe-end-for-write
Package

http2/utils.

Source

pipe.lisp.

Direct superclasses
Direct methods
Direct slots
Slot: write-buffer
Initargs

:write-buffer

Readers

get-write-buffer.

Writers

(setf get-write-buffer).

Class: poll-dispatcher
Package

http2/server.

Source

poll-server.lisp.

Direct superclasses
Direct subclasses

detached-poll-dispatcher.

Direct methods

get-no-client-poll-timeout.

Class: poll-dispatcher-mixin

Uses poll to listen to a set of clients and handle arriving packets in a single thread.

Maximum number of clients is fixed (by default *fdset-size*, by default 10). Additional clients wait until one of existing client leaves.

Timeouts can be specified for polling.

Package

http2/server.

Source

poll-server.lisp.

Direct subclasses

poll-dispatcher.

Direct methods
Direct Default Initargs
InitargValue
:fdset-size*fdset-size*
:poll-timeout*poll-timeout*
:no-client-poll-timeout*no-client-poll-timeout*
:nagle*nagle*
Direct slots
Slot: fdset-size

Number of slots for clients to be polled.

Initargs

:fdset-size

Readers

get-fdset-size.

Writers

(setf get-fdset-size).

Slot: poll-timeout

See *POLL-TIMEOUT*.

Initargs

:poll-timeout

Readers

get-poll-timeout.

Writers

(setf get-poll-timeout).

Slot: no-client-poll-timeout

See *NO-CLIENT-POLL-TIMEOUT*.

Initargs

:no-client-poll-timeout

Readers

get-no-client-poll-timeout.

Writers

(setf get-no-client-poll-timeout).

Slot: nagle
Initargs

:nagle

Readers

get-nagle.

Writers

(setf get-nagle).

Class: request-with-binary-body
Package

http2/client.

Source

client.lisp.

Direct superclasses

request-with-body.

Direct methods

fetch-resource.

Direct Default Initargs
InitargValue
:content-typeapplication/octet-stream
Class: request-with-body

Base class for requests with a body. Implies POST method by default. Some method for FETCH-RESOURCE must be defined to actually send the content in data frames.

Package

http2/client.

Source

client.lisp.

Direct superclasses

generic-request.

Direct subclasses
Direct methods
Direct Default Initargs
InitargValue
:no-bodynil
:methodpost
Direct slots
Slot: content
Initargs

:content

Readers

get-content.

Writers

(setf get-content).

Slot: content-type
Initargs

:content-type

Readers

get-content-type.

Writers

(setf get-content-type).

Slot: gzip-content
Initargs

:gzip-content

Readers

get-gzip-content.

Writers

(setf get-gzip-content).

Class: request-with-utf8-body
Package

http2/client.

Source

client.lisp.

Direct superclasses

request-with-body.

Direct methods

fetch-resource.

Direct Default Initargs
InitargValue
:content-typetext/plain; charset=utf-8
Class: scheduled-task
Package

http2/server.

Source

scheduler.lisp.

Direct methods
Direct Default Initargs
InitargValue
:action-namenil
Direct slots
Slot: internal-time-to-run
Initargs

:internal-time-to-run

Readers

get-internal-time-to-run.

Writers

(setf get-internal-time-to-run).

Slot: action-to-run
Initargs

:action

Readers

get-action-to-run.

Writers

(setf get-action-to-run).

Slot: action-name
Initargs

:action-name

Readers

get-action-name.

Writers

(setf get-action-name).

Class: scheduler

Simple scheduler of delayed tasks. Holds a list of tasks to run.

Package

http2/server.

Source

scheduler.lisp.

Direct subclasses

scheduler-in-thread.

Direct methods
Direct Default Initargs
InitargValue
:scheduled-tasks(list *dummy-last-task*)
:namea scheduler
Direct slots
Slot: scheduled-tasks
Initargs

:scheduled-tasks

Readers

get-scheduled-tasks.

Writers

(setf get-scheduled-tasks).

Slot: name
Initargs

:name

Readers

get-name.

Writers

(setf get-name).

Class: scheduler-in-thread

Simple scheduler of delayed tasks that runs in a thread.

Package

http2/server.

Source

scheduler.lisp.

Direct superclasses

scheduler.

Direct methods
Direct Default Initargs
InitargValue
:threadnil
Direct slots
Slot: thread
Initargs

:thread

Readers

get-thread.

Writers

(setf get-thread).

Class: server-http2-connection
Package

http2/core.

Source

classes.lisp.

Direct superclasses

http2-connection.

Direct subclasses
Direct methods
Direct Default Initargs
InitargValue
:id-to-use2
:peer-accepts-pusht
Direct slots
Slot: peer-accepts-push
Initargs

:peer-accepts-push

Readers

get-peer-accepts-push.

Writers

(setf get-peer-accepts-push).

Class: server-stream
Package

http2/core.

Source

classes.lisp.

Direct superclasses

http2-stream.

Direct subclasses

vanilla-server-stream.

Direct methods
Direct Default Initargs
InitargValue
:methodnil
:schemenil
:authoritynil
:pathnil
Direct slots
Slot: method

The HTTP method ([RFC7231], Section 4)

Package

common-lisp.

Initargs

:method

Readers

get-method.

Writers

(setf get-method).

Slot: scheme

Scheme portion of the target URI ([RFC3986], Section 3.1).

Not restricted to "http" and "https" schemed URIs.
A proxy or gateway can translate requests for non-HTTP schemes, enabling the use of HTTP to interact with non-HTTP services

Initargs

:scheme

Readers

get-scheme.

Writers

(setf get-scheme).

Slot: authority

The authority portion of the target URI ([RFC3986], Section 3.2)

Initargs

:authority

Readers

get-authority.

Writers

(setf get-authority).

Slot: path

The path and query parts of the target URI

Type

string

Initargs

:path

Readers

get-path.

Writers

(setf get-path).

Class: simple-request

Class for requests with no body. Implies GET method by default.

Package

http2/client.

Source

client.lisp.

Direct superclasses

generic-request.

Direct Default Initargs
InitargValue
:methodget
:headersnil
:no-bodyt
Class: single-client-dispatcher

Handle the connection while doing nothing else.

Serve just one client at time: when it connects, read the incoming requests and handle them as they arrive. When the client sends go-away frame, close the connection and be ready to serve another client.

Obviously, there is little overhead and this version is actually pretty fast - for one client and in ideal conditions (especially with request pilelining).

Package

http2/server.

Source

socket-dispatcher.lisp.

Direct superclasses

base-dispatcher.

Direct subclasses
Direct methods

do-new-connection.

Class: stream-based-connection-mixin

A mixin for connections that read frames from and write to Common Lisp stream (in slot NETWORK-STREAM).

Package

http2/core.

Source

frames.lisp.

Direct subclasses
Direct methods
Direct slots
Slot: network-stream
Initargs

:network-stream

Readers

get-network-stream.

Writers

(setf get-network-stream).

Class: stream-collection
Package

http2/core.

Source

frames/http2-stream.lisp.

Direct subclasses

http2-connection.

Direct methods
Direct Default Initargs
InitargValue
:id-to-use1
:last-id-seen0
:streamsnil
:window-size65535
:initial-peer-window-size65535
:initial-window-size65535
Direct slots
Slot: streams

Sequence of streams the connection knows about.
This includes all open and half-closed streams, but not the already closed and idle streams.

Initargs

:streams

Readers

get-streams.

Writers

(setf get-streams).

Slot: id-to-use
Type

http2/utils:stream-id

Initargs

:id-to-use

Readers

get-id-to-use.

Writers

(setf get-id-to-use).

Slot: last-id-seen
Type

http2/utils:stream-id

Initargs

:last-id-seen

Readers

get-last-id-seen.

Writers

(setf get-last-id-seen).

Slot: stream-class

Class for new streams

Initargs

:stream-class

Readers

get-stream-class.

Writers

(setf get-stream-class).

Class: text-collecting-stream

Mixin that collect all the received body (possibly unzipped data frames converted to proper encoding) into its TEXT slot.

Package

http2/core.

Source

binary-payload.lisp.

Direct subclasses
Direct methods
Direct Default Initargs
InitargValue
:textnil
Direct slots
Slot: text
Initargs

:text

Readers

get-text.

Writers

(setf get-text).

Class: threaded-dispatcher

Specialize DO-NEW-CONNECTION to process new connections each in a separate thread.

Package

http2/server.

Source

threaded.lisp.

Direct superclasses

base-dispatcher.

Direct subclasses
Direct methods

do-new-connection.

Class: threaded-server-mixin

A mixin for a connection that holds a lock in actions that write to the output network stream, and provides a second thread for scheduled activities (e.g., periodical events).

Package

http2/server.

Source

threaded.lisp.

Direct subclasses

vanilla-server-connection.

Direct methods
Direct Default Initargs
InitargValue
:scheduler*scheduler*
:lock(make-lock)
Direct slots
Slot: scheduler
Initargs

:scheduler

Readers

get-scheduler.

Writers

(setf get-scheduler).

Slot: lock
Initargs

:lock

Readers

get-lock.

Writers

(setf get-lock).

Class: tls-dispatcher-mixin

Specializes SERVER-SOCKET-STREAM to add TLS layer to the created sockets, and START-SERVER-ON-SOCKET to use a context created by MAKE-HTTP2-TLS-CONTEXT.

Package

http2/server.

Source

dispatch.lisp.

Direct superclasses

certificated-dispatcher.

Direct subclasses
Direct methods
Class: tls-single-client-dispatcher
Package

http2/server.

Source

dispatch.lisp.

Direct superclasses
Direct subclasses

detached-tls-single-client-dispatcher.

Class: tls-threaded-dispatcher
Package

http2/server.

Source

threaded.lisp.

Direct superclasses
Direct subclasses

detached-tls-threaded-dispatcher.

Direct methods

start-server-on-socket.

Class: utf8-parser-mixin

Defines a method on APPLY-DATA-FRAME that, if CONTENT-TYPE indicates UTF-8, reads octets, converts them to UTF-8 text, and calls APPLY-TEXT-DATA-FRAME on the stream and the text.

Package

http2/core.

Source

utf8.lisp.

Direct subclasses
Direct methods
Direct slots
Slot: broken-char
Initargs

:broken-char

Readers

get-broken-char.

Writers

(setf get-broken-char).

Class: vanilla-client-connection

Connection class for retrieve-url style functions that uses streams of VANILLA-CLIENT-STREAM. Behaves as client, can send pings to measure roundtrip time and optionally prints history. See individual superclasses for details.

Package

http2/client.

Source

client-utils.lisp.

Direct superclasses
Direct Default Initargs
InitargValue
:stream-class(quote vanilla-client-stream)
Class: vanilla-client-stream

Stream class for retrieve-url style functions. Behaves as a client stream, allows one to treat data frames as streams, collect headers to slot HEADERS so that they can be later shown as a list, and optionally prints callback logs. See individual superclasses for details.

Package

http2/client.

Source

client-utils.lisp.

Direct superclasses
Direct methods
Direct Default Initargs
InitargValue
:end-headers-fn(constantly nil)
Direct slots
Slot: end-headers-fn
Initargs

:end-headers-fn

Readers

get-end-headers-fn.

Writers

(setf get-end-headers-fn).

Class: write-buffer-connection-mixin

Stores queued frame in a per-connection write buffer. The internals of the buffer are opaque.

Package

http2/core.

Source

frames.lisp.

Direct methods
Direct Default Initargs
InitargValue
:to-write(make-array 3 fill-pointer 0 adjustable t)
Direct slots
Slot: to-write
Initargs

:to-write

Readers

get-to-write.

Writers

(setf get-to-write).


6.1.9 Types

Type: frame-size ()
Package

http2/utils.

Source

utils.lisp.

Type: handler ()

Function that can be called with CONNECTION and HTTP2-STREAM to write a response to the http request described by STREAM object.

Package

http2/server.

Source

dispatch.lisp.

Type: http2-stream-state ()

HTTP2 state. Currently a symbol from fixed list, might be a number in future.

Package

http2/utils.

Source

utils.lisp.

Type: octet-vector (&optional length)

An octet vector of length LENGTH (if specified)

Package

http2/utils.

Source

utils.lisp.

Type: stream-id ()

Streams are identified with an unsigned 31-bit integer.

Package

http2/utils.

Source

utils.lisp.


6.2 Internals


6.2.1 Constants

Constant: +altsvc-frame+
Package

http2/core.

Source

frames/altsvc.lisp.

Constant: +cancel+

The endpoint indicates that the stream is no longer needed

Package

http2/core.

Source

errors.lisp.

Constant: +client-preface-length+
Package

http2/server.

Source

poll-server.lisp.

Constant: +compression-error+

The endpoint is unable to maintain the header compression context for the connection

Package

http2/core.

Source

errors.lisp.

Constant: +connect-error+

The connection established in response to a CONNECT request was reset or abnormally closed

Package

http2/core.

Source

errors.lisp.

Constant: +continuation-frame+
Package

http2/core.

Source

frames/headers.lisp.

Constant: +data-frame+
Package

http2/core.

Source

frames/data.lisp.

Constant: +enhance-your-calm+

The endpoint detected that its peer is exhibiting a behavior that might be generating excessive load

Package

http2/core.

Source

errors.lisp.

Constant: +flow-control-error+

The endpoint detected that its peer violated the flow-control protocol

Package

http2/core.

Source

errors.lisp.

Constant: +frame-size-error+

The endpoint received a frame with an invalid size

Package

http2/core.

Source

errors.lisp.

Constant: +goaway-frame+
Package

http2/core.

Source

frames/rst-and-goaway.lisp.

Constant: +headers-frame+
Package

http2/core.

Source

frames/headers.lisp.

Constant: +http-1-1-required+

The endpoint requires that HTTP/11 be used instead of HTTP/2

Package

http2/core.

Source

errors.lisp.

Constant: +inadequate-security+

The underlying transport has properties that do not meet minimum security requirements

Package

http2/core.

Source

errors.lisp.

Constant: +internal-error+

The endpoint encountered an unexpected internal error

Package

http2/core.

Source

errors.lisp.

Constant: +known-frame-types-count+

Frame types are indexed by an octet.

Package

http2/core.

Source

frames.lisp.

Constant: +last-static-header-index+
Package

http2/hpack.

Source

hpack.lisp.

Constant: +last-static-header-pair+
Package

http2/hpack.

Source

hpack.lisp.

Constant: +literal-header-index+
Package

http2/hpack.

Source

hpack.lisp.

Constant: +literal-header-never-index+
Package

http2/hpack.

Source

hpack.lisp.

Constant: +literal-header-noindex+
Package

http2/hpack.

Source

hpack.lisp.

Constant: +no-error+

The associated condition is not a result of an error

Package

http2/core.

Source

errors.lisp.

Constant: +ping-frame+
Package

http2/core.

Source

frames/ping.lisp.

Constant: +priority-frame+
Package

http2/core.

Source

frames/headers.lisp.

Constant: +protocol-error+

The endpoint detected an unspecific protocol error

Package

http2/core.

Source

errors.lisp.

Constant: +push-promise-frame+
Package

http2/core.

Source

frames/push-promise.lisp.

Constant: +refused-stream+

The endpoint refused the stream prior to performing any application processing

Package

http2/core.

Source

errors.lisp.

Constant: +rst-stream-frame+
Package

http2/core.

Source

frames/rst-and-goaway.lisp.

Constant: +settings-frame+
Package

http2/core.

Source

frames/settings.lisp.

Constant: +settings-timeout+

The endpoint sent a SETTINGS frame but did not receive a response in a timely manner

Package

http2/core.

Source

errors.lisp.

Constant: +ssl-filetype-asn1+
Package

http2/openssl.

Source

openssl.lisp.

Constant: +ssl-filetype-default+
Package

http2/openssl.

Source

openssl.lisp.

Constant: +ssl-filetype-pem+
Package

http2/openssl.

Source

openssl.lisp.

Constant: +stream-closed+

The endpoint received a frame after a stream was half-closed

Package

http2/core.

Source

errors.lisp.

Constant: +window-update-frame+
Package

http2/core.

Source

frames/data.lisp.


6.2.2 Special variables

Special Variable: *charset-names*

Translation table from header charset names to FLEXI-STREAM keywords.

Package

http2/stream-overlay.

Source

payload-streams.lisp.

Special Variable: *charset-names*

Translation table from header charset names to FLEXI-STREAM keywords.

Package

http2/client.

Source

client-utils.lisp.

Special Variable: *clients*

List of clients processed.

Package

http2/server.

Source

poll-server.lisp.

Special Variable: *default-buffer-size*
Package

http2/server.

Source

poll-server.lisp.

Special Variable: *default-encoding*

Character encoding to be used when not recognized from headers. Default is nil - binary.

Package

http2/stream-overlay.

Source

payload-streams.lisp.

Special Variable: *default-encoding*

Character encoding to be used when not recognized from headers. Default is nil - binary.

Package

http2/client.

Source

client-utils.lisp.

Special Variable: *default-handler*

Handler used as last resort - page not found.

Package

http2/server.

Source

dispatch.lisp.

Special Variable: *default-text-encoding*

Character encoding for text/ content to be used when not recognized from headers.

Package

http2/stream-overlay.

Source

payload-streams.lisp.

Special Variable: *default-text-encoding*

Character encoding for text/ content to be used when not recognized from headers.

Package

http2/client.

Source

client-utils.lisp.

Special Variable: *dummy-last-task*
Package

http2/server.

Source

scheduler.lisp.

Special Variable: *empty-fdset-items*

List of empty slots in the fdset table.

Package

http2/server.

Source

poll-server.lisp.

Special Variable: *encrypt-buf-size*

Initial size of the vector holding data to encrypt.

Package

http2/server.

Source

poll-server.lisp.

Special Variable: *error-codes*

This table maps error codes to mnemonic names - symbols.

Error codes are 32-bit fields that are used in RST_STREAM and GOAWAY frames to convey the reasons for the stream or connection error.

Error codes share a common code space. Some error codes apply only to either streams or the entire connection and have no defined semantics in the other context.

Package

http2/core.

Source

errors.lisp.

Special Variable: *exact-handlers*

Alist of paths and functions of connection and stream to make http response.

Package

http2/server.

Source

dispatch.lisp.

Special Variable: *fdset-size*

Size of the fdset - that, is, maximum number of concurrent clients.

Package

http2/server.

Source

poll-server.lisp.

Special Variable: *flag-codes-keywords*

Property list of flag names and their values..

This makes use of the fact that same flag name has same index in all headers where it is used.

Package

http2/core.

Source

frames.lisp.

Special Variable: *frame-types*

Array of frame types. It is populated later with DEFINE-FRAME-TYPE.

Package

http2/core.

Source

frames.lisp.

Special Variable: *huffman-code*

The code-and-code-size table from the RFC 7541 (hpack) appendix B

Package

http2/hpack.

Source

hpack.lisp.

Special Variable: *nagle*

If nil, disable Nagle algorithm (= enable nodelay)

Package

http2/server.

Source

poll-server.lisp.

Special Variable: *prefix-handlers*

Alist of prefixes and functions of connection and stream to make http response.

Package

http2/server.

Source

dispatch.lisp.

Special Variable: *scheduler*
Package

http2/server.

Source

scheduler.lisp.

Special Variable: *servers*

List of started servers

Package

http2/server.

Source

dispatch.lisp.

Special Variable: *settings*

See https://www.iana.org/assignments/http2-parameters/http2-parameters.xhtml

Package

http2/utils.

Source

utils.lisp.

Special Variable: *vanilla-host*
Package

http2/server.

Source

socket-dispatcher.lisp.

Special Variable: *zip-buffer-size*
Package

http2/core.

Source

gzip-decode.lisp.

Special Variable: @accepting-data
Package

http2/core.

Source

binary-payload.lisp.

Special Variable: @app-interface
Package

http2/server.

Source

poll-server.lisp.

Special Variable: @async-server
Package

http2/server.

Source

poll-server.lisp.

Special Variable: @base-classes
Package

http2/core.

Source

classes.lisp.

Special Variable: @buffer-stream-and-pipes
Package

http2/utils.

Source

pipe.lisp.

Special Variable: @buffer-stream-and-pipes-impl
Package

http2/utils.

Source

pipe.lisp.

Special Variable: @callbacks
Package

http2/core.

Source

classes.lisp.

Special Variable: @client
Package

http2/client.

Source

client.lisp.

Special Variable: @customizing-client
Package

http2/client.

Source

client.lisp.

Special Variable: @customizing-client-example-multi
Package

http2/client.

Source

client.lisp.

Special Variable: @customizing-client-reference
Package

http2/client.

Source

client.lisp.

Special Variable: @data
Package

http2/core.

Source

frames/data.lisp.

Special Variable: @data-received
Package

http2/core.

Source

classes.lisp.

Special Variable: @dispatchers
Package

http2/server.

Source

dispatch.lisp.

Special Variable: @errors
Package

http2/core.

Source

errors.lisp.

Special Variable: @frame-handler
Package

http2/core.

Source

frames.lisp.

Special Variable: @frame-headers
Package

http2/core.

Source

frames/headers.lisp.

Special Variable: @frame-parsers
Package

http2/core.

Source

frames.lisp.

Special Variable: @frame-writers
Package

http2/core.

Source

frames.lisp.

Special Variable: @frames-api
Package

http2/core.

Source

frames.lisp.

Special Variable: @frames-for-classes
Package

http2/core.

Source

frames.lisp.

Special Variable: @frames-implementation
Package

http2/core.

Source

frames.lisp.

Special Variable: @hpack-api
Package

http2/hpack.

Source

hpack.lisp.

Special Variable: @implementation
Package

http2.

Source

overview.lisp.

Special Variable: @index
Package

http2.

Source

overview.lisp.

Special Variable: @lisp-stream-emulation
Package

http2/core.

Source

binary-payload.lisp.

Special Variable: @old-frame-functions
Package

http2/core.

Source

classes.lisp.

Special Variable: @overlay
Package

http2/stream-overlay.

Source

payload-streams.lisp.

Special Variable: @overview
Package

http2.

Source

overview.lisp.

Special Variable: @reference
Package

http2.

Source

overview.lisp.

Special Variable: @request-body
Package

http2/server.

Source

dispatch.lisp.

Special Variable: @request-details
Package

http2/server.

Source

dispatch.lisp.

Special Variable: @request-handling
Package

http2/server.

Source

poll-server.lisp.

Special Variable: @rst
Package

http2/core.

Source

frames/rst-and-goaway.lisp.

Special Variable: @scheduling
Package

http2/server.

Source

scheduler.lisp.

Special Variable: @server
Package

http2/server.

Source

dispatch.lisp.

Special Variable: @server-actions
Package

http2/server.

Source

socket-dispatcher.lisp.

Special Variable: @server-classes
Package

http2/server.

Source

../tls/server.lisp.

Special Variable: @server-content
Package

http2/server.

Source

dispatch.lisp.

Special Variable: @server-mixins
Package

http2/server.

Source

dispatch.lisp.

Special Variable: @server-reference
Package

http2/server.

Source

dispatch.lisp.

Special Variable: @server/threaded
Package

http2/server.

Source

../tls/server.lisp.

Special Variable: @stream-based-connection
Package

http2/stream-overlay.

Source

stream-based-connections.lisp.

Special Variable: @stream-closed
Package

http2/core.

Source

classes.lisp.

Special Variable: @stream-states
Package

http2/core.

Source

frames/http2-stream.lisp.

Special Variable: @streams
Package

http2/core.

Source

frames/http2-stream.lisp.

Special Variable: @test
Package

http2.

Source

overview.lisp.

Special Variable: @tutorial
Package

http2.

Source

overview.lisp.

Special Variable: @tutorials
Package

http2.

Source

overview.lisp.

Special Variable: @utf8
Package

http2/core.

Source

utf8.lisp.

Special Variable: @utils
Package

http2/utils.

Source

utils.lisp.

Special Variable: @warnings
Package

http2/core.

Source

errors.lisp.

Special Variable: @write-data-handling
Package

http2/core.

Source

classes.lisp.

Special Variable: static-headers-table

Static headers table. Each element is either list of header name and value, or just header name. The content is defined in the RFC7541, and is supposed to start at index 1, so leading nil.

Package

http2/hpack.

Source

hpack.lisp.


6.2.3 Macros

Macro: check-place-empty-and-set-it (new-value accessor)

All HTTP/2 requests MUST include exactly one valid value for the :method, :scheme, and :path pseudo-header fields, unless it is a CONNECT request (Section 8.3). An HTTP request that omits mandatory pseudo-header fields is malformed (Section 8.1.2.6).

Package

http2/core.

Source

classes.lisp.

Macro: define-frame-type (type-code frame-type-name documentation (&rest parameters) (&key flags length must-have-stream-in may-have-connection must-have-connection new-stream-state bad-state-error has-reserved) writer (&body reader))

Define:
- A frame type object that allows to read frame of given type,
- a constant named ‘+foo+‘ that translates to TYPE-CODE,
- a writer function WRITE-FOO that takes CONNECTION or HTTP-STREAM and possibly other PARAMETERS and FLAGSs and writes appropriate frame.

Each PARAMETER is a list of name, size in bits or type specifier and documentation.

Package

http2/core.

Source

frames.lisp.

Macro: define-frame-writer (type-code writer-name http-connection-or-stream flags length parameters key-parameters documentation body)
Package

http2/core.

Source

frames.lisp.

Macro: define-reader (name source args &body body)
Package

http2/server.

Source

poll-server.lisp.

Macro: define-writer (name destination args &body body)
Package

http2/server.

Source

poll-server.lisp.

Macro: incf* (value-var max)
Package

http2/hpack.

Source

hpack.lisp.

Macro: scheduling-handler ((flexi-stream-name encoding gzip) &body body)

Version of HANDLER that is to be used for scheduled (or otherwise processed in
another thread) responses:
- It makes accessible in BODY function SCHEDULE that takes two parameters, delay in miliseconds and action to run after delay. See event stream implementation in the example server for the possible usage.

Package

http2/server.

Source

dispatch.lisp.

Macro: with-http2-connection ((name class lisp-stream &rest params) &body body)

Run BODY with NAME bound to instance of CLASS with parameters.

Package

http2/client.

Source

client-utils.lisp.

Macro: with-output-payload-slots (stream &body body)
Package

http2/stream-overlay.

Source

payload-streams.lisp.

Macro: with-padding-marks ((connection flags start end) &body body)
Package

http2/core.

Source

frames.lisp.

Macro: with-standard-handlers (() &body body)
Package

http2/server.

Source

socket-dispatcher.lisp.


6.2.4 Compiler macros

Compiler Macro: get-flag (flags flag-name)
Package

http2/core.

Source

frames.lisp.


6.2.5 Ordinary functions

Function: accept (fd addr addrlen)
Package

http2/server.

Source

poll-server.lisp.

Function: account-read-window-contribution (connection stream length)
Package

http2/core.

Source

frames/data.lisp.

Function: account-write-window-contribution (connection stream length)
Package

http2/core.

Source

frames/data.lisp.

Function: add-socket-to-fdset (fdset socket client)

Find free slot in the FDSET and put client there.

Package

http2/server.

Source

poll-server.lisp.

Function: add-state (client state)
Package

http2/server.

Source

poll-server.lisp.

Function: bio-test-flags (bio what)
Package

http2/openssl.

Source

openssl.lisp.

Function: change-state-on-write-end (http-stream)

Change state of the stream when STREAM-END is sent.

Package

http2/core.

Source

frames/http2-stream.lisp.

Function: check-stream-state-ok (connection http-stream ok-states bad-state-error)

Throw BAD-STATE-ERROR when the stream state is not appropriate for the frame type.

Return the HTTP-STREAM.

Package

http2/core.

Source

frames/http2-stream.lisp.

Function: checked-length (length connection)
Package

http2/core.

Source

frames.lisp.

Function: checked-r-flag (r)
Package

http2/core.

Source

frames.lisp.

Reader: client-application-data (instance)
Writer: (setf client-application-data) (instance)
Package

http2/server.

Source

poll-server.lisp.

Target Slot

application-data.

Reader: client-encrypt-buf (instance)
Writer: (setf client-encrypt-buf) (instance)
Package

http2/server.

Source

poll-server.lisp.

Target Slot

encrypt-buf.

Reader: client-encrypt-buf-size (instance)
Writer: (setf client-encrypt-buf-size) (instance)
Package

http2/server.

Source

poll-server.lisp.

Target Slot

encrypt-buf-size.

Reader: client-fd (instance)
Writer: (setf client-fd) (instance)
Package

http2/server.

Source

poll-server.lisp.

Target Slot

fd.

Reader: client-fdset-idx (instance)
Writer: (setf client-fdset-idx) (instance)
Package

http2/server.

Source

poll-server.lisp.

Target Slot

fdset-idx.

Reader: client-io-on-read (instance)
Writer: (setf client-io-on-read) (instance)
Package

http2/server.

Source

poll-server.lisp.

Target Slot

io-on-read.

Reader: client-octets-needed (instance)
Writer: (setf client-octets-needed) (instance)
Package

http2/server.

Source

poll-server.lisp.

Target Slot

octets-needed.

Function: client-p (object)
Package

http2/server.

Source

poll-server.lisp.

Reader: client-rbio (instance)
Package

http2/server.

Source

poll-server.lisp.

Target Slot

rbio.

Reader: client-ssl (instance)
Writer: (setf client-ssl) (instance)
Package

http2/server.

Source

poll-server.lisp.

Target Slot

ssl.

Reader: client-start-time (instance)
Writer: (setf client-start-time) (instance)
Package

http2/server.

Source

poll-server.lisp.

Target Slot

start-time.

Reader: client-state (instance)
Writer: (setf client-state) (instance)
Package

http2/server.

Source

poll-server.lisp.

Target Slot

state.

Reader: client-wbio (instance)
Package

http2/server.

Source

poll-server.lisp.

Target Slot

wbio.

Reader: client-write-buf (instance)
Writer: (setf client-write-buf) (instance)
Package

http2/server.

Source

poll-server.lisp.

Target Slot

write-buf.

Function: close-client-connection (fdset client)
Package

http2/server.

Source

poll-server.lisp.

Function: close-fd (fd)
Package

http2/server.

Source

poll-server.lisp.

Function: compute-header-size (header)

Size of the header for dynamic cache purposes: 32 octets plus header and name sizes, including leading : at special header names.

Package

http2/hpack.

Source

hpack.lisp.

Function: compute-timeout (dispatcher)

Compute time for wait for any communication.

This is determined by lesser of timeout for ending the communication and scheduler timeout.

Second value indicates whether the timeout should signal a condition (i.e., it is not from scheduler)

Package

http2/server.

Source

poll-server.lisp.

Function: compute-update-dynamic-size-codes (res updates)
Package

http2/hpack.

Source

hpack.lisp.

Function: concatenate* (vectors)
Package

http2/server.

Source

poll-server.lisp.

Function: copy-client (instance)
Package

http2/server.

Source

poll-server.lisp.

Function: copy-frame-type (instance)
Package

http2/core.

Source

frames.lisp.

Function: copy-priority (instance)
Package

http2/core.

Source

frames/headers.lisp.

Function: count-open-streams (connection)
Package

http2/core.

Source

classes.lisp.

Function: decode-frame-header (header start)

Decode frame header into several values:

- frame type object,
- length of the frame,
- flags,
- relevant stream, and
- R (reserved bit).

This function is primarily factored out to be TRACEd to see arriving frames.

Package

http2/core.

Source

frames.lisp.

Function: decode-huffman (bytes start end)
Package

http2/hpack.

Source

hpack.lisp.

Function: decode-huffman-to-stream (char-stream bytes start end &optional nr nr-size prefix)
Package

http2/hpack.

Source

hpack.lisp.

Function: decode-octet-fn (&optional codes)
Package

http2/hpack.

Source

hpack.lisp.

Function: decrypt-socket-octets (client vector from to)

Send data in the VECTOR between FROM and TO to the ② openssl for decryption .

Package

http2/server.

Source

poll-server.lisp.

Function: define-some-handler (target prefix fn)
Package

http2/server.

Source

dispatch.lisp.

Function: do-available-actions (client)

Run available actions as selected by SELECT-NEXT-ACTION till there is none.

Package

http2/server.

Source

poll-server.lisp.

Function: do-ping-fn (connection data &optional start end)
Package

http2/core.

Source

frames/ping.lisp.

Function: do-pong-fn (connection data &optional start end)
Package

http2/core.

Source

frames/ping.lisp.

Function: double-buffer-size (old)

Analog of realloc.

Package

http2/server.

Source

poll-server.lisp.

Function: doubled-buffer (buffer)

Return a larger buffer with same initial data as the provided one.

Package

http2/server.

Source

poll-server.lisp.

Function: dynamic-table-entry-size (name value)

The size of an entry is the sum of its name’s length in octets (as defined in Section 5.2), its value’s length in octets, and 32.

The size of an entry is calculated using the length of its name and value without any Huffman encoding applied.

Package

http2/core.

Source

classes.lisp.

Function: dynamic-table-value (context idx)

Header on position IDX in the dynamic table in CONTEXT.

This is factored out to be used in testing.

Package

http2/hpack.

Source

hpack.lisp.

Function: empty-data-p (data)
Package

http2/stream-overlay.

Source

payload-streams.lisp.

Function: encode-dynamic-table-update (res new-size)

Encode table update to NEW-SIZE to an adjustable array RES.

Package

http2/hpack.

Source

hpack.lisp.

Function: encode-header (name value &optional context huffman)

Encode header consisting of NAME and VALUE.

The ‘never-indexed‘ format is never generated,
use a separate function for this (and this function needs to be written).

When CONTEXT is provided, use incremental indexing with dynamic table in that CONTEXT.

Use Huffman when HUFFMAN is true.

Package

http2/hpack.

Source

hpack.lisp.

Function: encode-huffman (string res)

Convert string to huffman encoding.

Package

http2/hpack.

Source

hpack.lisp.

Function: encrypt-and-send (client)
Package

http2/server.

Source

poll-server.lisp.

Function: encrypt-data (client)

Encrypt data in client’s ENCRYPT-BUF.

Do nothing if there is no data to encrypt or SSL not yet initialized (and return zero).

Otherwise, use a temporary vector to write data

Package

http2/server.

Source

poll-server.lisp.

Function: encrypt-some (client vector from to)

Move octets from VECTOR to the OUTPUT-SSL.

Return 0 when no data are
available. Raise an error on error.

Package

http2/server.

Source

poll-server.lisp.

Function: err-get-error ()
Package

http2/openssl.

Source

openssl.lisp.

Function: errno ()

See man errno(3).

Package

http2/server.

Source

poll-server.lisp.

Function: errno% ()
Package

http2/server.

Source

poll-server.lisp.

Function: extract-charset-from-content-type (content-type)

Guess charset from the content type. NIL for binary data.

Package

http2/stream-overlay.

Source

payload-streams.lisp.

Function: fcntl (fd cmd value)
Package

http2/server.

Source

poll-server.lisp.

Function: find-header-in-tables (context name)

Find header NAME in static table and, if CONNECTION is not null, in its dynamic table. Return the index, or NIL if not found.

Package

http2/hpack.

Source

hpack.lisp.

Function: find-in-tables (context item test key static-end)

Find something (pair or header name) in static and possibly dynamic table.

Package

http2/hpack.

Source

hpack.lisp.

Function: find-just-stream-by-id (streams id)

Find STREAM by ID in STREAMS, or :closed

The list of streams should already be sorted from high number to low number, so we could stop as soon as we can see lower value. However, we assume the list needed to be searched is pretty short so we do not care.

Package

http2/core.

Source

frames/http2-stream.lisp.

Function: find-matching-handler (path connection)

Function that should prepare response for request on PATH in streams of given CONNECTION.

Package

http2/server.

Source

dispatch.lisp.

Function: find-pair-in-tables (context pair)

Find header PAIR in static table and, if CONNECTION is not null, in its dynamic table. Return the index, or NIL if not found.

Package

http2/hpack.

Source

hpack.lisp.

Function: flags-to-code (pars)
Package

http2/core.

Source

frames.lisp.

Reader: frame-type-bad-state-error (instance)
Writer: (setf frame-type-bad-state-error) (instance)
Package

http2/core.

Source

frames.lisp.

Target Slot

bad-state-error.

Reader: frame-type-connection-ok (instance)
Writer: (setf frame-type-connection-ok) (instance)
Package

http2/core.

Source

frames.lisp.

Target Slot

connection-ok.

Reader: frame-type-documentation (instance)
Writer: (setf frame-type-documentation) (instance)
Package

http2/core.

Source

frames.lisp.

Target Slot

documentation.

Reader: frame-type-flag-keywords (instance)
Writer: (setf frame-type-flag-keywords) (instance)
Package

http2/core.

Source

frames.lisp.

Target Slot

flag-keywords.

Reader: frame-type-name (instance)
Writer: (setf frame-type-name) (instance)
Package

http2/core.

Source

frames.lisp.

Target Slot

name.

Reader: frame-type-new-stream-state (instance)
Writer: (setf frame-type-new-stream-state) (instance)
Package

http2/core.

Source

frames.lisp.

Target Slot

new-stream-state.

Reader: frame-type-old-stream-ok (instance)
Writer: (setf frame-type-old-stream-ok) (instance)
Package

http2/core.

Source

frames.lisp.

Target Slot

old-stream-ok.

Function: frame-type-p (object)
Package

http2/core.

Source

frames.lisp.

Reader: frame-type-receive-fn (instance)
Writer: (setf frame-type-receive-fn) (instance)
Package

http2/core.

Source

frames.lisp.

Target Slot

receive-fn.

Function: get-flag (flags flag-name)
Package

http2/core.

Source

frames.lisp.

Function: get-integer-from-octet (initial-octet bit-size data start end)

Decode an integer from starting OCTET and additional octets in STREAM as defined in RFC7541 sect. 5.1.

Package

http2/hpack.

Source

hpack.lisp.

Function: get-next-task (scheduler)
Package

http2/server.

Source

scheduler.lisp.

Function: handle-client-io (client fdset)
Package

http2/server.

Source

poll-server.lisp.

Function: handle-ssl-errors (client ret)

Check real error after a call to SSL_connect, SSL_accept, SSL_do_handshake, SSL_read_ex, SSL_read, SSL_peek_ex, SSL_peek, SSL_shutdown, SSL_write_ex or SSL_write.

If the operation was successfully completed, do nothing.

If it is a harmless one (want read or want write), try to process the data.

Raise error otherwise.

Package

http2/server.

Source

poll-server.lisp.

Function: has-flag (flags flag-name allowed)
Package

http2/core.

Source

frames.lisp.

Function: header-writer (res name value &optional context huffman noindex)

Encode header consisting of NAME and VALUE to a fillable array RES..

The ‘never-indexed‘ format is never generated, use a separate function for this (and this function needs to be written).

When CONTEXT is provided, use incremental indexing with dynamic table in that CONTEXT.

Use Huffman when HUFFMAN is true.

Package

http2/hpack.

Source

hpack.lisp.

Function: huffman-coded-size (string)

Size of huffman-coded text

Package

http2/hpack.

Source

hpack.lisp.

Function: if-state (client state)
Package

http2/server.

Source

poll-server.lisp.

Function: init-fdset (fdset size)
Package

http2/server.

Source

poll-server.lisp.

Function: integer-to-array (integer bit-size mask)

Represent integer to a vector as defined in RFC7541 sect. 5.1.

Package

http2/hpack.

Source

hpack.lisp.

Function: make-client% (&key fd ssl rbio wbio write-buf encrypt-buf io-on-read fdset-idx octets-needed encrypt-buf-size start-time state application-data)
Package

http2/server.

Source

poll-server.lisp.

Function: make-client-object (socket ctx s-mem)

Create new CLIENT object suitable for TLS server.

Initially, the ENCRYPT-BUFFER contains the settings to send, and next action is reading of client hello.

Package

http2/server.

Source

poll-server.lisp.

Function: make-cond-branch (i prefix code)

Return decoder code for I matching PREFIX among codes.

Package

http2/hpack.

Source

hpack.lisp.

Function: make-frame-type (&key documentation name receive-fn old-stream-ok new-stream-state connection-ok bad-state-error flag-keywords)
Package

http2/core.

Source

frames.lisp.

Function: make-priority (&key exclusive stream-dependency weight)
Package

http2/core.

Source

frames/headers.lisp.

Function: make-release-documentation ()

Make package documentation for the release:

- HTML documentation files,
- README to be distributed with the package

Package

http2.

Source

overview.lisp.

Function: make-transport-input-stream (raw-stream charset gzip)

INPUT-STREAM built atop RAW-STREAM.

Guess encoding and need to gunzip from headers: - apply zip decompression if gzip is set
- if charset is not null, use it to convert to text.

Package

http2/stream-overlay.

Source

payload-streams.lisp.

Function: make-transport-input-stream-from-stream (raw-stream charset encoded)

INPUT-STREAM built atop RAW-STREAM.

Guess encoding and need to gunzip from headers:
- apply zip decompression content-encoding is gzip (FIXME: also compression) - use charset if understood in content-type
- otherwise guess whether text (use UTF-8) or binary.

Package

http2/stream-overlay.

Source

payload-streams.lisp.

Function: make-transport-output-stream-from-stream (raw-stream charset gzip)

An OUTPUT-STREAM built atop RAW STREAM with added charset and possibly compression.

Package

http2/stream-overlay.

Source

payload-streams.lisp.

Function: make-unknown-frame-type (type)
Package

http2/core.

Source

frames.lisp.

Function: maybe-init-ssl (client)

If SSL is not initialized yet, initialize it.

Package

http2/server.

Source

poll-server.lisp.

Function: move-encrypted-bytes (client)

Move data encrypted by OpenSSL to the socket write queue Ⓔ.

This should be called in a way friendly to Nagle algorithm. My understaning is this is either when we pipeline a lot of data, or when we send out somethinf that expects a response.

Package

http2/server.

Source

poll-server.lisp.

Function: on-complete-ssl-data (client)

Read number of octets indicated in CLIENT into a vector and then apply client fn on it.

FIXME: process that anyway

Package

http2/server.

Source

poll-server.lisp.

Function: padded-length (length padding)

Length of the frame with added padding (incl. padding size).

Package

http2/core.

Source

frames.lisp.

Function: pages ()
Package

http2.

Source

overview.lisp.

Function: parse-header-frame* (active-stream data connection flags start length)
Package

http2/core.

Source

frames/headers.lisp.

Function: parse-simple-frames-header-end-all (connection data &optional start end)
Package

http2/core.

Source

frames/headers.lisp.

Function: peer-opens-http-stream-really-open (connection stream-id state)
Package

http2/core.

Source

frames/http2-stream.lisp.

Function: poll (fdset rb timeout)
Package

http2/server.

Source

poll-server.lisp.

Function: pop-frame (data)
Package

http2/stream-overlay.

Source

payload-streams.lisp.

Reader: priority-exclusive (instance)
Writer: (setf priority-exclusive) (instance)
Package

http2/core.

Source

frames/headers.lisp.

Target Slot

exclusive.

Function: priority-p (object)
Package

http2/core.

Source

frames/headers.lisp.

Reader: priority-stream-dependency (instance)
Writer: (setf priority-stream-dependency) (instance)
Package

http2/core.

Source

frames/headers.lisp.

Target Slot

stream-dependency.

Reader: priority-weight (instance)
Writer: (setf priority-weight) (instance)
Package

http2/core.

Source

frames/headers.lisp.

Target Slot

weight.

Function: process-client-fd (fd-ptr client)

Process events available on FD-PTR (a pointer to struct pollfd) with CLIENT.

The new possible action corresponding to ① or ⑥ on the diagram above is added to the client state and DO-AVAILABLE-ACTIONS is called to react to that.

Package

http2/server.

Source

poll-server.lisp.

Function: process-client-sockets (fdset nread)
Package

http2/server.

Source

poll-server.lisp.

Function: process-data-on-socket (client)

Read data from client socket ① and pass them to the tls buffer ② to decrypt.

Package

http2/server.

Source

poll-server.lisp.

Function: process-new-client (fdset listening-socket ctx s-mem)

Add new client: accept connection, create client and add it to pollfd and to *clients*.

Package

http2/server.

Source

poll-server.lisp.

Function: process-server-stream (stream &key connection-class connection)

Make a HTTP2 connection of CONNECTION-CLASS on the underlying STREAM (that is a stream in Common Lisp sense, so either network stream or even standard io) and read frames from it until END-OF-FILE (client closed the underlying stream - or maybe we do) or GO-AWAY (client closes connection - or maybe we do) is signalled.

Package

http2/server.

Source

dispatch.lisp.

Function: process-ssl-errors ()
Package

http2/openssl.

Source

poll-openssl.lisp.

Function: pull-once-push-bytes (client in-fn out-fn)

Read data using IN-FN and write them out using OUT-FN.

Pass CLIENT as the first argument to both of them. the other are vector to read or write and the size to read or write. Read function should return number of bytes read.

Finish when the last read reads nothing.

Assumes writes cannot fail.

Package

http2/server.

Source

poll-server.lisp.

Function: pull-push-bytes (client in-fn out-fn)

Read data using IN-FN and write them out using OUT-FN.

Pass CLIENT as the first argument to both of them. the other are vector to read or write and the size to read or write. Read function should return number of bytes read.

Finish when the last read reads nothing.

Assumes writes cannot fail.

Package

http2/server.

Source

poll-server.lisp.

Function: push-bytes (client next-fn out-fn vector from to)

Process octets in the VECTOR in the interval <FROM TO).

Call OUT-FN on VECTOR, FROM TO. It returns number of processed octets (or 0 if
none, or raises an error). If something is written, NEXT-FN is also called to do "next stage".

Repeat on partial write.

Package

http2/server.

Source

poll-server.lisp.

Function: push-frame (data frame)
Package

http2/stream-overlay.

Source

payload-streams.lisp.

Function: queue-encrypted-bytes (client new-data from to)

Move octets from NEW-DATA to the WRITE-BUFFER.

Return 0 when no data are
available. Raise an error on error.

Package

http2/server.

Source

poll-server.lisp.

Function: read-2 (fd buf size)
Package

http2/server.

Source

poll-server.lisp.

Function: read-and-add-headers (data http-stream start end flags header-flags)

Read http headers from payload in DATA, starting at START.

Returns next function to call and size of expected data. If the END-HEADERS was present, it would be PARSE-FRAME-HEADER, if not a continuation frame is to be read.

Note that END-STREAM is present in the first header flag, not in the continuation flags, if any, so must be separate.

Package

http2/core.

Source

frames/headers.lisp.

Function: read-continuation-frame-on-demand (expected-stream old-data old-data-start old-data-end header-flags)
Package

http2/core.

Source

frames/headers.lisp.

Function: read-encrypted-from-openssl (client vec size)

Move up to SIZE octets from BIO-OUT to the VEC.

Return 0 when no data are
available. Raise an error on error.

Package

http2/server.

Source

poll-server.lisp.

Function: read-from-peer (client vec vec-size)

Move up to VEC-SIZE octets from PEER-IN to the VEC.

Return 0 when no data are
available. Raise an error on error.

Package

http2/server.

Source

poll-server.lisp.

Function: read-from-tables (index context)

Read item on INDEX in static table or dynamic table in CONNECTION.

Package

http2/hpack.

Source

hpack.lisp.

Function: read-http-header (context data start end)

Read one header from network stream using READ-BYTE* as two-item list (NAME
VALUE) using dynamic table CONTEXT. Update CONTEXT appropriately.

Can also return NIL if no header is available if it is not detected earlier; this can happen, e.g., when there is a zero sized continuation header frame..

Package

http2/hpack.

Source

hpack.lisp.

Function: read-huffman (len data start)

Read Huffman coded text of length LEN from STREAM.

Package

http2/hpack.

Source

hpack.lisp.

Function: read-literal-header-field-new-name (data start end)

See 6.2.1 fig. 7, and 6.2.2. fig. 9 -
Neither name of the header nor value is in table, so read both as literals.

Package

http2/hpack.

Source

hpack.lisp.

Function: read-literal-header-indexed-name (octet0 context use-bits data start end)

See Fig. 6 and Fig. 8 - Name of header is in tables, value is literal.

Use USE-BITS from the OCTET0 for name index

Package

http2/hpack.

Source

hpack.lisp.

Function: read-padding-from-vector (connection data &optional start end)

Ignore the padding octets. Frame header is next FIXME: might be also continuation-frame-header

Package

http2/core.

Source

frames.lisp.

Function: read-priority (data http-stream start)
Package

http2/core.

Source

frames/headers.lisp.

Function: read-string-from-stream (data start end)

Read string literal from a STREAM as defined in RFC7541 sect 5.2.

Package

http2/hpack.

Source

hpack.lisp.

Function: remove-state (client state)
Package

http2/server.

Source

poll-server.lisp.

Function: run-mature-tasks (scheduler)
Package

http2/server.

Source

scheduler.lisp.

Function: run-user-callback (client vec)

Run user defined callback and user return values to set next action.

Package

http2/server.

Source

poll-server.lisp.

Function: select-next-action (client)

One of possible next actions consistent with then the state of the client, or nil if no action is available.

This is factored out so that it can be traced. There is a TLS-SERVER/MEASURE::ACTIONS clip on this function.

Package

http2/server.

Source

poll-server.lisp.

Function: send-buffer-to-peer (output-buffer peer-window-size stream connection)
Package

http2/stream-overlay.

Source

payload-streams.lisp.

Function: send-data (stream sequence start size)

Send data in OUTPUT-BUFFER and SIZE data from SEQUENCE starting at START in one data frame; mark them as sent.

Return new START.

Package

http2/stream-overlay.

Source

payload-streams.lisp.

Function: send-to-peer (client vector from to)

Move octets from VECTOR to the PEER-OUT.

Return 0 when no data are
available. Raise an error on error.

Package

http2/server.

Source

poll-server.lisp.

Function: send-unencrypted-bytes (client new-data comment)

Collect new data to be encrypted and sent to client.

Data are just concatenated to the ENCRYPT-BUF. Later, they would be encrypted and passed.

Package

http2/server.

Source

poll-server.lisp.

Function: serve-tls (listening-socket dispatcher)
Package

http2/server.

Source

poll-server.lisp.

Function: set-fd-slot (fdset socket new-events idx)

Set FD and EVENTS of slot IDX in fdset.

Package

http2/server.

Source

poll-server.lisp.

Function: set-next-action (client action size)

Set action for next chunk of received data.

Package

http2/server.

Source

poll-server.lisp.

Function: setsockopt (fd level optname optval optlen)
Package

http2/server.

Source

poll-server.lisp.

Function: setup-new-connect-pollfd (fdset listening-socket)
Package

http2/server.

Source

poll-server.lisp.

Function: setup-port (socket nagle)

Set the TCP socket: nonblock and possibly nagle.

Package

http2/server.

Source

poll-server.lisp.

Function: ssl-ctx-check-private-key (ctx)
Package

http2/openssl.

Source

openssl.lisp.

Function: ssl-ctx-ctrl (ctx cmd value args)
Package

http2/openssl.

Source

openssl.lisp.

Function: ssl-ctx-free (ctx)
Package

http2/openssl.

Source

openssl.lisp.

Function: ssl-ctx-new (method)
Package

http2/openssl.

Source

openssl.lisp.

Function: ssl-ctx-set-alpn-select-cb (ctx alpn-select-cb)
Package

http2/openssl.

Source

openssl.lisp.

Function: ssl-ctx-set-options (ctx options)
Package

http2/openssl.

Source

openssl.lisp.

Function: ssl-ctx-use-certificate-chain-file (ctx filename)
Package

http2/openssl.

Source

openssl.lisp.

Function: ssl-ctx-use-certificate-file (ctx path type)
Package

http2/openssl.

Source

openssl.lisp.

Function: ssl-ctx-use-private-key-file (ctx filename type)
Package

http2/openssl.

Source

openssl.lisp.

Function: ssl-ctx-use-privatekey-file (ctx path type)
Package

http2/openssl.

Source

openssl.lisp.

Function: ssl-err-reason-error-string (code)
Package

http2/server.

Source

poll-server.lisp.

Function: ssl-get-error (ssl ret)
Package

http2/openssl.

Source

openssl.lisp.

Function: ssl-pending (ssl)
Package

http2/openssl.

Source

openssl.lisp.

Function: ssl-read (client vec size)

Move up to SIZE octets from the decrypted SSL ③ to the VEC.

Return 0 when no data are available. Possibly remove CAN-READ-SSL flag.

Package

http2/server.

Source

poll-server.lisp.

Function: ssl-select-next-proto (out outlen server serverlen client clientlen)
Package

http2/openssl.

Source

openssl.lisp.

Function: ssl-write (ssl buffer bufsize)
Package

http2/openssl.

Source

openssl.lisp.

Function: states-to-string (state)

Short string describing the state using codes on the diagram.

Package

http2/server.

Source

poll-server.lisp.

Function: store-string (string res huffman)

Add STRING to fillable array RES in format defined by HPACK, possibly using huffman encoding.

Package

http2/hpack.

Source

hpack.lisp.

Function: strerror (errnum)

Lisp string for particular error. See man strerror(3).

Package

http2/server.

Source

poll-server.lisp.

Function: strerror-r% (errnum buffer buflen)
Package

http2/server.

Source

poll-server.lisp.

Function: time-to-action (task)
Package

http2/server.

Source

scheduler.lisp.

Function: tls-method ()
Package

http2/openssl.

Source

openssl.lisp.

Function: utf-first-char-size (octet)
Package

http2/core.

Source

utf8.lisp.

Function: utf-is-first-char (octet)
Package

http2/core.

Source

utf8.lisp.

Function: vector-index-to-hpack-index (table idx)

Convert between hpack index and index in the vector. This works both ways.

Package

http2/hpack.

Source

hpack.lisp.

Function: wait-for-window-is-at-least-frame-size (connection http-stream)
Package

http2/stream-overlay.

Source

payload-streams.lisp.

Function: write-2 (fd buf size)
Package

http2/server.

Source

poll-server.lisp.

Function: write-31-bits (vector start value flag)

Write 31 bits of VALUE to a VECTOR. Set first bit if FLAG is set.

Package

http2/core.

Source

frames.lisp.

Function: write-body-and-padding (buffer fn padded pars)

Add payload and possibly padding to a BUFFER that already contains 9 octets of the header.

Package

http2/core.

Source

frames.lisp.

Function: write-data-to-socket (client)

Write buffered encrypted data Ⓔ to the client socket ⑥. Update the write buffer to keep what did not fit.

Package

http2/server.

Source

poll-server.lisp.

Function: write-frame (http-connection-or-stream length type-code keys writer &rest pars)

Universal function to write a frame to a stream and account for possible stream state change.

Queues using QUEUE-FRAME an octet vector with the frame, including
frame header (9 octets) and padding octets.

The payload is generated using WRITER object. The WRITER takes CONNECTION and PARS as its parameters.

Package

http2/core.

Source

frames.lisp.

Function: write-indexed-header-pair (res index)
Package

http2/hpack.

Source

hpack.lisp.

Function: write-indexed-name (res code index value use-bits huffman)
Package

http2/hpack.

Source

hpack.lisp.

Function: write-integer-to-array (array integer bit-size mask)

Write integer to a fillable vector as defined in RFC7541 sect. 5.1.

Return the fillable vector.

Package

http2/hpack.

Source

hpack.lisp.

Function: write-literal-header-pair (res code name value huffman)
Package

http2/hpack.

Source

hpack.lisp.

Function: write-octets-to-decrypt (client vector from to)

Move octets from VECTOR to the OPENSSL-TO-DECRYPT.

Return 0 when no data are
available. Raise an error on error.

Package

http2/server.

Source

poll-server.lisp.

Function: write-priority (priority buffer start &optional headers)
Package

http2/core.

Source

frames/data.lisp.

Function: write-sequences (stream headers)

Write a tree of sequences to stream.

Package

http2/core.

Source

classes.lisp.

Function: write-simple-headers-frame (stream headers &rest keys &key end-headers end-stream)

No priority, no padding. +-+————-+———————————————–+ | Header Block Fragment (*) ... +—————————————————————+ “‘

The HEADERS frame (type=0x1) is used to open a stream (Section 5.1), and additionally carries a header block fragment. HEADERS frames can .be sent on a stream in the "idle", "reserved (local)", "open", or "half-closed (remote)" state.

Package

http2/core.

Source

frames/headers.lisp.

Function: write-stream-id (stream value reserved)

Write STREAM-ID to the binary stream

Package

http2/core.

Source

frames.lisp.


6.2.6 Generic functions

Generic Function: add-dynamic-header (context header)
Package

http2/hpack.

Methods
Method: add-dynamic-header (context header)

Add dynamic header to a table. Return the header.

Source

hpack.lisp.

Generic Function: cleanup-connection (connection)

Remove resources associated with a server connection. Called after connection is closed.

Package

http2/server.

Source

dispatch.lisp.

Methods
Method: cleanup-connection :after ((connection threaded-server-mixin))
Source

threaded.lisp.

Method: cleanup-connection (connection)
Generic Function: do-ping (connection data)

Called when ping-frame without ACK is received. By default send ping-frame with ACK and same data.

Package

http2/core.

Source

frames/ping.lisp.

Methods
Method: do-ping (connection data)
Generic Reader: get-acked-settings (object)
Package

http2/core.

Methods
Reader Method: get-acked-settings ((http2-connection http2-connection))

automatically generated reader method

Source

classes.lisp.

Target Slot

acked-settings.

Generic Writer: (setf get-acked-settings) (object)
Package

http2/core.

Methods
Writer Method: (setf get-acked-settings) ((http2-connection http2-connection))

automatically generated writer method

Source

classes.lisp.

Target Slot

acked-settings.

Generic Reader: get-action-name (object)
Package

http2/server.

Methods
Reader Method: get-action-name ((scheduled-task scheduled-task))

automatically generated reader method

Source

scheduler.lisp.

Target Slot

action-name.

Generic Writer: (setf get-action-name) (object)
Package

http2/server.

Methods
Writer Method: (setf get-action-name) ((scheduled-task scheduled-task))

automatically generated writer method

Source

scheduler.lisp.

Target Slot

action-name.

Generic Reader: get-action-to-run (object)
Package

http2/server.

Methods
Reader Method: get-action-to-run ((scheduled-task scheduled-task))

automatically generated reader method

Source

scheduler.lisp.

Target Slot

action-to-run.

Generic Writer: (setf get-action-to-run) (object)
Package

http2/server.

Methods
Writer Method: (setf get-action-to-run) ((scheduled-task scheduled-task))

automatically generated writer method

Source

scheduler.lisp.

Target Slot

action-to-run.

Generic Reader: get-actual (condition)
Generic Writer: (setf get-actual) (condition)
Package

http2/core.

Methods
Reader Method: get-actual ((condition bad-stream-state))
Writer Method: (setf get-actual) ((condition bad-stream-state))
Source

errors.lisp.

Target Slot

actual.

Generic Reader: get-allowed (condition)
Generic Writer: (setf get-allowed) (condition)
Package

http2/core.

Methods
Reader Method: get-allowed ((condition bad-stream-state))
Writer Method: (setf get-allowed) ((condition bad-stream-state))
Source

errors.lisp.

Target Slot

allowed.

Reader Method: get-allowed ((condition incorrect-setting-value))
Writer Method: (setf get-allowed) ((condition incorrect-setting-value))
Source

errors.lisp.

Target Slot

allowed.

Generic Reader: get-alpn (condition)
Generic Writer: (setf get-alpn) (condition)
Package

http2/server.

Methods
Reader Method: get-alpn ((condition not-http2-stream))
Writer Method: (setf get-alpn) ((condition not-http2-stream))
Source

threaded.lisp.

Target Slot

alpn.

Generic Reader: get-base-http2-stream (object)
Package

http2/stream-overlay.

Methods
Reader Method: get-base-http2-stream ((payload-stream payload-stream))

automatically generated reader method

Source

payload-streams.lisp.

Target Slot

base-http2-stream.

Generic Writer: (setf get-base-http2-stream) (object)
Package

http2/stream-overlay.

Methods
Writer Method: (setf get-base-http2-stream) ((payload-stream payload-stream))

automatically generated writer method

Source

payload-streams.lisp.

Target Slot

base-http2-stream.

Generic Reader: get-broken-char (object)
Package

http2/core.

Methods
Reader Method: get-broken-char ((utf8-parser-mixin utf8-parser-mixin))

automatically generated reader method

Source

utf8.lisp.

Target Slot

broken-char.

Generic Writer: (setf get-broken-char) (object)
Package

http2/core.

Methods
Writer Method: (setf get-broken-char) ((utf8-parser-mixin utf8-parser-mixin))

automatically generated writer method

Source

utf8.lisp.

Target Slot

broken-char.

Generic Reader: get-buffer (object)
Package

http2/utils.

Methods
Reader Method: get-buffer ((pipe-end-for-read pipe-end-for-read))

automatically generated reader method

Source

pipe.lisp.

Target Slot

buffer.

Generic Writer: (setf get-buffer) (object)
Package

http2/utils.

Methods
Writer Method: (setf get-buffer) ((pipe-end-for-read pipe-end-for-read))

automatically generated writer method

Source

pipe.lisp.

Target Slot

buffer.

Generic Reader: get-bytes-left-in-table (object)
Package

http2/hpack.

Methods
Reader Method: get-bytes-left-in-table ((hpack-context hpack-context))

automatically generated reader method

Source

hpack.lisp.

Target Slot

bytes-left-in-table.

Generic Writer: (setf get-bytes-left-in-table) (object)
Package

http2/hpack.

Methods
Writer Method: (setf get-bytes-left-in-table) ((hpack-context hpack-context))

automatically generated writer method

Source

hpack.lisp.

Target Slot

bytes-left-in-table.

Generic Reader: get-charset (object)
Package

http2/stream-overlay.

Methods
Reader Method: get-charset ((http2-stream-with-input-stream http2-stream-with-input-stream))

automatically generated reader method

Source

payload-streams.lisp.

Target Slot

charset.

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

http2/stream-overlay.

Methods
Writer Method: (setf get-charset) ((http2-stream-with-input-stream http2-stream-with-input-stream))

automatically generated writer method

Source

payload-streams.lisp.

Target Slot

charset.

Generic Reader: get-class (condition)
Generic Writer: (setf get-class) (condition)
Package

http2/core.

Methods
Reader Method: get-class ((condition no-payload-action))
Writer Method: (setf get-class) ((condition no-payload-action))
Source

errors.lisp.

Target Slot

class.

Generic Reader: get-client (object)
Package

http2/server.

Methods
Reader Method: get-client ((poll-server-connection poll-server-connection))

automatically generated reader method

Source

poll-server.lisp.

Target Slot

client.

Generic Writer: (setf get-client) (object)
Package

http2/server.

Methods
Writer Method: (setf get-client) ((poll-server-connection poll-server-connection))

automatically generated writer method

Source

poll-server.lisp.

Target Slot

client.

Generic Reader: get-code (condition)
Generic Writer: (setf get-code) (condition)
Package

http2/core.

Methods
Reader Method: get-code ((condition http-stream-error))
Writer Method: (setf get-code) ((condition http-stream-error))
Source

errors.lisp.

Target Slot

code.

Reader Method: get-code ((condition connection-error))
Writer Method: (setf get-code) ((condition connection-error))
Source

errors.lisp.

Target Slot

code.

Generic Reader: get-code (condition)
Generic Writer: (setf get-code) (condition)
Package

http2/server.

Methods
Reader Method: get-code ((condition ssl-error-condition))
Writer Method: (setf get-code) ((condition ssl-error-condition))
Source

poll-server.lisp.

Target Slot

code.

Generic Reader: get-compression (object)
Package

http2/stream-overlay.

Methods
Reader Method: get-compression ((http2-stream-with-input-stream http2-stream-with-input-stream))

automatically generated reader method

Source

payload-streams.lisp.

Target Slot

compression.

Generic Writer: (setf get-compression) (object)
Package

http2/stream-overlay.

Methods
Writer Method: (setf get-compression) ((http2-stream-with-input-stream http2-stream-with-input-stream))

automatically generated writer method

Source

payload-streams.lisp.

Target Slot

compression.

Generic Reader: get-compression-context (object)
Package

http2/core.

Methods
Reader Method: get-compression-context ((hpack-endpoint hpack-endpoint))

automatically generated reader method

Source

frames/headers.lisp.

Target Slot

compression-context.

Generic Writer: (setf get-compression-context) (object)
Package

http2/core.

Methods
Writer Method: (setf get-compression-context) ((hpack-endpoint hpack-endpoint))

automatically generated writer method

Source

frames/headers.lisp.

Target Slot

compression-context.

Generic Reader: get-connection-args (object)
Package

http2/server.

Methods
Reader Method: get-connection-args ((base-dispatcher base-dispatcher))

automatically generated reader method

Source

socket-dispatcher.lisp.

Target Slot

connection-args.

Generic Writer: (setf get-connection-args) (object)
Package

http2/server.

Methods
Writer Method: (setf get-connection-args) ((base-dispatcher base-dispatcher))

automatically generated writer method

Source

socket-dispatcher.lisp.

Target Slot

connection-args.

Generic Reader: get-connection-class (object)
Package

http2/server.

Methods
Reader Method: get-connection-class ((base-dispatcher base-dispatcher))

automatically generated reader method

Source

socket-dispatcher.lisp.

Target Slot

connection-class.

Generic Writer: (setf get-connection-class) (object)
Package

http2/server.

Methods
Writer Method: (setf get-connection-class) ((base-dispatcher base-dispatcher))

automatically generated writer method

Source

socket-dispatcher.lisp.

Target Slot

connection-class.

Generic Reader: get-content (object)
Package

http2/client.

Methods
Reader Method: get-content ((request-with-body request-with-body))

automatically generated reader method

Source

client.lisp.

Target Slot

content.

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

http2/client.

Methods
Writer Method: (setf get-content) ((request-with-body request-with-body))

automatically generated writer method

Source

client.lisp.

Target Slot

content.

Generic Reader: get-content-type (object)
Package

http2/client.

Methods
Reader Method: get-content-type ((request-with-body request-with-body))

automatically generated reader method

Source

client.lisp.

Target Slot

content-type.

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

http2/client.

Methods
Writer Method: (setf get-content-type) ((request-with-body request-with-body))

automatically generated writer method

Source

client.lisp.

Target Slot

content-type.

Generic Reader: get-data (condition)
Generic Writer: (setf get-data) (condition)
Package

http2/stream-overlay.

Methods
Reader Method: get-data ((payload-input-stream payload-input-stream))
Writer Method: (setf get-data) ((payload-input-stream payload-input-stream))

tlist of accepted frames

Source

payload-streams.lisp.

Target Slot

data.

Reader Method: get-data ((condition window-is-closed))
Writer Method: (setf get-data) ((condition window-is-closed))
Source

payload-streams.lisp.

Target Slot

data.

Reader Method: get-data ((condition http2-write-data-stall))
Source

payload-streams.lisp.

Target Slot

data.

Generic Reader: get-data (object)
Package

http2/core.

Methods
Reader Method: get-data ((http2-stream http2-stream))

automatically generated reader method

Source

classes.lisp.

Target Slot

data.

Generic Writer: (setf get-data) (object)
Package

http2/core.

Methods
Writer Method: (setf get-data) ((http2-stream http2-stream))

automatically generated writer method

Source

classes.lisp.

Target Slot

data.

Generic Reader: get-debug-data (condition)
Generic Writer: (setf get-debug-data) (condition)
Package

http2/core.

Methods
Reader Method: get-debug-data ((condition go-away))
Writer Method: (setf get-debug-data) ((condition go-away))
Source

errors.lisp.

Target Slot

debug-data.

Generic Reader: get-decompression-context (object)
Package

http2/core.

Methods
Reader Method: get-decompression-context ((hpack-endpoint hpack-endpoint))

automatically generated reader method

Source

frames/headers.lisp.

Target Slot

decompression-context.

Generic Writer: (setf get-decompression-context) (object)
Package

http2/core.

Methods
Writer Method: (setf get-decompression-context) ((hpack-endpoint hpack-endpoint))

automatically generated writer method

Source

frames/headers.lisp.

Target Slot

decompression-context.

Generic Reader: get-deleted-items (object)
Package

http2/hpack.

Methods
Reader Method: get-deleted-items ((hpack-context hpack-context))

automatically generated reader method

Source

hpack.lisp.

Target Slot

deleted-items.

Generic Writer: (setf get-deleted-items) (object)
Package

http2/hpack.

Methods
Writer Method: (setf get-deleted-items) ((hpack-context hpack-context))

automatically generated writer method

Source

hpack.lisp.

Target Slot

deleted-items.

Generic Reader: get-depends-on (object)
Package

http2/core.

Methods
Reader Method: get-depends-on ((http2-stream http2-stream))

automatically generated reader method

Source

classes.lisp.

Target Slot

depends-on.

Generic Writer: (setf get-depends-on) (object)
Package

http2/core.

Methods
Writer Method: (setf get-depends-on) ((http2-stream http2-stream))

automatically generated writer method

Source

classes.lisp.

Target Slot

depends-on.

Generic Reader: get-dispatcher (condition)
Generic Writer: (setf get-dispatcher) (condition)
Package

http2/server.

Methods
Reader Method: get-dispatcher ((condition unsupported-server-setup))
Writer Method: (setf get-dispatcher) ((condition unsupported-server-setup))
Source

socket-dispatcher.lisp.

Target Slot

dispatcher.

Generic Reader: get-dstate (object)
Package

http2/core.

Methods
Reader Method: get-dstate ((gzip-decoding-mixin gzip-decoding-mixin))

automatically generated reader method

Source

gzip-decode.lisp.

Target Slot

dstate.

Generic Writer: (setf get-dstate) (object)
Package

http2/core.

Methods
Writer Method: (setf get-dstate) ((gzip-decoding-mixin gzip-decoding-mixin))

automatically generated writer method

Source

gzip-decode.lisp.

Target Slot

dstate.

Generic Reader: get-dynamic-table (object)
Package

http2/hpack.

Methods
Reader Method: get-dynamic-table ((hpack-context hpack-context))

automatically generated reader method

Source

hpack.lisp.

Target Slot

dynamic-table.

Generic Writer: (setf get-dynamic-table) (object)
Package

http2/hpack.

Methods
Writer Method: (setf get-dynamic-table) ((hpack-context hpack-context))

automatically generated writer method

Source

hpack.lisp.

Target Slot

dynamic-table.

Generic Reader: get-end (object)
Package

http2/utils.

Methods
Reader Method: get-end ((pipe-end-for-read pipe-end-for-read))

automatically generated reader method

Source

pipe.lisp.

Target Slot

end.

Generic Writer: (setf get-end) (object)
Package

http2/utils.

Methods
Writer Method: (setf get-end) ((pipe-end-for-read pipe-end-for-read))

automatically generated writer method

Source

pipe.lisp.

Target Slot

end.

Generic Reader: get-end-headers-fn (object)
Package

http2/client.

Methods
Reader Method: get-end-headers-fn ((vanilla-client-stream vanilla-client-stream))

automatically generated reader method

Source

client-utils.lisp.

Target Slot

end-headers-fn.

Generic Writer: (setf get-end-headers-fn) (object)
Package

http2/client.

Methods
Writer Method: (setf get-end-headers-fn) ((vanilla-client-stream vanilla-client-stream))

automatically generated writer method

Source

client-utils.lisp.

Target Slot

end-headers-fn.

Generic Reader: get-error-code (condition)
Generic Writer: (setf get-error-code) (condition)
Package

http2/core.

Methods
Reader Method: get-error-code ((condition go-away))
Writer Method: (setf get-error-code) ((condition go-away))
Source

errors.lisp.

Target Slot

error-code.

Generic Reader: get-exact-handlers (object)
Package

http2/server.

Methods
Reader Method: get-exact-handlers ((routing-mixin routing-mixin))

automatically generated reader method

Source

dispatch.lisp.

Target Slot

exact-handlers.

Generic Writer: (setf get-exact-handlers) (object)
Package

http2/server.

Methods
Writer Method: (setf get-exact-handlers) ((routing-mixin routing-mixin))

automatically generated writer method

Source

dispatch.lisp.

Target Slot

exact-handlers.

Generic Reader: get-fdset-size (object)
Generic Writer: (setf get-fdset-size) (object)
Package

http2/server.

Methods
Reader Method: get-fdset-size ((poll-dispatcher-mixin poll-dispatcher-mixin))
Writer Method: (setf get-fdset-size) ((poll-dispatcher-mixin poll-dispatcher-mixin))

Number of slots for clients to be polled.

Source

poll-server.lisp.

Target Slot

fdset-size.

Generic Reader: get-frame-size (condition)
Generic Writer: (setf get-frame-size) (condition)
Package

http2/core.

Methods
Reader Method: get-frame-size ((condition too-big-frame))
Writer Method: (setf get-frame-size) ((condition too-big-frame))
Source

errors.lisp.

Target Slot

frame-size.

Generic Reader: get-frame-type (condition)
Generic Writer: (setf get-frame-type) (condition)
Package

http2/core.

Methods
Reader Method: get-frame-type ((condition frame-type-needs-connection))
Writer Method: (setf get-frame-type) ((condition frame-type-needs-connection))
Source

errors.lisp.

Target Slot

frame-type.

Reader Method: get-frame-type ((condition frame-type-needs-stream))
Writer Method: (setf get-frame-type) ((condition frame-type-needs-stream))
Source

errors.lisp.

Target Slot

frame-type.

Generic Reader: get-gzip-content (object)
Package

http2/client.

Methods
Reader Method: get-gzip-content ((request-with-body request-with-body))

automatically generated reader method

Source

client.lisp.

Target Slot

gzip-content.

Generic Writer: (setf get-gzip-content) (object)
Package

http2/client.

Methods
Writer Method: (setf get-gzip-content) ((request-with-body request-with-body))

automatically generated writer method

Source

client.lisp.

Target Slot

gzip-content.

Generic Reader: get-header (condition)
Generic Writer: (setf get-header) (condition)
Package

http2/core.

Methods
Reader Method: get-header ((condition no-new-header-action))
Writer Method: (setf get-header) ((condition no-new-header-action))
Source

errors.lisp.

Target Slot

header.

Generic Reader: get-host (condition)
Generic Writer: (setf get-host) (condition)
Package

http2/core.

Methods
Reader Method: get-host ((condition h2-not-supported-by-server))
Writer Method: (setf get-host) ((condition h2-not-supported-by-server))
Source

errors.lisp.

Target Slot

host.

Generic Reader: get-id-to-use (object)
Package

http2/core.

Methods
Reader Method: get-id-to-use ((stream-collection stream-collection))

automatically generated reader method

Source

frames/http2-stream.lisp.

Target Slot

id-to-use.

Generic Writer: (setf get-id-to-use) (object)
Package

http2/core.

Methods
Writer Method: (setf get-id-to-use) ((stream-collection stream-collection))

automatically generated writer method

Source

frames/http2-stream.lisp.

Target Slot

id-to-use.

Generic Reader: get-initial-peer-window-size (object)
Package

http2/core.

Methods
Reader Method: get-initial-peer-window-size ((http2-connection http2-connection))

automatically generated reader method

Source

classes.lisp.

Target Slot

initial-peer-window-size.

Generic Writer: (setf get-initial-peer-window-size) (object)
Package

http2/core.

Methods
Writer Method: (setf get-initial-peer-window-size) ((http2-connection http2-connection))

automatically generated writer method

Source

classes.lisp.

Target Slot

initial-peer-window-size.

Generic Reader: get-initial-window-size (object)
Package

http2/core.

Methods
Reader Method: get-initial-window-size ((http2-connection http2-connection))

automatically generated reader method

Source

classes.lisp.

Target Slot

initial-window-size.

Generic Writer: (setf get-initial-window-size) (object)
Package

http2/core.

Methods
Writer Method: (setf get-initial-window-size) ((http2-connection http2-connection))

automatically generated writer method

Source

classes.lisp.

Target Slot

initial-window-size.

Generic Reader: get-internal-time-to-run (object)
Package

http2/server.

Methods
Reader Method: get-internal-time-to-run ((scheduled-task scheduled-task))

automatically generated reader method

Source

scheduler.lisp.

Target Slot

internal-time-to-run.

Generic Writer: (setf get-internal-time-to-run) (object)
Package

http2/server.

Methods
Writer Method: (setf get-internal-time-to-run) ((scheduled-task scheduled-task))

automatically generated writer method

Source

scheduler.lisp.

Target Slot

internal-time-to-run.

Generic Reader: get-last-id-seen (object)
Package

http2/core.

Methods
Reader Method: get-last-id-seen ((stream-collection stream-collection))

automatically generated reader method

Source

frames/http2-stream.lisp.

Target Slot

last-id-seen.

Generic Writer: (setf get-last-id-seen) (object)
Package

http2/core.

Methods
Writer Method: (setf get-last-id-seen) ((stream-collection stream-collection))

automatically generated writer method

Source

frames/http2-stream.lisp.

Target Slot

last-id-seen.

Generic Reader: get-last-stream-id (condition)
Generic Writer: (setf get-last-stream-id) (condition)
Package

http2/core.

Methods
Reader Method: get-last-stream-id ((condition go-away))
Writer Method: (setf get-last-stream-id) ((condition go-away))
Source

errors.lisp.

Target Slot

last-stream-id.

Generic Reader: get-max-frame-size (condition)
Package

http2/core.

Methods
Reader Method: get-max-frame-size ((frame-context frame-context))

automatically generated reader method

Source

frames.lisp.

Target Slot

max-frame-size.

Reader Method: get-max-frame-size ((condition too-big-frame))
Source

errors.lisp.

Target Slot

max-frame-size.

Generic Writer: (setf get-max-frame-size) (condition)
Package

http2/core.

Methods
Writer Method: (setf get-max-frame-size) ((frame-context frame-context))

automatically generated writer method

Source

frames.lisp.

Target Slot

max-frame-size.

Writer Method: (setf get-max-frame-size) ((condition too-big-frame))
Source

errors.lisp.

Target Slot

max-frame-size.

Generic Reader: get-max-seen-so-far (condition)
Generic Writer: (setf get-max-seen-so-far) (condition)
Package

http2/core.

Methods
Reader Method: get-max-seen-so-far ((condition new-stream-id-too-low))
Writer Method: (setf get-max-seen-so-far) ((condition new-stream-id-too-low))
Source

errors.lisp.

Target Slot

max-seen-so-far.

Generic Reader: get-nagle (object)
Package

http2/server.

Methods
Reader Method: get-nagle ((poll-dispatcher-mixin poll-dispatcher-mixin))

automatically generated reader method

Source

poll-server.lisp.

Target Slot

nagle.

Generic Writer: (setf get-nagle) (object)
Package

http2/server.

Methods
Writer Method: (setf get-nagle) ((poll-dispatcher-mixin poll-dispatcher-mixin))

automatically generated writer method

Source

poll-server.lisp.

Target Slot

nagle.

Generic Reader: get-name (condition)
Generic Writer: (setf get-name) (condition)
Package

http2/core.

Methods
Reader Method: get-name ((condition header-error))
Writer Method: (setf get-name) ((condition header-error))
Source

errors.lisp.

Target Slot

name.

Generic Reader: get-name (object)
Package

http2/server.

Methods
Reader Method: get-name ((scheduler scheduler))

automatically generated reader method

Source

scheduler.lisp.

Target Slot

name.

Reader Method: get-name ((detached-server-mixin detached-server-mixin))

automatically generated reader method

Source

socket-dispatcher.lisp.

Target Slot

name.

Generic Writer: (setf get-name) (object)
Package

http2/server.

Methods
Writer Method: (setf get-name) ((scheduler scheduler))

automatically generated writer method

Source

scheduler.lisp.

Target Slot

name.

Writer Method: (setf get-name) ((detached-server-mixin detached-server-mixin))

automatically generated writer method

Source

socket-dispatcher.lisp.

Target Slot

name.

Generic Reader: get-no-body (object)
Package

http2/client.

Methods
Reader Method: get-no-body ((generic-request generic-request))

automatically generated reader method

Source

client.lisp.

Target Slot

no-body.

Generic Writer: (setf get-no-body) (object)
Package

http2/client.

Methods
Writer Method: (setf get-no-body) ((generic-request generic-request))

automatically generated writer method

Source

client.lisp.

Target Slot

no-body.

Generic Function: get-no-client-poll-timeout (object)
Package

http2/server.

Methods
Method: get-no-client-poll-timeout :after ((dispatcher poll-dispatcher))
Source

poll-server.lisp.

Reader Method: get-no-client-poll-timeout ((poll-dispatcher-mixin poll-dispatcher-mixin))

See *NO-CLIENT-POLL-TIMEOUT*.

Source

poll-server.lisp.

Target Slot

no-client-poll-timeout.

Generic Writer: (setf get-no-client-poll-timeout) (object)
Package

http2/server.

Methods
Writer Method: (setf get-no-client-poll-timeout) ((poll-dispatcher-mixin poll-dispatcher-mixin))

See *NO-CLIENT-POLL-TIMEOUT*.

Source

poll-server.lisp.

Target Slot

no-client-poll-timeout.

Generic Reader: get-output-buffer (object)
Package

http2/stream-overlay.

Methods
Reader Method: get-output-buffer ((payload-output-stream payload-output-stream))

automatically generated reader method

Source

payload-streams.lisp.

Target Slot

output-buffer.

Generic Writer: (setf get-output-buffer) (object)
Package

http2/stream-overlay.

Methods
Writer Method: (setf get-output-buffer) ((payload-output-stream payload-output-stream))

automatically generated writer method

Source

payload-streams.lisp.

Target Slot

output-buffer.

Generic Reader: get-output-buffer (object)
Package

http2/core.

Methods
Reader Method: get-output-buffer ((constant-output-stream constant-output-stream))

automatically generated reader method

Source

binary-payload.lisp.

Target Slot

output-buffer.

Generic Writer: (setf get-output-buffer) (object)
Package

http2/core.

Methods
Writer Method: (setf get-output-buffer) ((constant-output-stream constant-output-stream))

automatically generated writer method

Source

binary-payload.lisp.

Target Slot

output-buffer.

Generic Reader: get-payload-input-stream (object)
Package

http2/stream-overlay.

Methods
Reader Method: get-payload-input-stream ((http2-stream-with-input-stream http2-stream-with-input-stream))

automatically generated reader method

Source

payload-streams.lisp.

Target Slot

payload-input-stream.

Generic Writer: (setf get-payload-input-stream) (object)
Package

http2/stream-overlay.

Methods
Writer Method: (setf get-payload-input-stream) ((http2-stream-with-input-stream http2-stream-with-input-stream))

automatically generated writer method

Source

payload-streams.lisp.

Target Slot

payload-input-stream.

Generic Reader: get-peer-accepts-push (object)
Package

http2/core.

Methods
Reader Method: get-peer-accepts-push ((server-http2-connection server-http2-connection))

automatically generated reader method

Source

classes.lisp.

Target Slot

peer-accepts-push.

Generic Writer: (setf get-peer-accepts-push) (object)
Package

http2/core.

Methods
Writer Method: (setf get-peer-accepts-push) ((server-http2-connection server-http2-connection))

automatically generated writer method

Source

classes.lisp.

Target Slot

peer-accepts-push.

Generic Reader: get-poll-timeout (object)
Generic Writer: (setf get-poll-timeout) (object)
Package

http2/server.

Methods
Reader Method: get-poll-timeout ((poll-dispatcher-mixin poll-dispatcher-mixin))
Writer Method: (setf get-poll-timeout) ((poll-dispatcher-mixin poll-dispatcher-mixin))

See *POLL-TIMEOUT*.

Source

poll-server.lisp.

Target Slot

poll-timeout.

Generic Reader: get-port (condition)
Generic Writer: (setf get-port) (condition)
Package

http2/core.

Methods
Reader Method: get-port ((condition h2-not-supported-by-server))
Writer Method: (setf get-port) ((condition h2-not-supported-by-server))
Source

errors.lisp.

Target Slot

port.

Generic Reader: get-prefix-handlers (object)
Package

http2/server.

Methods
Reader Method: get-prefix-handlers ((routing-mixin routing-mixin))

automatically generated reader method

Source

dispatch.lisp.

Target Slot

prefix-handlers.

Generic Writer: (setf get-prefix-handlers) (object)
Package

http2/server.

Methods
Writer Method: (setf get-prefix-handlers) ((routing-mixin routing-mixin))

automatically generated writer method

Source

dispatch.lisp.

Target Slot

prefix-handlers.

Generic Reader: get-received (condition)
Generic Writer: (setf get-received) (condition)
Package

http2/core.

Methods
Reader Method: get-received ((condition client-preface-mismatch))
Writer Method: (setf get-received) ((condition client-preface-mismatch))
Source

errors.lisp.

Target Slot

received.

Generic Reader: get-result (condition)
Generic Writer: (setf get-result) (condition)
Package

http2/client.

Methods
Reader Method: get-result ((condition client-done))
Writer Method: (setf get-result) ((condition client-done))
Source

client.lisp.

Target Slot

result.

Generic Reader: get-scheduled-tasks (object)
Package

http2/server.

Methods
Reader Method: get-scheduled-tasks ((scheduler scheduler))

automatically generated reader method

Source

scheduler.lisp.

Target Slot

scheduled-tasks.

Generic Writer: (setf get-scheduled-tasks) (object)
Package

http2/server.

Methods
Writer Method: (setf get-scheduled-tasks) ((scheduler scheduler))

automatically generated writer method

Source

scheduler.lisp.

Target Slot

scheduled-tasks.

Generic Reader: get-seen-text-header (object)
Generic Writer: (setf get-seen-text-header) (object)
Package

http2/core.

Methods
Reader Method: get-seen-text-header ((http2-stream http2-stream))
Writer Method: (setf get-seen-text-header) ((http2-stream http2-stream))

Set if in the header block a non-pseudo header was already seen.

Source

classes.lisp.

Target Slot

seen-text-header.

Generic Reader: get-sent (condition)
Package

http2/stream-overlay.

Methods
Reader Method: get-sent ((condition http2-write-data-stall))
Source

payload-streams.lisp.

Target Slot

sent.

Generic Reader: get-setting-code (condition)
Generic Writer: (setf get-setting-code) (condition)
Package

http2/core.

Methods
Reader Method: get-setting-code ((condition incorrect-setting-value))
Writer Method: (setf get-setting-code) ((condition incorrect-setting-value))
Source

errors.lisp.

Target Slot

setting-code.

Generic Function: get-settings (connection)
Package

http2/core.

Source

classes.lisp.

Method Combination

append.

Options

:most-specific-first

Methods
Method: get-settings append (connection)
Method: get-settings append ((connection client-http2-connection))
Generic Reader: get-start (condition)
Generic Writer: (setf get-start) (condition)
Package

http2/stream-overlay.

Methods
Reader Method: get-start ((condition window-is-closed))
Writer Method: (setf get-start) ((condition window-is-closed))
Source

payload-streams.lisp.

Target Slot

start.

Generic Function: get-state (state)

State of a HTTP stream. The parameter is either a HTTP2-STREAM object (that keeps state in an appropriate slot) or placeholder values CLOSED or IDLE

Package

http2/core.

Source

frames/http2-stream.lisp.

Methods
Method: get-state ((state (eql :closed)))
Reader Method: get-state ((http2-stream-minimal http2-stream-minimal))

automatically generated reader method

Target Slot

state.

Generic Writer: (setf get-state) (object)
Package

http2/core.

Methods
Writer Method: (setf get-state) ((http2-stream-minimal http2-stream-minimal))

automatically generated writer method

Source

frames/http2-stream.lisp.

Target Slot

state.

Generic Reader: get-status (object)
Generic Writer: (setf get-status) (object)
Package

http2/core.

Methods
Reader Method: get-status ((client-stream client-stream))
Writer Method: (setf get-status) ((client-stream client-stream))

HTTP status code field (see [RFC7231], Section 6)

Source

classes.lisp.

Target Slot

status.

Generic Reader: get-stream (condition)
Generic Writer: (setf get-stream) (condition)
Package

http2/core.

Methods
Reader Method: get-stream ((condition no-new-header-action))
Writer Method: (setf get-stream) ((condition no-new-header-action))
Source

errors.lisp.

Target Slot

stream.

Reader Method: get-stream ((condition http-stream-error))
Writer Method: (setf get-stream) ((condition http-stream-error))
Source

errors.lisp.

Target Slot

stream.

Generic Function: get-stream-id (condition)
Package

http2/core.

Methods
Reader Method: get-stream-id ((http2-stream-minimal http2-stream-minimal))

automatically generated reader method

Source

frames/http2-stream.lisp.

Target Slot

stream-id.

Method: get-stream-id ((c http2-connection))

It is useful sometimes to treat http connection as a stream with ID 0.

Source

classes.lisp.

Reader Method: get-stream-id ((condition bad-stream-state))
Source

errors.lisp.

Target Slot

stream-id.

Reader Method: get-stream-id ((condition new-stream-id-too-low))
Source

errors.lisp.

Target Slot

stream-id.

Generic Writer: (setf get-stream-id) (condition)
Package

http2/core.

Methods
Writer Method: (setf get-stream-id) ((http2-stream-minimal http2-stream-minimal))

automatically generated writer method

Source

frames/http2-stream.lisp.

Target Slot

stream-id.

Writer Method: (setf get-stream-id) ((condition bad-stream-state))
Source

errors.lisp.

Target Slot

stream-id.

Writer Method: (setf get-stream-id) ((condition new-stream-id-too-low))
Source

errors.lisp.

Target Slot

stream-id.

Generic Reader: get-text (object)
Package

http2/core.

Methods
Reader Method: get-text ((text-collecting-stream text-collecting-stream))

automatically generated reader method

Source

binary-payload.lisp.

Target Slot

text.

Generic Writer: (setf get-text) (object)
Package

http2/core.

Methods
Writer Method: (setf get-text) ((text-collecting-stream text-collecting-stream))

automatically generated writer method

Source

binary-payload.lisp.

Target Slot

text.

Generic Reader: get-thread (object)
Package

http2/server.

Methods
Reader Method: get-thread ((scheduler-in-thread scheduler-in-thread))

automatically generated reader method

Source

scheduler.lisp.

Target Slot

thread.

Reader Method: get-thread ((detached-server-mixin detached-server-mixin))

automatically generated reader method

Source

socket-dispatcher.lisp.

Target Slot

thread.

Generic Writer: (setf get-thread) (object)
Package

http2/server.

Methods
Writer Method: (setf get-thread) ((scheduler-in-thread scheduler-in-thread))

automatically generated writer method

Source

scheduler.lisp.

Target Slot

thread.

Writer Method: (setf get-thread) ((detached-server-mixin detached-server-mixin))

automatically generated writer method

Source

socket-dispatcher.lisp.

Target Slot

thread.

Generic Function: get-tls (what)
Package

http2/server.

Methods
Method: get-tls ((dispatcher tls-dispatcher-mixin))
Source

dispatch.lisp.

Reader Method: get-tls ((base-dispatcher base-dispatcher))

automatically generated reader method

Source

socket-dispatcher.lisp.

Target Slot

tls.

Method: get-tls ((what symbol))
Source

socket-dispatcher.lisp.

Generic Reader: get-tls-stream (condition)
Generic Writer: (setf get-tls-stream) (condition)
Package

http2/server.

Methods
Reader Method: get-tls-stream ((condition not-http2-stream))
Writer Method: (setf get-tls-stream) ((condition not-http2-stream))
Source

threaded.lisp.

Target Slot

tls-stream.

Generic Reader: get-to-write (object)
Package

http2/core.

Methods
Reader Method: get-to-write ((write-buffer-connection-mixin write-buffer-connection-mixin))

automatically generated reader method

Source

frames.lisp.

Target Slot

to-write.

Generic Writer: (setf get-to-write) (object)
Package

http2/core.

Methods
Writer Method: (setf get-to-write) ((write-buffer-connection-mixin write-buffer-connection-mixin))

automatically generated writer method

Source

frames.lisp.

Target Slot

to-write.

Generic Reader: get-uri (object)
Package

http2/client.

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

automatically generated reader method

Source

client.lisp.

Target Slot

uri.

Generic Writer: (setf get-uri) (object)
Package

http2/client.

Methods
Writer Method: (setf get-uri) ((generic-request generic-request))

automatically generated writer method

Source

client.lisp.

Target Slot

uri.

Generic Reader: get-url (object)
Package

http2/server.

Methods
Reader Method: get-url ((base-dispatcher base-dispatcher))

automatically generated reader method

Source

socket-dispatcher.lisp.

Target Slot

url.

Generic Writer: (setf get-url) (object)
Package

http2/server.

Methods
Writer Method: (setf get-url) ((base-dispatcher base-dispatcher))

automatically generated writer method

Source

socket-dispatcher.lisp.

Target Slot

url.

Generic Reader: get-value (condition)
Generic Writer: (setf get-value) (condition)
Package

http2/core.

Methods
Reader Method: get-value ((condition header-error))
Writer Method: (setf get-value) ((condition header-error))
Source

errors.lisp.

Target Slot

value.

Reader Method: get-value ((condition incorrect-initial-window-size-value))
Writer Method: (setf get-value) ((condition incorrect-initial-window-size-value))
Source

errors.lisp.

Target Slot

value.

Reader Method: get-value ((condition incorrect-frame-size-value))
Writer Method: (setf get-value) ((condition incorrect-frame-size-value))
Source

errors.lisp.

Target Slot

value.

Reader Method: get-value ((condition incorrect-enable-push-value))
Writer Method: (setf get-value) ((condition incorrect-enable-push-value))
Source

errors.lisp.

Target Slot

value.

Reader Method: get-value ((condition incorrect-setting-value))
Writer Method: (setf get-value) ((condition incorrect-setting-value))
Source

errors.lisp.

Target Slot

value.

Generic Reader: get-weight (object)
Package

http2/core.

Methods
Reader Method: get-weight ((http2-stream http2-stream))

automatically generated reader method

Source

classes.lisp.

Target Slot

weight.

Generic Writer: (setf get-weight) (object)
Package

http2/core.

Methods
Writer Method: (setf get-weight) ((http2-stream http2-stream))

automatically generated writer method

Source

classes.lisp.

Target Slot

weight.

Generic Reader: get-window-open-fn (object)
Package

http2/core.

Methods
Reader Method: get-window-open-fn ((flow-control-mixin flow-control-mixin))

automatically generated reader method

Source

frames/data.lisp.

Target Slot

window-open-fn.

Generic Writer: (setf get-window-open-fn) (object)
Package

http2/core.

Methods
Writer Method: (setf get-window-open-fn) ((flow-control-mixin flow-control-mixin))

automatically generated writer method

Source

frames/data.lisp.

Target Slot

window-open-fn.

Generic Reader: get-window-size (object)
Package

http2/core.

Methods
Reader Method: get-window-size ((flow-control-mixin flow-control-mixin))

automatically generated reader method

Source

frames/data.lisp.

Target Slot

window-size.

Generic Writer: (setf get-window-size) (object)
Package

http2/core.

Methods
Writer Method: (setf get-window-size) ((flow-control-mixin flow-control-mixin))

automatically generated writer method

Source

frames/data.lisp.

Target Slot

window-size.

Generic Reader: get-window-size-increment-callback (object)
Package

http2/core.

Methods
Reader Method: get-window-size-increment-callback ((multi-part-data-stream multi-part-data-stream))

automatically generated reader method

Source

binary-payload.lisp.

Target Slot

window-size-increment-callback.

Generic Writer: (setf get-window-size-increment-callback) (object)
Package

http2/core.

Methods
Writer Method: (setf get-window-size-increment-callback) ((multi-part-data-stream multi-part-data-stream))

automatically generated writer method

Source

binary-payload.lisp.

Target Slot

window-size-increment-callback.

Generic Reader: get-write-buffer (object)
Package

http2/utils.

Methods
Reader Method: get-write-buffer ((pipe-end-for-write pipe-end-for-write))

automatically generated reader method

Source

pipe.lisp.

Target Slot

write-buffer.

Generic Writer: (setf get-write-buffer) (object)
Package

http2/utils.

Methods
Writer Method: (setf get-write-buffer) ((pipe-end-for-write pipe-end-for-write))

automatically generated writer method

Source

pipe.lisp.

Target Slot

write-buffer.

Generic Function: handle-alt-svc (stream origin value)

An ALTSVC frame from a server to a client on a stream other than stream 0 indicates that the conveyed alternative service is associated with the origin of that stream.

An ALTSVC frame from a server to a client on stream 0 indicates that the conveyed alternative service is associated with the origin contained in the Origin field of the frame. An association with an origin that the client does not consider authoritative for the current connection MUST be ignored.

Package

http2/core.

Source

frames/altsvc.lisp.

Methods
Method: handle-alt-svc (stream origin value)

Default method ignores alt-svc info.

Generic Function: is-our-stream-id (connection id)
Package

http2/core.

Source

frames/http2-stream.lisp.

Methods
Method: is-our-stream-id ((connection server-http2-connection) stream-id)
Source

classes.lisp.

Method: is-our-stream-id ((connection client-http2-connection) stream-id)
Source

classes.lisp.

Generic Function: maybe-lock-for-write (connection)

This is called when a new frame is ready

Package

http2/core.

Source

classes.lisp.

Methods
Method: maybe-lock-for-write (connection)
Generic Function: maybe-unlock-for-write (connection)

This is called when a new frame is ready

Package

http2/core.

Source

classes.lisp.

Methods
Method: maybe-unlock-for-write (connection)
Generic Function: peer-sends-push-promise (stream)

This should be called on push promise (FIXME: and maybe it is not, and maybe the parameters should be different anyway). By default throws an error.

Package

http2/core.

Source

classes.lisp.

Methods
Method: peer-sends-push-promise (stream)
Generic Function: present-result (result)
Package

http2/client.

Source

client.lisp.

Methods
Method: present-result (result)
Method: present-result ((result client-stream))
Generic Function: send-ping (connection &optional payload)

Send a ping request.

Package

http2/core.

Source

classes.lisp.

Methods
Method: send-ping (connection &optional payload)
Method: send-ping ((connection timeshift-pinging-connection) &optional payload)
Generic Function: stop-server (dispatcher)
Package

http2/server.

Methods
Method: stop-server ((dispatcher detached-server-mixin))
Source

dispatch.lisp.


6.2.7 Conditions

Condition: bad-stream-state

Frame cannot be applied to stream in particular state

Package

http2/core.

Source

errors.lisp.

Direct superclasses

connection-error.

Direct methods
Direct slots
Slot: allowed
Initargs

:allowed

Readers

get-allowed.

Writers

(setf get-allowed).

Slot: actual
Initargs

:actual

Readers

get-actual.

Writers

(setf get-actual).

Slot: stream-id
Package

http2/utils.

Initargs

:stream-id

Readers

get-stream-id.

Writers

(setf get-stream-id).

Condition: client-preface-mismatch
Package

http2/core.

Source

errors.lisp.

Direct superclasses

http2-error.

Direct methods
Direct slots
Slot: received
Initargs

:received

Readers

get-received.

Writers

(setf get-received).

Condition: done

The socket on the other side is closed.

Package

http2/server.

Source

poll-server.lisp.

Direct superclasses

error.

Condition: duplicate-request-header
Package

http2/core.

Source

errors.lisp.

Direct superclasses

header-error.

Condition: frame-type-needs-connection

Frame type must be applied on connection.

Package

http2/core.

Source

errors.lisp.

Direct superclasses

protocol-error.

Direct methods
Direct slots
Slot: frame-type
Initargs

:frame-type

Readers

get-frame-type.

Writers

(setf get-frame-type).

Condition: frame-type-needs-stream

Frame MUST be associated with a stream. If a frame is received whose stream identifier field is 0x0, the recipient MUST respond with a connection error (Section 5.4.1) of type PROTOCOL_ERROR.

Package

http2/core.

Source

errors.lisp.

Direct superclasses

protocol-error.

Direct methods
Direct slots
Slot: frame-type
Initargs

:frame-type

Readers

get-frame-type.

Writers

(setf get-frame-type).

Condition: header-error
Package

http2/core.

Source

errors.lisp.

Direct superclasses

stream-protocol-error.

Direct subclasses
Direct methods
Direct slots
Slot: name
Initargs

:name

Readers

get-name.

Writers

(setf get-name).

Slot: value
Initargs

:value

Readers

get-value.

Writers

(setf get-value).

Condition: http2-error

All errors raised from HTTP2 package inherit from this error.

Package

http2/core.

Source

errors.lisp.

Direct superclasses

error.

Direct subclasses
Condition: http2-warning
Package

http2/core.

Source

errors.lisp.

Direct superclasses

warning.

Direct subclasses
Condition: http2-write-data-stall

Signalled when data are to be sent and there is not big enough window available to sent. Tracks DATA to sent and number of octets actually SENT.

Package

http2/stream-overlay.

Source

payload-streams.lisp.

Direct superclasses

warning.

Direct methods
Direct slots
Slot: sent
Initargs

:sent

Readers

get-sent.

Writers

This slot is read-only.

Slot: data
Initargs

:data

Readers

get-data.

Writers

This slot is read-only.

Condition: implement-by-user

Something that the HTTP2 library expects to be implemented by server/client.

Package

http2/core.

Source

errors.lisp.

Direct superclasses
Condition: incomplete-header
Package

http2/hpack.

Source

hpack.lisp.

Direct superclasses

condition.

Condition: incorrect-enable-push-value

Client must have ENABLE-PUSH 0 or 1. Server must have ENABLE-PUSH 0.

Package

http2/core.

Source

errors.lisp.

Direct superclasses

protocol-error.

Direct methods
Direct slots
Slot: value
Initargs

:value

Readers

get-value.

Writers

(setf get-value).

Condition: incorrect-frame-size

A PRIORITY frame with a length other than 5 octets MUST be treated as a stream error (Section 5.4.2) of type FRAME_SIZE_ERROR.

Package

http2/core.

Source

errors.lisp.

Direct superclasses

http-stream-error.

Direct Default Initargs
InitargValue
:code+frame-size-error+
Condition: incorrect-frame-size-value

Frame size MUST be between the initial value 16384 and the maximum allowed frame size (2^24-1 or 16,777,215 octets), inclusive.

Package

http2/core.

Source

errors.lisp.

Direct superclasses

protocol-error.

Direct methods
Direct slots
Slot: value
Initargs

:value

Readers

get-value.

Writers

(setf get-value).

Condition: incorrect-initial-window-size-value

SETTINGS_INITIAL_WINDOW_SIZE must be below 2^31.

Package

http2/core.

Source

errors.lisp.

Direct superclasses

protocol-error.

Direct methods
Direct slots
Slot: value
Initargs

:value

Readers

get-value.

Writers

(setf get-value).

Condition: incorrect-ping-frame-size

Receipt of a PING frame with a length field value other than 8 MUST be treated as a connection error (Section 5.4.1) of type FRAME_SIZE_ERROR.

Package

http2/core.

Source

errors.lisp.

Direct superclasses

connection-error.

Direct Default Initargs
InitargValue
:code+frame-size-error+
Condition: incorrect-pseudo-header
Package

http2/core.

Source

errors.lisp.

Direct superclasses

header-error.

Condition: incorrect-request-pseudo-header
Package

http2/core.

Source

errors.lisp.

Direct superclasses

header-error.

Condition: incorrect-response-pseudo-header
Package

http2/core.

Source

errors.lisp.

Direct superclasses

header-error.

Condition: incorrect-rst-frame-size

A RST_STREAM frame with a length other than 4 octets MUST be treated as a connection error (Section 5.4.1) of type FRAME_SIZE_ERROR.

Package

http2/core.

Source

errors.lisp.

Direct superclasses

connection-error.

Direct Default Initargs
InitargValue
:code+frame-size-error+
Condition: incorrect-setting-value
Package

http2/core.

Source

errors.lisp.

Direct superclasses

protocol-error.

Direct methods
Direct slots
Slot: setting-code
Initargs

:setting-code

Readers

get-setting-code.

Writers

(setf get-setting-code).

Slot: value
Initargs

:value

Readers

get-value.

Writers

(setf get-value).

Slot: allowed
Initargs

:allowed

Readers

get-allowed.

Writers

(setf get-allowed).

Condition: incorrect-settings-frame-size

A SETTINGS frame with a length other than a multiple of 6 octets MUST be treated as a connection error (Section 5.4.1) of type FRAME_SIZE_ERROR.

Package

http2/core.

Source

errors.lisp.

Direct superclasses

connection-error.

Direct Default Initargs
InitargValue
:code+frame-size-error+
Condition: incorrect-window-update-frame-size

Receipt of a PING frame with a length field value other than 8 MUST be treated as a connection error (Section 5.4.1) of type FRAME_SIZE_ERROR.

Package

http2/core.

Source

errors.lisp.

Direct superclasses

connection-error.

Direct Default Initargs
InitargValue
:code+frame-size-error+
Condition: lowercase-header-field-name

A request or response containing uppercase header field names MUST be treated as malformed. (...) Malformed requests or responses that are detected MUST be treated as a stream error of type PROTOCOL_ERROR.

Package

http2/core.

Source

errors.lisp.

Direct superclasses

header-error.

Condition: missing-header-octets

We try to process headers, but end up in a middle of one.

Package

http2/core.

Source

errors.lisp.

Direct superclasses

protocol-error.

Condition: missing-pseudo-header

:status pseudo-header field MUST be included in all responses.

All HTTP/2 requests MUST include exactly one valid value for the :method, :scheme, and :path pseudo-header fields, unless it is a CONNECT request.

Package

http2/core.

Source

errors.lisp.

Direct superclasses

header-error.

Condition: new-stream-id-too-low

The identifier of a newly established stream MUST be numerically
greater than all streams that the initiating endpoint has opened or reserved (max was ~d). This governs streams that are opened using a HEADERS frame and streams that are reserved using PUSH_PROMISE. An endpoint that receives an unexpected stream identifier MUST respond with a connection error (Section 5.4.1) of type PROTOCOL_ERROR.

Package

http2/core.

Source

errors.lisp.

Direct superclasses

protocol-error.

Direct methods
Direct slots
Slot: stream-id
Package

http2/utils.

Initargs

:stream-id

Readers

get-stream-id.

Writers

(setf get-stream-id).

Slot: max-seen-so-far
Initargs

:max-seen-so-far

Readers

get-max-seen-so-far.

Writers

(setf get-max-seen-so-far).

Condition: no-new-header-action

Header that could not be handled arrived.

Package

http2/core.

Source

errors.lisp.

Direct superclasses

http2-warning.

Direct methods
Direct slots
Slot: header
Initargs

:header

Readers

get-header.

Writers

(setf get-header).

Slot: stream
Package

common-lisp.

Initargs

:stream

Readers

get-stream.

Writers

(setf get-stream).

Condition: no-payload-action

No payload action defined, and payload received.

Package

http2/core.

Source

errors.lisp.

Direct superclasses

http2-warning.

Direct methods
Direct slots
Slot: class
Package

common-lisp.

Initargs

:class

Readers

get-class.

Writers

(setf get-class).

Condition: not-http2-stream

Signalled to decline handling of TLS stream as HTTP2 stream due to different ALPN.

Package

http2/server.

Source

threaded.lisp.

Direct superclasses

serious-condition.

Direct methods
Direct slots
Slot: tls-stream
Initargs

:tls-stream

Readers

get-tls-stream.

Writers

(setf get-tls-stream).

Slot: alpn
Initargs

:alpn

Readers

get-alpn.

Writers

(setf get-alpn).

Condition: null-connection-window-update

Errors on the connection flow-control window MUST be treated as a connection error.

Package

http2/core.

Source

errors.lisp.

Direct superclasses

protocol-error.

Condition: null-stream-window-update

A receiver MUST treat the receipt of a WINDOW_UPDATE frame with a flow-control window increment of 0 as a stream error.

Package

http2/core.

Source

errors.lisp.

Direct superclasses

http-stream-error.

Direct Default Initargs
InitargValue
:code+protocol-error+
Condition: our-id-created-by-peer
Package

http2/core.

Source

errors.lisp.

Direct superclasses

protocol-error.

Condition: protocol-error
Package

http2/core.

Source

errors.lisp.

Direct superclasses

connection-error.

Direct subclasses
Direct Default Initargs
InitargValue
:code+protocol-error+
Condition: pseudo-header-after-text-header

Pseudo header follows text header.

Package

http2/core.

Source

errors.lisp.

Direct superclasses

header-error.

Condition: reserved-bit-set

Reserved bit is set in received frame header. We ignore it.

Package

http2/core.

Source

errors.lisp.

Direct superclasses

unsupported-feature.

Condition: stream-protocol-error
Package

http2/core.

Source

errors.lisp.

Direct superclasses

http-stream-error.

Direct subclasses

header-error.

Direct Default Initargs
InitargValue
:code+protocol-error+
Condition: too-big-padding

Length of the padding is the length of the frame payload or greater.

Package

http2/core.

Source

errors.lisp.

Direct superclasses

protocol-error.

Condition: unexpected-continuation-frame

A CONTINUATION frame MUST be preceded by a HEADERS, PUSH_PROMISE or CONTINUATION frame without the END_HEADERS flag set. A recipient that observes violation of this rule MUST respond with a connection error (Section 5.4.1) of type PROTOCOL_ERROR.

Package

http2/core.

Source

errors.lisp.

Direct superclasses

protocol-error.

Condition: unimplemented-feature

Something that can be implemented to better match RFC suggestions or that we are obliged to ignore

Package

http2/core.

Source

errors.lisp.

Direct superclasses
Condition: unsupported-feature
Package

http2/core.

Source

errors.lisp.

Direct superclasses

warning.

Direct subclasses

reserved-bit-set.

Condition: window-is-closed
Package

http2/stream-overlay.

Source

payload-streams.lisp.

Direct superclasses

condition.

Direct methods
Direct slots
Slot: start
Initargs

:start

Readers

get-start.

Writers

(setf get-start).

Slot: data
Initargs

:data

Readers

get-data.

Writers

(setf get-data).


6.2.8 Structures

Structure: client

Data of one client connection. This includes:

- File descriptor of underlying socket (FD),
- Opaque pointer to the openssl handle (SSL),
- Input and output BIO for exchanging data with OPENSSL (RBIO, WBIO),
- Plain text octets to encrypt and send (ENCRYPT-BUF),
- Encrypted octets to send to the file descriptor (WRITE-BUF),
- Callback function when read data are available (IO-ON-READ).
- Number of octets required by IO-ON-READ. Negative values have special handling. - Client state from the low-level data flow point of view (STATE)
- Application data (slot to be used by the application)

Package

http2/server.

Source

poll-server.lisp.

Direct superclasses

structure-object.

Direct methods

print-object.

Direct slots
Slot: fd
Type

fixnum

Initform

-1

Readers

client-fd.

Writers

(setf client-fd).

Slot: ssl
Type

cffi-sys:foreign-pointer

Initform

(cffi-sys:null-pointer)

Readers

client-ssl.

Writers

(setf client-ssl).

Slot: rbio
Type

cffi-sys:foreign-pointer

Initform

(cffi-sys:null-pointer)

Readers

client-rbio.

Writers

This slot is read-only.

Slot: wbio
Type

cffi-sys:foreign-pointer

Initform

(cffi-sys:null-pointer)

Readers

client-wbio.

Writers

This slot is read-only.

Slot: write-buf
Type

(or null cons)

Readers

client-write-buf.

Writers

(setf client-write-buf).

Slot: encrypt-buf
Type

(simple-array (unsigned-byte 8))

Initform

(make-array http2/server::*encrypt-buf-size* :element-type (quote (unsigned-byte 8)))

Readers

client-encrypt-buf.

Writers

(setf client-encrypt-buf).

Slot: io-on-read
Type

compiled-function

Initform

(function http2/core:parse-client-preface)

Readers

client-io-on-read.

Writers

(setf client-io-on-read).

Slot: fdset-idx
Type

fixnum

Initform

0

Readers

client-fdset-idx.

Writers

(setf client-fdset-idx).

Slot: octets-needed
Type

fixnum

Initform

(length http2/core:+client-preface-start+)

Readers

client-octets-needed.

Writers

(setf client-octets-needed).

Slot: encrypt-buf-size
Type

fixnum

Initform

0

Readers

client-encrypt-buf-size.

Writers

(setf client-encrypt-buf-size).

Slot: start-time
Type

fixnum

Initform

(get-internal-real-time)

Readers

client-start-time.

Writers

(setf client-start-time).

Slot: state
Package

http2/core.

Initform

(list (quote http2/server::can-write) (quote http2/openssl:can-write-ssl) (quote http2/openssl:bio-needs-read) (quote http2/server::ssl-init-needed))

Readers

client-state.

Writers

(setf client-state).

Slot: application-data
Readers

client-application-data.

Writers

(setf client-application-data).

Structure: frame-type

Description of a frame type.

Apart from name and documentation, each frame type keeps this:
- RECEIVE-FN :: How to handle reading of received frames
- NEW-STREAM-STATE :: whether it can be used to create new streams (i.e., is allowed on streams in IDLE state) and if so what is new state of such stream
- OLD-STREAM-OK :: in what stream states the frame can be received
- CONNECTION-OK :: whether the frame can have STREAM-ID equal to zero, that is, act on connections.

Package

http2/core.

Source

frames.lisp.

Direct superclasses

structure-object.

Direct methods

print-object.

Direct slots
Slot: documentation
Package

common-lisp.

Type

(or null string)

Readers

frame-type-documentation.

Writers

(setf frame-type-documentation).

Slot: name
Type

symbol

Readers

frame-type-name.

Writers

(setf frame-type-name).

Slot: receive-fn
Type

(and compiled-function (function (t t) http2/core::receiver-fn))

Initform

(constantly nil)

Readers

frame-type-receive-fn.

Writers

(setf frame-type-receive-fn).

Slot: old-stream-ok
Readers

frame-type-old-stream-ok.

Writers

(setf frame-type-old-stream-ok).

Slot: new-stream-state
Readers

frame-type-new-stream-state.

Writers

(setf frame-type-new-stream-state).

Slot: connection-ok
Readers

frame-type-connection-ok.

Writers

(setf frame-type-connection-ok).

Slot: bad-state-error
Type

(or null (unsigned-byte 8))

Readers

frame-type-bad-state-error.

Writers

(setf frame-type-bad-state-error).

Slot: flag-keywords
Readers

frame-type-flag-keywords.

Writers

(setf frame-type-flag-keywords).


6.2.9 Classes

Class: constant-output-stream

Binary stream that accepts new octets to the output-buffer

Package

http2/core.

Source

binary-payload.lisp.

Direct superclasses
Direct methods
Direct Default Initargs
InitargValue
:to-write0
:to-store0
Direct slots
Slot: output-buffer
Readers

get-output-buffer.

Writers

(setf get-output-buffer).

Class: detached-threaded-dispatcher
Package

http2/server.

Source

threaded.lisp.

Direct superclasses
Class: flow-control-mixin

The flow control parameters that are kept both per-stream and per-connection.

Package

http2/core.

Source

frames/data.lisp.

Direct subclasses
Direct methods
Direct slots
Slot: window-size
Initargs

:window-size

Readers

get-window-size.

Writers

(setf get-window-size).

Slot: peer-window-size
Initargs

:peer-window-size

Readers

get-peer-window-size.

Writers

(setf get-peer-window-size).

Slot: window-open-fn
Initargs

:window-open-fn

Readers

get-window-open-fn.

Writers

(setf get-window-open-fn).

Class: hpack-endpoint
Package

http2/core.

Source

frames/headers.lisp.

Direct subclasses

http2-connection.

Direct methods
Direct Default Initargs
InitargValue
:compression-context(make-instance (quote hpack-context))
:decompression-context(make-instance (quote hpack-context))
Direct slots
Slot: compression-context
Initargs

:compression-context

Readers

get-compression-context.

Writers

(setf get-compression-context).

Slot: decompression-context
Initargs

:decompression-context

Readers

get-decompression-context.

Writers

(setf get-decompression-context).

Class: http2-stream

Representation of HTTP/2 stream. See RFC7540.

Package

http2/core.

Source

classes.lisp.

Direct superclasses
Direct subclasses
Direct methods
Direct Default Initargs
InitargValue
:window-size0
:weight16
:depends-on(quote (non-exclusive 0))
:seen-text-headernil
Direct slots
Slot: data
Initargs

:data

Readers

get-data.

Writers

(setf get-data).

Slot: weight
Initargs

:weight

Readers

get-weight.

Writers

(setf get-weight).

Slot: depends-on
Initargs

:depends-on

Readers

get-depends-on.

Writers

(setf get-depends-on).

Slot: seen-text-header

Set if in the header block a non-pseudo header was already seen.

Initargs

:seen-text-header

Readers

get-seen-text-header.

Writers

(setf get-seen-text-header).

Class: payload-input-stream

Binary stream that reads data from the http stream.

It keeps data from last data frame in BUFFER, starting with INDEX.

Package

http2/stream-overlay.

Source

payload-streams.lisp.

Direct superclasses
Direct methods
Direct Default Initargs
InitargValue
:index0
:data(cons nil nil)
Direct slots
Slot: index
Initargs

:index

Readers

get-index.

Writers

(setf get-index).

Slot: data

tlist of accepted frames

Initargs

:data

Readers

get-data.

Writers

(setf get-data).

Class: payload-output-stream

Binary stream that accepts new octets to the output-buffer, until it is big
enough to send the data as a data frame on BASE-HTTP2-STREAM (or forced to by close of force-output)

Package

http2/stream-overlay.

Source

payload-streams.lisp.

Direct superclasses
Direct methods
Direct Default Initargs
InitargValue
:to-write0
:to-store0
Direct slots
Slot: output-buffer
Readers

get-output-buffer.

Writers

(setf get-output-buffer).

Class: payload-stream

Base class for a CL binary stream that is defined over http2 stream

Package

http2/stream-overlay.

Source

payload-streams.lisp.

Direct superclasses

binary-stream.

Direct subclasses
Direct methods
Direct slots
Slot: base-http2-stream
Initargs

:base-http2-stream

Readers

get-base-http2-stream.

Writers

(setf get-base-http2-stream).

Class: poll-server-connection

The poll server connection has a client object and send data to it.

Package

http2/server.

Source

poll-server.lisp.

Direct superclasses
Direct methods
Direct Default Initargs
InitargValue
:stream-class(quote vanilla-server-stream)
Direct slots
Slot: client
Initargs

:client

Readers

get-client.

Writers

(setf get-client).

Class: routing-mixin

Server with behaviour that is defined by two sets of handlers, exact and prefix. Appropriate handler is run to process the request when peer closes the http2 stream. The exact handler must match fully the path (so not the query), prefix handlers matches when the path starts with the prefix.

Protocol and domain are not checked. The behaviour is implemented in the appropriate PEER-ENDS-HTTP-STREAM method.

Package

http2/server.

Source

dispatch.lisp.

Direct subclasses
Direct methods
Direct Default Initargs
InitargValue
:exact-handlersnil
:prefix-handlersnil
Direct slots
Slot: exact-handlers
Initargs

:exact-handlers

Readers

get-exact-handlers.

Writers

(setf get-exact-handlers).

Slot: prefix-handlers
Initargs

:prefix-handlers

Readers

get-prefix-handlers.

Writers

(setf get-prefix-handlers).

Class: timeshift-pinging-connection

A mixin that implements specific DO-PING and DO-PONG so that the RTT is printed after DO-PING is send.

Package

http2/core.

Source

classes.lisp.

Direct subclasses

vanilla-client-connection.

Direct methods
Class: vanilla-server-connection

A server connection that spawns streams of VANILLA-SERVER-STREAM type when a new stream is requested, allows scheduled or other asynchronous writes, and optionally prints activities.

Package

http2/server.

Source

dispatch.lisp.

Direct superclasses
Direct Default Initargs
InitargValue
:stream-class(quote vanilla-server-stream)
Class: vanilla-server-stream

A server-side stream that can be used as a binary output stream, optionally prints activities, and reads full body from client if clients sends one.

Package

http2/server.

Source

dispatch.lisp.

Direct superclasses
Direct methods

peer-ends-http-stream.


6.2.10 Types

Type: context-table-element ()
Package

http2/hpack.

Source

hpack.lisp.

Type: frame-code-type ()
Package

http2/core.

Source

frames.lisp.

Type: receiver-fn ()

Function that reads and processes number of octets, and returns next function and its needed size.

Package

http2/core.

Source

frames.lisp.

Type: writer-fn ()
Package

http2/core.

Source

frames.lisp.


Appendix A Indexes


A.1 Concepts


A.2 Functions

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

(
(setf aref/wide): Public ordinary functions
(setf client-application-data): Private ordinary functions
(setf client-encrypt-buf): Private ordinary functions
(setf client-encrypt-buf-size): Private ordinary functions
(setf client-fd): Private ordinary functions
(setf client-fdset-idx): Private ordinary functions
(setf client-io-on-read): Private ordinary functions
(setf client-octets-needed): Private ordinary functions
(setf client-ssl): Private ordinary functions
(setf client-start-time): Private ordinary functions
(setf client-state): Private ordinary functions
(setf client-write-buf): Private ordinary functions
(setf frame-type-bad-state-error): Private ordinary functions
(setf frame-type-connection-ok): Private ordinary functions
(setf frame-type-documentation): Private ordinary functions
(setf frame-type-flag-keywords): Private ordinary functions
(setf frame-type-name): Private ordinary functions
(setf frame-type-new-stream-state): Private ordinary functions
(setf frame-type-old-stream-ok): Private ordinary functions
(setf frame-type-receive-fn): Private ordinary functions
(setf get-acked-settings): Private generic functions
(setf get-acked-settings): Private generic functions
(setf get-action-name): Private generic functions
(setf get-action-name): Private generic functions
(setf get-action-to-run): Private generic functions
(setf get-action-to-run): Private generic functions
(setf get-actual): Private generic functions
(setf get-actual): Private generic functions
(setf get-allowed): Private generic functions
(setf get-allowed): Private generic functions
(setf get-allowed): Private generic functions
(setf get-alpn): Private generic functions
(setf get-alpn): Private generic functions
(setf get-authority): Public generic functions
(setf get-authority): Public generic functions
(setf get-base-http2-stream): Private generic functions
(setf get-base-http2-stream): Private generic functions
(setf get-body): Public generic functions
(setf get-body): Public generic functions
(setf get-broken-char): Private generic functions
(setf get-broken-char): Private generic functions
(setf get-buffer): Private generic functions
(setf get-buffer): Private generic functions
(setf get-bytes-left-in-table): Private generic functions
(setf get-bytes-left-in-table): Private generic functions
(setf get-charset): Private generic functions
(setf get-charset): Private generic functions
(setf get-class): Private generic functions
(setf get-class): Private generic functions
(setf get-client): Private generic functions
(setf get-client): Private generic functions
(setf get-code): Private generic functions
(setf get-code): Private generic functions
(setf get-code): Private generic functions
(setf get-code): Private generic functions
(setf get-code): Private generic functions
(setf get-compression): Private generic functions
(setf get-compression): Private generic functions
(setf get-compression-context): Private generic functions
(setf get-compression-context): Private generic functions
(setf get-connection): Public generic functions
(setf get-connection): Public generic functions
(setf get-connection): Public generic functions
(setf get-connection-args): Private generic functions
(setf get-connection-args): Private generic functions
(setf get-connection-class): Private generic functions
(setf get-connection-class): Private generic functions
(setf get-content): Private generic functions
(setf get-content): Private generic functions
(setf get-content-type): Private generic functions
(setf get-content-type): Private generic functions
(setf get-data): Private generic functions
(setf get-data): Private generic functions
(setf get-data): Private generic functions
(setf get-data): Private generic functions
(setf get-data): Private generic functions
(setf get-debug-data): Private generic functions
(setf get-debug-data): Private generic functions
(setf get-decompression-context): Private generic functions
(setf get-decompression-context): Private generic functions
(setf get-deleted-items): Private generic functions
(setf get-deleted-items): Private generic functions
(setf get-depends-on): Private generic functions
(setf get-depends-on): Private generic functions
(setf get-dispatcher): Private generic functions
(setf get-dispatcher): Private generic functions
(setf get-dstate): Private generic functions
(setf get-dstate): Private generic functions
(setf get-dynamic-table): Private generic functions
(setf get-dynamic-table): Private generic functions
(setf get-dynamic-table-size): Public generic functions
(setf get-dynamic-table-size): Public generic functions
(setf get-end): Private generic functions
(setf get-end): Private generic functions
(setf get-end-headers-fn): Private generic functions
(setf get-end-headers-fn): Private generic functions
(setf get-error-code): Private generic functions
(setf get-error-code): Private generic functions
(setf get-exact-handlers): Private generic functions
(setf get-exact-handlers): Private generic functions
(setf get-fdset-size): Private generic functions
(setf get-fdset-size): Private generic functions
(setf get-frame-size): Private generic functions
(setf get-frame-size): Private generic functions
(setf get-frame-type): Private generic functions
(setf get-frame-type): Private generic functions
(setf get-frame-type): Private generic functions
(setf get-gzip-content): Private generic functions
(setf get-gzip-content): Private generic functions
(setf get-header): Private generic functions
(setf get-header): Private generic functions
(setf get-headers): Public generic functions
(setf get-headers): Public generic functions
(setf get-headers): Public generic functions
(setf get-host): Private generic functions
(setf get-host): Private generic functions
(setf get-id-to-use): Private generic functions
(setf get-id-to-use): Private generic functions
(setf get-index): Public generic functions
(setf get-index): Public generic functions
(setf get-index): Public generic functions
(setf get-initial-peer-window-size): Private generic functions
(setf get-initial-peer-window-size): Private generic functions
(setf get-initial-window-size): Private generic functions
(setf get-initial-window-size): Private generic functions
(setf get-internal-time-to-run): Private generic functions
(setf get-internal-time-to-run): Private generic functions
(setf get-last-id-seen): Private generic functions
(setf get-last-id-seen): Private generic functions
(setf get-last-stream-id): Private generic functions
(setf get-last-stream-id): Private generic functions
(setf get-lock): Public generic functions
(setf get-lock): Public generic functions
(setf get-max-frame-size): Private generic functions
(setf get-max-frame-size): Private generic functions
(setf get-max-frame-size): Private generic functions
(setf get-max-peer-frame-size): Public generic functions
(setf get-max-peer-frame-size): Public generic functions
(setf get-max-seen-so-far): Private generic functions
(setf get-max-seen-so-far): Private generic functions
(setf get-method): Public generic functions
(setf get-method): Public generic functions
(setf get-method): Public generic functions
(setf get-nagle): Private generic functions
(setf get-nagle): Private generic functions
(setf get-name): Private generic functions
(setf get-name): Private generic functions
(setf get-name): Private generic functions
(setf get-name): Private generic functions
(setf get-name): Private generic functions
(setf get-network-stream): Public generic functions
(setf get-network-stream): Public generic functions
(setf get-no-body): Private generic functions
(setf get-no-body): Private generic functions
(setf get-no-client-poll-timeout): Private generic functions
(setf get-no-client-poll-timeout): Private generic functions
(setf get-output-buffer): Private generic functions
(setf get-output-buffer): Private generic functions
(setf get-output-buffer): Private generic functions
(setf get-output-buffer): Private generic functions
(setf get-path): Public generic functions
(setf get-path): Public generic functions
(setf get-payload-input-stream): Private generic functions
(setf get-payload-input-stream): Private generic functions
(setf get-peer-accepts-push): Private generic functions
(setf get-peer-accepts-push): Private generic functions
(setf get-peer-window-size): Public generic functions
(setf get-peer-window-size): Public generic functions
(setf get-poll-timeout): Private generic functions
(setf get-poll-timeout): Private generic functions
(setf get-port): Private generic functions
(setf get-port): Private generic functions
(setf get-prefix-handlers): Private generic functions
(setf get-prefix-handlers): Private generic functions
(setf get-received): Private generic functions
(setf get-received): Private generic functions
(setf get-result): Private generic functions
(setf get-result): Private generic functions
(setf get-scheduled-tasks): Private generic functions
(setf get-scheduled-tasks): Private generic functions
(setf get-scheduler): Public generic functions
(setf get-scheduler): Public generic functions
(setf get-scheme): Public generic functions
(setf get-scheme): Public generic functions
(setf get-seen-text-header): Private generic functions
(setf get-seen-text-header): Private generic functions
(setf get-setting-code): Private generic functions
(setf get-setting-code): Private generic functions
(setf get-start): Private generic functions
(setf get-start): Private generic functions
(setf get-state): Private generic functions
(setf get-state): Private generic functions
(setf get-status): Private generic functions
(setf get-status): Private generic functions
(setf get-stream): Private generic functions
(setf get-stream): Private generic functions
(setf get-stream): Private generic functions
(setf get-stream-class): Public generic functions
(setf get-stream-class): Public generic functions
(setf get-stream-class): Public generic functions
(setf get-stream-id): Private generic functions
(setf get-stream-id): Private generic functions
(setf get-stream-id): Private generic functions
(setf get-stream-id): Private generic functions
(setf get-streams): Public generic functions
(setf get-streams): Public generic functions
(setf get-text): Private generic functions
(setf get-text): Private generic functions
(setf get-thread): Private generic functions
(setf get-thread): Private generic functions
(setf get-thread): Private generic functions
(setf get-tls-stream): Private generic functions
(setf get-tls-stream): Private generic functions
(setf get-to-write): Private generic functions
(setf get-to-write): Private generic functions
(setf get-updates-needed): Public generic functions
(setf get-updates-needed): Public generic functions
(setf get-uri): Private generic functions
(setf get-uri): Private generic functions
(setf get-url): Private generic functions
(setf get-url): Private generic functions
(setf get-value): Private generic functions
(setf get-value): Private generic functions
(setf get-value): Private generic functions
(setf get-value): Private generic functions
(setf get-value): Private generic functions
(setf get-value): Private generic functions
(setf get-weight): Private generic functions
(setf get-weight): Private generic functions
(setf get-window-open-fn): Private generic functions
(setf get-window-open-fn): Private generic functions
(setf get-window-size): Private generic functions
(setf get-window-size): Private generic functions
(setf get-window-size-increment-callback): Private generic functions
(setf get-window-size-increment-callback): Private generic functions
(setf get-write-buffer): Private generic functions
(setf get-write-buffer): Private generic functions
(setf priority-exclusive): Private ordinary functions
(setf priority-stream-dependency): Private ordinary functions
(setf priority-weight): Private ordinary functions

A
accept: Private ordinary functions
account-read-window-contribution: Private ordinary functions
account-write-window-contribution: Private ordinary functions
add-dynamic-header: Private generic functions
add-dynamic-header: Private generic functions
add-header: Public generic functions
add-header: Public generic functions
add-header: Public generic functions
add-header: Public generic functions
add-header: Public generic functions
add-socket-to-fdset: Private ordinary functions
add-state: Private ordinary functions
apply-data-frame: Public generic functions
apply-data-frame: Public generic functions
apply-data-frame: Public generic functions
apply-data-frame: Public generic functions
apply-data-frame: Public generic functions
apply-data-frame: Public generic functions
apply-data-frame: Public generic functions
apply-stream-priority: Public generic functions
apply-stream-priority: Public generic functions
apply-text-data-frame: Public generic functions
apply-text-data-frame: Public generic functions
apply-window-size-increment: Public generic functions
apply-window-size-increment: Public generic functions
apply-window-size-increment: Public generic functions
apply-window-size-increment: Public generic functions
apply-window-size-increment: Public generic functions
aref/wide: Public ordinary functions

B
bio-new: Public ordinary functions
bio-read%: Public ordinary functions
bio-s-mem: Public ordinary functions
bio-should-retry: Public ordinary functions
bio-test-flags: Private ordinary functions
bio-write: Public ordinary functions

C
callback-on-server: Public ordinary functions
change-state-on-write-end: Private ordinary functions
check-place-empty-and-set-it: Private macros
check-stream-state-ok: Private ordinary functions
checked-length: Private ordinary functions
checked-r-flag: Private ordinary functions
cleanup-connection: Private generic functions
cleanup-connection: Private generic functions
cleanup-connection: Private generic functions
client-application-data: Private ordinary functions
client-encrypt-buf: Private ordinary functions
client-encrypt-buf-size: Private ordinary functions
client-fd: Private ordinary functions
client-fdset-idx: Private ordinary functions
client-io-on-read: Private ordinary functions
client-octets-needed: Private ordinary functions
client-p: Private ordinary functions
client-rbio: Private ordinary functions
client-ssl: Private ordinary functions
client-start-time: Private ordinary functions
client-state: Private ordinary functions
client-wbio: Private ordinary functions
client-write-buf: Private ordinary functions
close: Public standalone methods
close: Public standalone methods
close-client-connection: Private ordinary functions
close-fd: Private ordinary functions
close-http2-stream: Public ordinary functions
compile-headers: Public ordinary functions
compile-payload-from-stream: Public macros
Compiler Macro, get-flag: Private compiler macros
compute-header-size: Private ordinary functions
compute-poll-timeout-value: Public ordinary functions
compute-timeout: Private ordinary functions
compute-update-dynamic-size-codes: Private ordinary functions
concatenate*: Private ordinary functions
connect-to-tls-server: Public ordinary functions
connection-error: Public ordinary functions
constant-handler: Public macros
copy-client: Private ordinary functions
copy-frame-type: Private ordinary functions
copy-priority: Private ordinary functions
count-open-streams: Private ordinary functions
create-new-local-stream: Public ordinary functions
create-server: Public ordinary functions

D
decode-frame-header: Private ordinary functions
decode-huffman: Private ordinary functions
decode-huffman-to-stream: Private ordinary functions
decode-octet-fn: Private ordinary functions
decrypt-socket-octets: Private ordinary functions
define-exact-handler: Public macros
define-frame-type: Private macros
define-frame-writer: Private macros
define-prefix-handler: Public macros
define-reader: Private macros
define-some-handler: Private ordinary functions
define-writer: Private macros
describe-object: Public standalone methods
do-available-actions: Private ordinary functions
do-decoded-headers: Public ordinary functions
do-goaway: Public generic functions
do-goaway: Public generic functions
do-goaway: Public generic functions
do-new-connection: Public generic functions
do-new-connection: Public generic functions
do-new-connection: Public generic functions
do-new-connection: Public generic functions
do-new-connection: Public generic functions
do-ping: Private generic functions
do-ping: Private generic functions
do-ping-fn: Private ordinary functions
do-pong: Public generic functions
do-pong: Public generic functions
do-pong: Public generic functions
do-pong-fn: Private ordinary functions
double-buffer-size: Private ordinary functions
doubled-buffer: Private ordinary functions
drakma-style-stream-values: Public ordinary functions
dynamic-table-entry-size: Private ordinary functions
dynamic-table-value: Private ordinary functions

E
empty-data-p: Private ordinary functions
encode-dynamic-table-update: Private ordinary functions
encode-header: Private ordinary functions
encode-huffman: Private ordinary functions
encrypt-and-send: Private ordinary functions
encrypt-data: Private ordinary functions
encrypt-some: Private ordinary functions
encrypt-some*: Public ordinary functions
err-get-error: Private ordinary functions
err-reason-error-string: Public ordinary functions
errno: Private ordinary functions
errno%: Private ordinary functions
extract-charset-from-content-type: Public ordinary functions
extract-charset-from-content-type: Private ordinary functions

F
fcntl: Private ordinary functions
fetch-resource: Public generic functions
fetch-resource: Public generic functions
fetch-resource: Public generic functions
fetch-resource: Public generic functions
fetch-resource: Public generic functions
fetch-resource: Public generic functions
fetch-resource: Public generic functions
fetch-resource: Public generic functions
find-certificate-file: Public ordinary functions
find-header-in-tables: Private ordinary functions
find-http-stream-by-id: Public ordinary functions
find-in-tables: Private ordinary functions
find-just-stream-by-id: Private ordinary functions
find-matching-handler: Private ordinary functions
find-pair-in-tables: Private ordinary functions
find-private-key-file: Public ordinary functions
find-setting-by-id: Public ordinary functions
find-setting-code: Public ordinary functions
flags-to-code: Private ordinary functions
flush-http2-data: Public generic functions
flush-http2-data: Public generic functions
flush-http2-data: Public generic functions
flush-http2-data: Public generic functions
frame-type-bad-state-error: Private ordinary functions
frame-type-connection-ok: Private ordinary functions
frame-type-documentation: Private ordinary functions
frame-type-flag-keywords: Private ordinary functions
frame-type-name: Private ordinary functions
frame-type-new-stream-state: Private ordinary functions
frame-type-old-stream-ok: Private ordinary functions
frame-type-p: Private ordinary functions
frame-type-receive-fn: Private ordinary functions
Function, (setf aref/wide): Public ordinary functions
Function, (setf client-application-data): Private ordinary functions
Function, (setf client-encrypt-buf): Private ordinary functions
Function, (setf client-encrypt-buf-size): Private ordinary functions
Function, (setf client-fd): Private ordinary functions
Function, (setf client-fdset-idx): Private ordinary functions
Function, (setf client-io-on-read): Private ordinary functions
Function, (setf client-octets-needed): Private ordinary functions
Function, (setf client-ssl): Private ordinary functions
Function, (setf client-start-time): Private ordinary functions
Function, (setf client-state): Private ordinary functions
Function, (setf client-write-buf): Private ordinary functions
Function, (setf frame-type-bad-state-error): Private ordinary functions
Function, (setf frame-type-connection-ok): Private ordinary functions
Function, (setf frame-type-documentation): Private ordinary functions
Function, (setf frame-type-flag-keywords): Private ordinary functions
Function, (setf frame-type-name): Private ordinary functions
Function, (setf frame-type-new-stream-state): Private ordinary functions
Function, (setf frame-type-old-stream-ok): Private ordinary functions
Function, (setf frame-type-receive-fn): Private ordinary functions
Function, (setf priority-exclusive): Private ordinary functions
Function, (setf priority-stream-dependency): Private ordinary functions
Function, (setf priority-weight): Private ordinary functions
Function, accept: Private ordinary functions
Function, account-read-window-contribution: Private ordinary functions
Function, account-write-window-contribution: Private ordinary functions
Function, add-socket-to-fdset: Private ordinary functions
Function, add-state: Private ordinary functions
Function, aref/wide: Public ordinary functions
Function, bio-new: Public ordinary functions
Function, bio-read%: Public ordinary functions
Function, bio-s-mem: Public ordinary functions
Function, bio-should-retry: Public ordinary functions
Function, bio-test-flags: Private ordinary functions
Function, bio-write: Public ordinary functions
Function, callback-on-server: Public ordinary functions
Function, change-state-on-write-end: Private ordinary functions
Function, check-stream-state-ok: Private ordinary functions
Function, checked-length: Private ordinary functions
Function, checked-r-flag: Private ordinary functions
Function, client-application-data: Private ordinary functions
Function, client-encrypt-buf: Private ordinary functions
Function, client-encrypt-buf-size: Private ordinary functions
Function, client-fd: Private ordinary functions
Function, client-fdset-idx: Private ordinary functions
Function, client-io-on-read: Private ordinary functions
Function, client-octets-needed: Private ordinary functions
Function, client-p: Private ordinary functions
Function, client-rbio: Private ordinary functions
Function, client-ssl: Private ordinary functions
Function, client-start-time: Private ordinary functions
Function, client-state: Private ordinary functions
Function, client-wbio: Private ordinary functions
Function, client-write-buf: Private ordinary functions
Function, close-client-connection: Private ordinary functions
Function, close-fd: Private ordinary functions
Function, close-http2-stream: Public ordinary functions
Function, compile-headers: Public ordinary functions
Function, compute-header-size: Private ordinary functions
Function, compute-poll-timeout-value: Public ordinary functions
Function, compute-timeout: Private ordinary functions
Function, compute-update-dynamic-size-codes: Private ordinary functions
Function, concatenate*: Private ordinary functions
Function, connect-to-tls-server: Public ordinary functions
Function, connection-error: Public ordinary functions
Function, copy-client: Private ordinary functions
Function, copy-frame-type: Private ordinary functions
Function, copy-priority: Private ordinary functions
Function, count-open-streams: Private ordinary functions
Function, create-new-local-stream: Public ordinary functions
Function, create-server: Public ordinary functions
Function, decode-frame-header: Private ordinary functions
Function, decode-huffman: Private ordinary functions
Function, decode-huffman-to-stream: Private ordinary functions
Function, decode-octet-fn: Private ordinary functions
Function, decrypt-socket-octets: Private ordinary functions
Function, define-some-handler: Private ordinary functions
Function, do-available-actions: Private ordinary functions
Function, do-decoded-headers: Public ordinary functions
Function, do-ping-fn: Private ordinary functions
Function, do-pong-fn: Private ordinary functions
Function, double-buffer-size: Private ordinary functions
Function, doubled-buffer: Private ordinary functions
Function, drakma-style-stream-values: Public ordinary functions
Function, dynamic-table-entry-size: Private ordinary functions
Function, dynamic-table-value: Private ordinary functions
Function, empty-data-p: Private ordinary functions
Function, encode-dynamic-table-update: Private ordinary functions
Function, encode-header: Private ordinary functions
Function, encode-huffman: Private ordinary functions
Function, encrypt-and-send: Private ordinary functions
Function, encrypt-data: Private ordinary functions
Function, encrypt-some: Private ordinary functions
Function, encrypt-some*: Public ordinary functions
Function, err-get-error: Private ordinary functions
Function, err-reason-error-string: Public ordinary functions
Function, errno: Private ordinary functions
Function, errno%: Private ordinary functions
Function, extract-charset-from-content-type: Public ordinary functions
Function, extract-charset-from-content-type: Private ordinary functions
Function, fcntl: Private ordinary functions
Function, find-certificate-file: Public ordinary functions
Function, find-header-in-tables: Private ordinary functions
Function, find-http-stream-by-id: Public ordinary functions
Function, find-in-tables: Private ordinary functions
Function, find-just-stream-by-id: Private ordinary functions
Function, find-matching-handler: Private ordinary functions
Function, find-pair-in-tables: Private ordinary functions
Function, find-private-key-file: Public ordinary functions
Function, find-setting-by-id: Public ordinary functions
Function, find-setting-code: Public ordinary functions
Function, flags-to-code: Private ordinary functions
Function, frame-type-bad-state-error: Private ordinary functions
Function, frame-type-connection-ok: Private ordinary functions
Function, frame-type-documentation: Private ordinary functions
Function, frame-type-flag-keywords: Private ordinary functions
Function, frame-type-name: Private ordinary functions
Function, frame-type-new-stream-state: Private ordinary functions
Function, frame-type-old-stream-ok: Private ordinary functions
Function, frame-type-p: Private ordinary functions
Function, frame-type-receive-fn: Private ordinary functions
Function, get-error-name: Public ordinary functions
Function, get-flag: Private ordinary functions
Function, get-integer-from-octet: Private ordinary functions
Function, get-next-task: Private ordinary functions
Function, handle-client-io: Private ordinary functions
Function, handle-ssl-errors: Private ordinary functions
Function, handle-ssl-errors*: Public ordinary functions
Function, has-flag: Private ordinary functions
Function, header-writer: Private ordinary functions
Function, http-stream-error: Public ordinary functions
Function, http-stream-to-string: Public ordinary functions
Function, huffman-coded-size: Private ordinary functions
Function, if-state: Private ordinary functions
Function, init-fdset: Private ordinary functions
Function, integer-to-array: Private ordinary functions
Function, is-utf8-p: Public ordinary functions
Function, kill-server: Public ordinary functions
Function, make-client%: Private ordinary functions
Function, make-client-object: Private ordinary functions
Function, make-cond-branch: Private ordinary functions
Function, make-frame-type: Private ordinary functions
Function, make-full-pipe: Public ordinary functions
Function, make-initialized-octet-buffer: Public ordinary functions
Function, make-octet-buffer: Public ordinary functions
Function, make-pipe: Public ordinary functions
Function, make-priority: Private ordinary functions
Function, make-release-documentation: Private ordinary functions
Function, make-transport-input-stream: Private ordinary functions
Function, make-transport-input-stream-from-stream: Private ordinary functions
Function, make-transport-output-stream: Public ordinary functions
Function, make-transport-output-stream-from-stream: Private ordinary functions
Function, make-unknown-frame-type: Private ordinary functions
Function, maybe-create-certificate: Public ordinary functions
Function, maybe-end-stream: Public ordinary functions
Function, maybe-init-ssl: Private ordinary functions
Function, move-encrypted-bytes: Private ordinary functions
Function, on-complete-ssl-data: Private ordinary functions
Function, open-http2-stream: Public ordinary functions
Function, padded-length: Private ordinary functions
Function, pages: Private ordinary functions
Function, parse-altsvc-frame: Public ordinary functions
Function, parse-client-preface: Public ordinary functions
Function, parse-continuation-frame: Public ordinary functions
Function, parse-data-frame: Public ordinary functions
Function, parse-frame-header: Public ordinary functions
Function, parse-goaway-frame: Public ordinary functions
Function, parse-header-frame*: Private ordinary functions
Function, parse-headers-frame: Public ordinary functions
Function, parse-ping-frame: Public ordinary functions
Function, parse-priority-frame: Public ordinary functions
Function, parse-push-promise-frame: Public ordinary functions
Function, parse-rst-stream-frame: Public ordinary functions
Function, parse-settings-frame: Public ordinary functions
Function, parse-simple-frames-header-end-all: Private ordinary functions
Function, parse-window-update-frame: Public ordinary functions
Function, peer-opens-http-stream-really-open: Private ordinary functions
Function, poll: Private ordinary functions
Function, pop-frame: Private ordinary functions
Function, priority-exclusive: Private ordinary functions
Function, priority-p: Private ordinary functions
Function, priority-stream-dependency: Private ordinary functions
Function, priority-weight: Private ordinary functions
Function, process-client-fd: Private ordinary functions
Function, process-client-sockets: Private ordinary functions
Function, process-data-on-socket: Private ordinary functions
Function, process-new-client: Private ordinary functions
Function, process-pending-frames: Public ordinary functions
Function, process-server-stream: Private ordinary functions
Function, process-ssl-errors: Private ordinary functions
Function, pull-once-push-bytes: Private ordinary functions
Function, pull-push-bytes: Private ordinary functions
Function, push-bytes: Private ordinary functions
Function, push-frame: Private ordinary functions
Function, queue-encrypted-bytes: Private ordinary functions
Function, read-2: Private ordinary functions
Function, read-and-add-headers: Private ordinary functions
Function, read-continuation-frame-on-demand: Private ordinary functions
Function, read-encrypted-from-openssl: Private ordinary functions
Function, read-frame: Public ordinary functions
Function, read-from-peer: Private ordinary functions
Function, read-from-tables: Private ordinary functions
Function, read-http-header: Private ordinary functions
Function, read-huffman: Private ordinary functions
Function, read-literal-header-field-new-name: Private ordinary functions
Function, read-literal-header-indexed-name: Private ordinary functions
Function, read-padding-from-vector: Private ordinary functions
Function, read-priority: Private ordinary functions
Function, read-string-from-stream: Private ordinary functions
Function, redirect-handler: Public ordinary functions
Function, remove-state: Private ordinary functions
Function, request-headers: Public ordinary functions
Function, retrieve-url: Public ordinary functions
Function, run: Public ordinary functions
Function, run-mature-tasks: Private ordinary functions
Function, run-scheduler-in-thread: Public ordinary functions
Function, run-user-callback: Private ordinary functions
Function, scheduler-empty-p: Public ordinary functions
Function, select-next-action: Private ordinary functions
Function, send-buffer-to-peer: Private ordinary functions
Function, send-data: Private ordinary functions
Function, send-goaway: Public ordinary functions
Function, send-headers: Public ordinary functions
Function, send-text-handler: Public ordinary functions
Function, send-to-peer: Private ordinary functions
Function, send-unencrypted-bytes: Private ordinary functions
Function, serve-tls: Private ordinary functions
Function, set-fd-slot: Private ordinary functions
Function, set-next-action: Private ordinary functions
Function, setsockopt: Private ordinary functions
Function, setup-new-connect-pollfd: Private ordinary functions
Function, setup-port: Private ordinary functions
Function, ssl-accept: Public ordinary functions
Function, ssl-ctx-check-private-key: Private ordinary functions
Function, ssl-ctx-ctrl: Private ordinary functions
Function, ssl-ctx-free: Private ordinary functions
Function, ssl-ctx-new: Private ordinary functions
Function, ssl-ctx-set-alpn-select-cb: Private ordinary functions
Function, ssl-ctx-set-options: Private ordinary functions
Function, ssl-ctx-use-certificate-chain-file: Private ordinary functions
Function, ssl-ctx-use-certificate-file: Private ordinary functions
Function, ssl-ctx-use-private-key-file: Private ordinary functions
Function, ssl-ctx-use-privatekey-file: Private ordinary functions
Function, ssl-err-reason-error-string: Private ordinary functions
Function, ssl-free: Public ordinary functions
Function, ssl-get-error: Private ordinary functions
Function, ssl-is-init-finished: Public ordinary functions
Function, ssl-new: Public ordinary functions
Function, ssl-pending: Private ordinary functions
Function, ssl-read: Private ordinary functions
Function, ssl-read%: Public ordinary functions
Function, ssl-select-next-proto: Private ordinary functions
Function, ssl-set-accept-state: Public ordinary functions
Function, ssl-set-bio: Public ordinary functions
Function, ssl-write: Private ordinary functions
Function, start: Public ordinary functions
Function, states-to-string: Private ordinary functions
Function, stop: Public ordinary functions
Function, stop-scheduler-in-thread: Public ordinary functions
Function, store-string: Private ordinary functions
Function, strerror: Private ordinary functions
Function, strerror-r%: Private ordinary functions
Function, time-to-action: Private ordinary functions
Function, tls-method: Private ordinary functions
Function, update-dynamic-table-size: Public ordinary functions
Function, url-from-port: Public ordinary functions
Function, url-from-socket: Public ordinary functions
Function, utf-first-char-size: Private ordinary functions
Function, utf-is-first-char: Private ordinary functions
Function, vector-from-hex-text: Public ordinary functions
Function, vector-index-to-hpack-index: Private ordinary functions
Function, wait-for-window-is-at-least-frame-size: Private ordinary functions
Function, write-2: Private ordinary functions
Function, write-31-bits: Private ordinary functions
Function, write-ack-setting-frame: Public ordinary functions
Function, write-altsvc-frame: Public ordinary functions
Function, write-binary-payload: Public ordinary functions
Function, write-body-and-padding: Private ordinary functions
Function, write-continuation-frame: Public ordinary functions
Function, write-data-frame: Public ordinary functions
Function, write-data-frame-multi: Public ordinary functions
Function, write-data-to-socket: Private ordinary functions
Function, write-frame: Private ordinary functions
Function, write-frame-header-to-vector: Public ordinary functions
Function, write-goaway-frame: Public ordinary functions
Function, write-headers-frame: Public ordinary functions
Function, write-indexed-header-pair: Private ordinary functions
Function, write-indexed-name: Private ordinary functions
Function, write-integer-to-array: Private ordinary functions
Function, write-literal-header-pair: Private ordinary functions
Function, write-octets-to-decrypt: Private ordinary functions
Function, write-ping-frame: Public ordinary functions
Function, write-priority: Private ordinary functions
Function, write-priority-frame: Public ordinary functions
Function, write-push-promise-frame: Public ordinary functions
Function, write-rst-stream-frame: Public ordinary functions
Function, write-sequences: Private ordinary functions
Function, write-settings-frame: Public ordinary functions
Function, write-simple-headers-frame: Private ordinary functions
Function, write-stream-id: Private ordinary functions
Function, write-window-update-frame: Public ordinary functions

G
Generic Function, (setf get-acked-settings): Private generic functions
Generic Function, (setf get-action-name): Private generic functions
Generic Function, (setf get-action-to-run): Private generic functions
Generic Function, (setf get-actual): Private generic functions
Generic Function, (setf get-allowed): Private generic functions
Generic Function, (setf get-alpn): Private generic functions
Generic Function, (setf get-authority): Public generic functions
Generic Function, (setf get-base-http2-stream): Private generic functions
Generic Function, (setf get-body): Public generic functions
Generic Function, (setf get-broken-char): Private generic functions
Generic Function, (setf get-buffer): Private generic functions
Generic Function, (setf get-bytes-left-in-table): Private generic functions
Generic Function, (setf get-charset): Private generic functions
Generic Function, (setf get-class): Private generic functions
Generic Function, (setf get-client): Private generic functions
Generic Function, (setf get-code): Private generic functions
Generic Function, (setf get-code): Private generic functions
Generic Function, (setf get-compression): Private generic functions
Generic Function, (setf get-compression-context): Private generic functions
Generic Function, (setf get-connection): Public generic functions
Generic Function, (setf get-connection-args): Private generic functions
Generic Function, (setf get-connection-class): Private generic functions
Generic Function, (setf get-content): Private generic functions
Generic Function, (setf get-content-type): Private generic functions
Generic Function, (setf get-data): Private generic functions
Generic Function, (setf get-data): Private generic functions
Generic Function, (setf get-debug-data): Private generic functions
Generic Function, (setf get-decompression-context): Private generic functions
Generic Function, (setf get-deleted-items): Private generic functions
Generic Function, (setf get-depends-on): Private generic functions
Generic Function, (setf get-dispatcher): Private generic functions
Generic Function, (setf get-dstate): Private generic functions
Generic Function, (setf get-dynamic-table): Private generic functions
Generic Function, (setf get-dynamic-table-size): Public generic functions
Generic Function, (setf get-end): Private generic functions
Generic Function, (setf get-end-headers-fn): Private generic functions
Generic Function, (setf get-error-code): Private generic functions
Generic Function, (setf get-exact-handlers): Private generic functions
Generic Function, (setf get-fdset-size): Private generic functions
Generic Function, (setf get-frame-size): Private generic functions
Generic Function, (setf get-frame-type): Private generic functions
Generic Function, (setf get-gzip-content): Private generic functions
Generic Function, (setf get-header): Private generic functions
Generic Function, (setf get-headers): Public generic functions
Generic Function, (setf get-host): Private generic functions
Generic Function, (setf get-id-to-use): Private generic functions
Generic Function, (setf get-index): Public generic functions
Generic Function, (setf get-initial-peer-window-size): Private generic functions
Generic Function, (setf get-initial-window-size): Private generic functions
Generic Function, (setf get-internal-time-to-run): Private generic functions
Generic Function, (setf get-last-id-seen): Private generic functions
Generic Function, (setf get-last-stream-id): Private generic functions
Generic Function, (setf get-lock): Public generic functions
Generic Function, (setf get-max-frame-size): Private generic functions
Generic Function, (setf get-max-peer-frame-size): Public generic functions
Generic Function, (setf get-max-seen-so-far): Private generic functions
Generic Function, (setf get-method): Public generic functions
Generic Function, (setf get-nagle): Private generic functions
Generic Function, (setf get-name): Private generic functions
Generic Function, (setf get-name): Private generic functions
Generic Function, (setf get-network-stream): Public generic functions
Generic Function, (setf get-no-body): Private generic functions
Generic Function, (setf get-no-client-poll-timeout): Private generic functions
Generic Function, (setf get-output-buffer): Private generic functions
Generic Function, (setf get-output-buffer): Private generic functions
Generic Function, (setf get-path): Public generic functions
Generic Function, (setf get-payload-input-stream): Private generic functions
Generic Function, (setf get-peer-accepts-push): Private generic functions
Generic Function, (setf get-peer-window-size): Public generic functions
Generic Function, (setf get-poll-timeout): Private generic functions
Generic Function, (setf get-port): Private generic functions
Generic Function, (setf get-prefix-handlers): Private generic functions
Generic Function, (setf get-received): Private generic functions
Generic Function, (setf get-result): Private generic functions
Generic Function, (setf get-scheduled-tasks): Private generic functions
Generic Function, (setf get-scheduler): Public generic functions
Generic Function, (setf get-scheme): Public generic functions
Generic Function, (setf get-seen-text-header): Private generic functions
Generic Function, (setf get-setting-code): Private generic functions
Generic Function, (setf get-start): Private generic functions
Generic Function, (setf get-state): Private generic functions
Generic Function, (setf get-status): Private generic functions
Generic Function, (setf get-stream): Private generic functions
Generic Function, (setf get-stream-class): Public generic functions
Generic Function, (setf get-stream-id): Private generic functions
Generic Function, (setf get-streams): Public generic functions
Generic Function, (setf get-text): Private generic functions
Generic Function, (setf get-thread): Private generic functions
Generic Function, (setf get-tls-stream): Private generic functions
Generic Function, (setf get-to-write): Private generic functions
Generic Function, (setf get-updates-needed): Public generic functions
Generic Function, (setf get-uri): Private generic functions
Generic Function, (setf get-url): Private generic functions
Generic Function, (setf get-value): Private generic functions
Generic Function, (setf get-weight): Private generic functions
Generic Function, (setf get-window-open-fn): Private generic functions
Generic Function, (setf get-window-size): Private generic functions
Generic Function, (setf get-window-size-increment-callback): Private generic functions
Generic Function, (setf get-write-buffer): Private generic functions
Generic Function, add-dynamic-header: Private generic functions
Generic Function, add-header: Public generic functions
Generic Function, apply-data-frame: Public generic functions
Generic Function, apply-stream-priority: Public generic functions
Generic Function, apply-text-data-frame: Public generic functions
Generic Function, apply-window-size-increment: Public generic functions
Generic Function, cleanup-connection: Private generic functions
Generic Function, do-goaway: Public generic functions
Generic Function, do-new-connection: Public generic functions
Generic Function, do-ping: Private generic functions
Generic Function, do-pong: Public generic functions
Generic Function, fetch-resource: Public generic functions
Generic Function, flush-http2-data: Public generic functions
Generic Function, get-acked-settings: Private generic functions
Generic Function, get-action-name: Private generic functions
Generic Function, get-action-to-run: Private generic functions
Generic Function, get-actual: Private generic functions
Generic Function, get-allowed: Private generic functions
Generic Function, get-alpn: Private generic functions
Generic Function, get-authority: Public generic functions
Generic Function, get-base-http2-stream: Private generic functions
Generic Function, get-body: Public generic functions
Generic Function, get-broken-char: Private generic functions
Generic Function, get-buffer: Private generic functions
Generic Function, get-bytes-left-in-table: Private generic functions
Generic Function, get-charset: Private generic functions
Generic Function, get-class: Private generic functions
Generic Function, get-client: Private generic functions
Generic Function, get-code: Private generic functions
Generic Function, get-code: Private generic functions
Generic Function, get-compression: Private generic functions
Generic Function, get-compression-context: Private generic functions
Generic Function, get-connection: Public generic functions
Generic Function, get-connection-args: Private generic functions
Generic Function, get-connection-class: Private generic functions
Generic Function, get-content: Private generic functions
Generic Function, get-content-type: Private generic functions
Generic Function, get-data: Private generic functions
Generic Function, get-data: Private generic functions
Generic Function, get-debug-data: Private generic functions
Generic Function, get-decompression-context: Private generic functions
Generic Function, get-deleted-items: Private generic functions
Generic Function, get-depends-on: Private generic functions
Generic Function, get-dispatcher: Private generic functions
Generic Function, get-dstate: Private generic functions
Generic Function, get-dynamic-table: Private generic functions
Generic Function, get-dynamic-table-size: Public generic functions
Generic Function, get-end: Private generic functions
Generic Function, get-end-headers-fn: Private generic functions
Generic Function, get-error-code: Private generic functions
Generic Function, get-exact-handlers: Private generic functions
Generic Function, get-fdset-size: Private generic functions
Generic Function, get-frame-size: Private generic functions
Generic Function, get-frame-type: Private generic functions
Generic Function, get-gzip-content: Private generic functions
Generic Function, get-header: Private generic functions
Generic Function, get-headers: Public generic functions
Generic Function, get-host: Private generic functions
Generic Function, get-id-to-use: Private generic functions
Generic Function, get-index: Public generic functions
Generic Function, get-initial-peer-window-size: Private generic functions
Generic Function, get-initial-window-size: Private generic functions
Generic Function, get-internal-time-to-run: Private generic functions
Generic Function, get-last-id-seen: Private generic functions
Generic Function, get-last-stream-id: Private generic functions
Generic Function, get-lock: Public generic functions
Generic Function, get-max-frame-size: Private generic functions
Generic Function, get-max-peer-frame-size: Public generic functions
Generic Function, get-max-seen-so-far: Private generic functions
Generic Function, get-method: Public generic functions
Generic Function, get-nagle: Private generic functions
Generic Function, get-name: Private generic functions
Generic Function, get-name: Private generic functions
Generic Function, get-network-stream: Public generic functions
Generic Function, get-no-body: Private generic functions
Generic Function, get-no-client-poll-timeout: Private generic functions
Generic Function, get-output-buffer: Private generic functions
Generic Function, get-output-buffer: Private generic functions
Generic Function, get-path: Public generic functions
Generic Function, get-payload-input-stream: Private generic functions
Generic Function, get-peer-accepts-push: Private generic functions
Generic Function, get-peer-window-size: Public generic functions
Generic Function, get-poll-timeout: Private generic functions
Generic Function, get-port: Private generic functions
Generic Function, get-prefix-handlers: Private generic functions
Generic Function, get-received: Private generic functions
Generic Function, get-result: Private generic functions
Generic Function, get-scheduled-tasks: Private generic functions
Generic Function, get-scheduler: Public generic functions
Generic Function, get-scheme: Public generic functions
Generic Function, get-seen-text-header: Private generic functions
Generic Function, get-sent: Private generic functions
Generic Function, get-setting-code: Private generic functions
Generic Function, get-settings: Private generic functions
Generic Function, get-start: Private generic functions
Generic Function, get-state: Private generic functions
Generic Function, get-status: Private generic functions
Generic Function, get-stream: Private generic functions
Generic Function, get-stream-class: Public generic functions
Generic Function, get-stream-id: Private generic functions
Generic Function, get-streams: Public generic functions
Generic Function, get-text: Private generic functions
Generic Function, get-thread: Private generic functions
Generic Function, get-tls: Private generic functions
Generic Function, get-tls-stream: Private generic functions
Generic Function, get-to-write: Private generic functions
Generic Function, get-updates-needed: Public generic functions
Generic Function, get-uri: Private generic functions
Generic Function, get-url: Private generic functions
Generic Function, get-value: Private generic functions
Generic Function, get-weight: Private generic functions
Generic Function, get-window-open-fn: Private generic functions
Generic Function, get-window-size: Private generic functions
Generic Function, get-window-size-increment-callback: Private generic functions
Generic Function, get-write-buffer: Private generic functions
Generic Function, handle-alt-svc: Private generic functions
Generic Function, handle-undefined-frame: Public generic functions
Generic Function, is-our-stream-id: Private generic functions
Generic Function, make-http2-tls-context: Public generic functions
Generic Function, maybe-lock-for-write: Private generic functions
Generic Function, maybe-unlock-for-write: Private generic functions
Generic Function, peer-acks-settings: Public generic functions
Generic Function, peer-ends-http-stream: Public generic functions
Generic Function, peer-expects-settings-ack: Public generic functions
Generic Function, peer-resets-stream: Public generic functions
Generic Function, peer-sends-push-promise: Private generic functions
Generic Function, present-result: Private generic functions
Generic Function, process-end-headers: Public generic functions
Generic Function, queue-frame: Public generic functions
Generic Function, schedule-task: Public generic functions
Generic Function, send-ping: Private generic functions
Generic Function, server-socket-stream: Public generic functions
Generic Function, set-peer-setting: Public generic functions
Generic Function, start-server-on-socket: Public generic functions
Generic Function, stop-server: Private generic functions
get-acked-settings: Private generic functions
get-acked-settings: Private generic functions
get-action-name: Private generic functions
get-action-name: Private generic functions
get-action-to-run: Private generic functions
get-action-to-run: Private generic functions
get-actual: Private generic functions
get-actual: Private generic functions
get-allowed: Private generic functions
get-allowed: Private generic functions
get-allowed: Private generic functions
get-alpn: Private generic functions
get-alpn: Private generic functions
get-authority: Public generic functions
get-authority: Public generic functions
get-base-http2-stream: Private generic functions
get-base-http2-stream: Private generic functions
get-body: Public generic functions
get-body: Public generic functions
get-broken-char: Private generic functions
get-broken-char: Private generic functions
get-buffer: Private generic functions
get-buffer: Private generic functions
get-bytes-left-in-table: Private generic functions
get-bytes-left-in-table: Private generic functions
get-charset: Private generic functions
get-charset: Private generic functions
get-class: Private generic functions
get-class: Private generic functions
get-client: Private generic functions
get-client: Private generic functions
get-code: Private generic functions
get-code: Private generic functions
get-code: Private generic functions
get-code: Private generic functions
get-code: Private generic functions
get-compression: Private generic functions
get-compression: Private generic functions
get-compression-context: Private generic functions
get-compression-context: Private generic functions
get-connection: Public generic functions
get-connection: Public generic functions
get-connection: Public generic functions
get-connection: Public generic functions
get-connection-args: Private generic functions
get-connection-args: Private generic functions
get-connection-class: Private generic functions
get-connection-class: Private generic functions
get-content: Private generic functions
get-content: Private generic functions
get-content-type: Private generic functions
get-content-type: Private generic functions
get-data: Private generic functions
get-data: Private generic functions
get-data: Private generic functions
get-data: Private generic functions
get-data: Private generic functions
get-data: Private generic functions
get-debug-data: Private generic functions
get-debug-data: Private generic functions
get-decompression-context: Private generic functions
get-decompression-context: Private generic functions
get-deleted-items: Private generic functions
get-deleted-items: Private generic functions
get-depends-on: Private generic functions
get-depends-on: Private generic functions
get-dispatcher: Private generic functions
get-dispatcher: Private generic functions
get-dstate: Private generic functions
get-dstate: Private generic functions
get-dynamic-table: Private generic functions
get-dynamic-table: Private generic functions
get-dynamic-table-size: Public generic functions
get-dynamic-table-size: Public generic functions
get-end: Private generic functions
get-end: Private generic functions
get-end-headers-fn: Private generic functions
get-end-headers-fn: Private generic functions
get-error-code: Private generic functions
get-error-code: Private generic functions
get-error-name: Public ordinary functions
get-exact-handlers: Private generic functions
get-exact-handlers: Private generic functions
get-fdset-size: Private generic functions
get-fdset-size: Private generic functions
get-flag: Private compiler macros
get-flag: Private ordinary functions
get-frame-size: Private generic functions
get-frame-size: Private generic functions
get-frame-type: Private generic functions
get-frame-type: Private generic functions
get-frame-type: Private generic functions
get-gzip-content: Private generic functions
get-gzip-content: Private generic functions
get-header: Private generic functions
get-header: Private generic functions
get-headers: Public generic functions
get-headers: Public generic functions
get-headers: Public generic functions
get-headers: Public generic functions
get-host: Private generic functions
get-host: Private generic functions
get-id-to-use: Private generic functions
get-id-to-use: Private generic functions
get-index: Public generic functions
get-index: Public generic functions
get-index: Public generic functions
get-initial-peer-window-size: Private generic functions
get-initial-peer-window-size: Private generic functions
get-initial-window-size: Private generic functions
get-initial-window-size: Private generic functions
get-integer-from-octet: Private ordinary functions
get-internal-time-to-run: Private generic functions
get-internal-time-to-run: Private generic functions
get-last-id-seen: Private generic functions
get-last-id-seen: Private generic functions
get-last-stream-id: Private generic functions
get-last-stream-id: Private generic functions
get-lock: Public generic functions
get-lock: Public generic functions
get-max-frame-size: Private generic functions
get-max-frame-size: Private generic functions
get-max-frame-size: Private generic functions
get-max-peer-frame-size: Public generic functions
get-max-peer-frame-size: Public generic functions
get-max-seen-so-far: Private generic functions
get-max-seen-so-far: Private generic functions
get-method: Public generic functions
get-method: Public generic functions
get-method: Public generic functions
get-nagle: Private generic functions
get-nagle: Private generic functions
get-name: Private generic functions
get-name: Private generic functions
get-name: Private generic functions
get-name: Private generic functions
get-name: Private generic functions
get-network-stream: Public generic functions
get-network-stream: Public generic functions
get-network-stream: Public generic functions
get-next-task: Private ordinary functions
get-no-body: Private generic functions
get-no-body: Private generic functions
get-no-client-poll-timeout: Private generic functions
get-no-client-poll-timeout: Private generic functions
get-no-client-poll-timeout: Private generic functions
get-output-buffer: Private generic functions
get-output-buffer: Private generic functions
get-output-buffer: Private generic functions
get-output-buffer: Private generic functions
get-path: Public generic functions
get-path: Public generic functions
get-payload-input-stream: Private generic functions
get-payload-input-stream: Private generic functions
get-peer-accepts-push: Private generic functions
get-peer-accepts-push: Private generic functions
get-peer-window-size: Public generic functions
get-peer-window-size: Public generic functions
get-poll-timeout: Private generic functions
get-poll-timeout: Private generic functions
get-port: Private generic functions
get-port: Private generic functions
get-prefix-handlers: Private generic functions
get-prefix-handlers: Private generic functions
get-received: Private generic functions
get-received: Private generic functions
get-result: Private generic functions
get-result: Private generic functions
get-scheduled-tasks: Private generic functions
get-scheduled-tasks: Private generic functions
get-scheduler: Public generic functions
get-scheduler: Public generic functions
get-scheme: Public generic functions
get-scheme: Public generic functions
get-seen-text-header: Private generic functions
get-seen-text-header: Private generic functions
get-sent: Private generic functions
get-sent: Private generic functions
get-setting-code: Private generic functions
get-setting-code: Private generic functions
get-settings: Private generic functions
get-settings: Private generic functions
get-settings: Private generic functions
get-start: Private generic functions
get-start: Private generic functions
get-state: Private generic functions
get-state: Private generic functions
get-state: Private generic functions
get-status: Private generic functions
get-status: Private generic functions
get-stream: Private generic functions
get-stream: Private generic functions
get-stream: Private generic functions
get-stream-class: Public generic functions
get-stream-class: Public generic functions
get-stream-class: Public generic functions
get-stream-id: Private generic functions
get-stream-id: Private generic functions
get-stream-id: Private generic functions
get-stream-id: Private generic functions
get-stream-id: Private generic functions
get-streams: Public generic functions
get-streams: Public generic functions
get-text: Private generic functions
get-text: Private generic functions
get-thread: Private generic functions
get-thread: Private generic functions
get-thread: Private generic functions
get-tls: Private generic functions
get-tls: Private generic functions
get-tls: Private generic functions
get-tls: Private generic functions
get-tls-stream: Private generic functions
get-tls-stream: Private generic functions
get-to-write: Private generic functions
get-to-write: Private generic functions
get-updates-needed: Public generic functions
get-updates-needed: Public generic functions
get-uri: Private generic functions
get-uri: Private generic functions
get-url: Private generic functions
get-url: Private generic functions
get-value: Private generic functions
get-value: Private generic functions
get-value: Private generic functions
get-value: Private generic functions
get-value: Private generic functions
get-value: Private generic functions
get-weight: Private generic functions
get-weight: Private generic functions
get-window-open-fn: Private generic functions
get-window-open-fn: Private generic functions
get-window-size: Private generic functions
get-window-size: Private generic functions
get-window-size-increment-callback: Private generic functions
get-window-size-increment-callback: Private generic functions
get-write-buffer: Private generic functions
get-write-buffer: Private generic functions

H
handle-alt-svc: Private generic functions
handle-alt-svc: Private generic functions
handle-client-io: Private ordinary functions
handle-ssl-errors: Private ordinary functions
handle-ssl-errors*: Public ordinary functions
handle-undefined-frame: Public generic functions
handle-undefined-frame: Public generic functions
handler: Public macros
has-flag: Private ordinary functions
header-writer: Private ordinary functions
http-stream-error: Public ordinary functions
http-stream-to-string: Public ordinary functions
huffman-coded-size: Private ordinary functions

I
if-state: Private ordinary functions
incf*: Private macros
init-fdset: 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
integer-to-array: Private ordinary functions
is-our-stream-id: Private generic functions
is-our-stream-id: Private generic functions
is-our-stream-id: Private generic functions
is-utf8-p: Public ordinary functions

K
kill-server: Public ordinary functions

M
Macro, check-place-empty-and-set-it: Private macros
Macro, compile-payload-from-stream: Public macros
Macro, constant-handler: Public macros
Macro, define-exact-handler: Public macros
Macro, define-frame-type: Private macros
Macro, define-frame-writer: Private macros
Macro, define-prefix-handler: Public macros
Macro, define-reader: Private macros
Macro, define-writer: Private macros
Macro, handler: Public macros
Macro, incf*: Private macros
Macro, scheduling-handler: Private macros
Macro, with-http2-connection: Private macros
Macro, with-output-payload-slots: Private macros
Macro, with-padding-marks: Private macros
Macro, with-ssl-context: Public macros
Macro, with-standard-handlers: Private macros
make-client%: Private ordinary functions
make-client-object: Private ordinary functions
make-cond-branch: Private ordinary functions
make-frame-type: Private ordinary functions
make-full-pipe: Public ordinary functions
make-http2-tls-context: Public generic functions
make-http2-tls-context: Public generic functions
make-http2-tls-context: Public generic functions
make-initialized-octet-buffer: Public ordinary functions
make-octet-buffer: Public ordinary functions
make-pipe: Public ordinary functions
make-priority: Private ordinary functions
make-release-documentation: Private ordinary functions
make-transport-input-stream: Private ordinary functions
make-transport-input-stream-from-stream: Private ordinary functions
make-transport-output-stream: Public ordinary functions
make-transport-output-stream-from-stream: Private ordinary functions
make-unknown-frame-type: Private ordinary functions
maybe-create-certificate: Public ordinary functions
maybe-end-stream: Public ordinary functions
maybe-init-ssl: Private ordinary functions
maybe-lock-for-write: Private generic functions
maybe-lock-for-write: Private generic functions
maybe-unlock-for-write: Private generic functions
maybe-unlock-for-write: Private generic functions
Method, (setf get-acked-settings): Private generic functions
Method, (setf get-action-name): Private generic functions
Method, (setf get-action-to-run): Private generic functions
Method, (setf get-actual): Private generic functions
Method, (setf get-allowed): Private generic functions
Method, (setf get-allowed): Private generic functions
Method, (setf get-alpn): Private generic functions
Method, (setf get-authority): Public generic functions
Method, (setf get-base-http2-stream): Private generic functions
Method, (setf get-body): Public generic functions
Method, (setf get-broken-char): Private generic functions
Method, (setf get-buffer): Private generic functions
Method, (setf get-bytes-left-in-table): Private generic functions
Method, (setf get-charset): Private generic functions
Method, (setf get-class): Private generic functions
Method, (setf get-client): Private generic functions
Method, (setf get-code): Private generic functions
Method, (setf get-code): Private generic functions
Method, (setf get-code): Private generic functions
Method, (setf get-compression): Private generic functions
Method, (setf get-compression-context): Private generic functions
Method, (setf get-connection): Public generic functions
Method, (setf get-connection): Public generic functions
Method, (setf get-connection-args): Private generic functions
Method, (setf get-connection-class): Private generic functions
Method, (setf get-content): Private generic functions
Method, (setf get-content-type): Private generic functions
Method, (setf get-data): Private generic functions
Method, (setf get-data): Private generic functions
Method, (setf get-data): Private generic functions
Method, (setf get-debug-data): Private generic functions
Method, (setf get-decompression-context): Private generic functions
Method, (setf get-deleted-items): Private generic functions
Method, (setf get-depends-on): Private generic functions
Method, (setf get-dispatcher): Private generic functions
Method, (setf get-dstate): Private generic functions
Method, (setf get-dynamic-table): Private generic functions
Method, (setf get-dynamic-table-size): Public generic functions
Method, (setf get-end): Private generic functions
Method, (setf get-end-headers-fn): Private generic functions
Method, (setf get-error-code): Private generic functions
Method, (setf get-exact-handlers): Private generic functions
Method, (setf get-fdset-size): Private generic functions
Method, (setf get-frame-size): Private generic functions
Method, (setf get-frame-type): Private generic functions
Method, (setf get-frame-type): Private generic functions
Method, (setf get-gzip-content): Private generic functions
Method, (setf get-header): Private generic functions
Method, (setf get-headers): Public generic functions
Method, (setf get-headers): Public generic functions
Method, (setf get-host): Private generic functions
Method, (setf get-id-to-use): Private generic functions
Method, (setf get-index): Public generic functions
Method, (setf get-index): Public generic functions
Method, (setf get-initial-peer-window-size): Private generic functions
Method, (setf get-initial-window-size): Private generic functions
Method, (setf get-internal-time-to-run): Private generic functions
Method, (setf get-last-id-seen): Private generic functions
Method, (setf get-last-stream-id): Private generic functions
Method, (setf get-lock): Public generic functions
Method, (setf get-max-frame-size): Private generic functions
Method, (setf get-max-frame-size): Private generic functions
Method, (setf get-max-peer-frame-size): Public generic functions
Method, (setf get-max-seen-so-far): Private generic functions
Method, (setf get-method): Public generic functions
Method, (setf get-method): Public generic functions
Method, (setf get-nagle): Private generic functions
Method, (setf get-name): Private generic functions
Method, (setf get-name): Private generic functions
Method, (setf get-name): Private generic functions
Method, (setf get-network-stream): Public generic functions
Method, (setf get-no-body): Private generic functions
Method, (setf get-no-client-poll-timeout): Private generic functions
Method, (setf get-output-buffer): Private generic functions
Method, (setf get-output-buffer): Private generic functions
Method, (setf get-path): Public generic functions
Method, (setf get-payload-input-stream): Private generic functions
Method, (setf get-peer-accepts-push): Private generic functions
Method, (setf get-peer-window-size): Public generic functions
Method, (setf get-poll-timeout): Private generic functions
Method, (setf get-port): Private generic functions
Method, (setf get-prefix-handlers): Private generic functions
Method, (setf get-received): Private generic functions
Method, (setf get-result): Private generic functions
Method, (setf get-scheduled-tasks): Private generic functions
Method, (setf get-scheduler): Public generic functions
Method, (setf get-scheme): Public generic functions
Method, (setf get-seen-text-header): Private generic functions
Method, (setf get-setting-code): Private generic functions
Method, (setf get-start): Private generic functions
Method, (setf get-state): Private generic functions
Method, (setf get-status): Private generic functions
Method, (setf get-stream): Private generic functions
Method, (setf get-stream): Private generic functions
Method, (setf get-stream-class): Public generic functions
Method, (setf get-stream-class): Public generic functions
Method, (setf get-stream-id): Private generic functions
Method, (setf get-stream-id): Private generic functions
Method, (setf get-stream-id): Private generic functions
Method, (setf get-streams): Public generic functions
Method, (setf get-text): Private generic functions
Method, (setf get-thread): Private generic functions
Method, (setf get-thread): Private generic functions
Method, (setf get-tls-stream): Private generic functions
Method, (setf get-to-write): Private generic functions
Method, (setf get-updates-needed): Public generic functions
Method, (setf get-uri): Private generic functions
Method, (setf get-url): Private generic functions
Method, (setf get-value): Private generic functions
Method, (setf get-value): Private generic functions
Method, (setf get-value): Private generic functions
Method, (setf get-value): Private generic functions
Method, (setf get-value): Private generic functions
Method, (setf get-weight): Private generic functions
Method, (setf get-window-open-fn): Private generic functions
Method, (setf get-window-size): Private generic functions
Method, (setf get-window-size-increment-callback): Private generic functions
Method, (setf get-write-buffer): Private generic functions
Method, add-dynamic-header: Private generic functions
Method, add-header: Public generic functions
Method, add-header: Public generic functions
Method, add-header: Public generic functions
Method, add-header: Public generic functions
Method, apply-data-frame: Public generic functions
Method, apply-data-frame: Public generic functions
Method, apply-data-frame: Public generic functions
Method, apply-data-frame: Public generic functions
Method, apply-data-frame: Public generic functions
Method, apply-data-frame: Public generic functions
Method, apply-stream-priority: Public generic functions
Method, apply-text-data-frame: Public generic functions
Method, apply-window-size-increment: Public generic functions
Method, apply-window-size-increment: Public generic functions
Method, apply-window-size-increment: Public generic functions
Method, apply-window-size-increment: Public generic functions
Method, cleanup-connection: Private generic functions
Method, cleanup-connection: Private generic functions
Method, close: Public standalone methods
Method, close: Public standalone methods
Method, describe-object: Public standalone methods
Method, do-goaway: Public generic functions
Method, do-goaway: Public generic functions
Method, do-new-connection: Public generic functions
Method, do-new-connection: Public generic functions
Method, do-new-connection: Public generic functions
Method, do-new-connection: Public generic functions
Method, do-ping: Private generic functions
Method, do-pong: Public generic functions
Method, do-pong: Public generic functions
Method, fetch-resource: Public generic functions
Method, fetch-resource: Public generic functions
Method, fetch-resource: Public generic functions
Method, fetch-resource: Public generic functions
Method, fetch-resource: Public generic functions
Method, fetch-resource: Public generic functions
Method, fetch-resource: Public generic functions
Method, flush-http2-data: Public generic functions
Method, flush-http2-data: Public generic functions
Method, flush-http2-data: Public generic functions
Method, get-acked-settings: Private generic functions
Method, get-action-name: Private generic functions
Method, get-action-to-run: Private generic functions
Method, get-actual: Private generic functions
Method, get-allowed: Private generic functions
Method, get-allowed: Private generic functions
Method, get-alpn: Private generic functions
Method, get-authority: Public generic functions
Method, get-base-http2-stream: Private generic functions
Method, get-body: Public generic functions
Method, get-broken-char: Private generic functions
Method, get-buffer: Private generic functions
Method, get-bytes-left-in-table: Private generic functions
Method, get-charset: Private generic functions
Method, get-class: Private generic functions
Method, get-client: Private generic functions
Method, get-code: Private generic functions
Method, get-code: Private generic functions
Method, get-code: Private generic functions
Method, get-compression: Private generic functions
Method, get-compression-context: Private generic functions
Method, get-connection: Public generic functions
Method, get-connection: Public generic functions
Method, get-connection: Public generic functions
Method, get-connection-args: Private generic functions
Method, get-connection-class: Private generic functions
Method, get-content: Private generic functions
Method, get-content-type: Private generic functions
Method, get-data: Private generic functions
Method, get-data: Private generic functions
Method, get-data: Private generic functions
Method, get-data: Private generic functions
Method, get-debug-data: Private generic functions
Method, get-decompression-context: Private generic functions
Method, get-deleted-items: Private generic functions
Method, get-depends-on: Private generic functions
Method, get-dispatcher: Private generic functions
Method, get-dstate: Private generic functions
Method, get-dynamic-table: Private generic functions
Method, get-dynamic-table-size: Public generic functions
Method, get-end: Private generic functions
Method, get-end-headers-fn: Private generic functions
Method, get-error-code: Private generic functions
Method, get-exact-handlers: Private generic functions
Method, get-fdset-size: Private generic functions
Method, get-frame-size: Private generic functions
Method, get-frame-type: Private generic functions
Method, get-frame-type: Private generic functions
Method, get-gzip-content: Private generic functions
Method, get-header: Private generic functions
Method, get-headers: Public generic functions
Method, get-headers: Public generic functions
Method, get-headers: Public generic functions
Method, get-host: Private generic functions
Method, get-id-to-use: Private generic functions
Method, get-index: Public generic functions
Method, get-index: Public generic functions
Method, get-initial-peer-window-size: Private generic functions
Method, get-initial-window-size: Private generic functions
Method, get-internal-time-to-run: Private generic functions
Method, get-last-id-seen: Private generic functions
Method, get-last-stream-id: Private generic functions
Method, get-lock: Public generic functions
Method, get-max-frame-size: Private generic functions
Method, get-max-frame-size: Private generic functions
Method, get-max-peer-frame-size: Public generic functions
Method, get-max-seen-so-far: Private generic functions
Method, get-method: Public generic functions
Method, get-method: Public generic functions
Method, get-nagle: Private generic functions
Method, get-name: Private generic functions
Method, get-name: Private generic functions
Method, get-name: Private generic functions
Method, get-network-stream: Public generic functions
Method, get-network-stream: Public generic functions
Method, get-no-body: Private generic functions
Method, get-no-client-poll-timeout: Private generic functions
Method, get-no-client-poll-timeout: Private generic functions
Method, get-output-buffer: Private generic functions
Method, get-output-buffer: Private generic functions
Method, get-path: Public generic functions
Method, get-payload-input-stream: Private generic functions
Method, get-peer-accepts-push: Private generic functions
Method, get-peer-window-size: Public generic functions
Method, get-poll-timeout: Private generic functions
Method, get-port: Private generic functions
Method, get-prefix-handlers: Private generic functions
Method, get-received: Private generic functions
Method, get-result: Private generic functions
Method, get-scheduled-tasks: Private generic functions
Method, get-scheduler: Public generic functions
Method, get-scheme: Public generic functions
Method, get-seen-text-header: Private generic functions
Method, get-sent: Private generic functions
Method, get-setting-code: Private generic functions
Method, get-settings: Private generic functions
Method, get-settings: Private generic functions
Method, get-start: Private generic functions
Method, get-state: Private generic functions
Method, get-state: Private generic functions
Method, get-status: Private generic functions
Method, get-stream: Private generic functions
Method, get-stream: Private generic functions
Method, get-stream-class: Public generic functions
Method, get-stream-class: Public generic functions
Method, get-stream-id: Private generic functions
Method, get-stream-id: Private generic functions
Method, get-stream-id: Private generic functions
Method, get-stream-id: Private generic functions
Method, get-streams: Public generic functions
Method, get-text: Private generic functions
Method, get-thread: Private generic functions
Method, get-thread: Private generic functions
Method, get-tls: Private generic functions
Method, get-tls: Private generic functions
Method, get-tls: Private generic functions
Method, get-tls-stream: Private generic functions
Method, get-to-write: Private generic functions
Method, get-updates-needed: Public generic functions
Method, get-uri: Private generic functions
Method, get-url: Private generic functions
Method, get-value: Private generic functions
Method, get-value: Private generic functions
Method, get-value: Private generic functions
Method, get-value: Private generic functions
Method, get-value: Private generic functions
Method, get-weight: Private generic functions
Method, get-window-open-fn: Private generic functions
Method, get-window-size: Private generic functions
Method, get-window-size-increment-callback: Private generic functions
Method, get-write-buffer: Private generic functions
Method, handle-alt-svc: Private generic functions
Method, handle-undefined-frame: Public 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, is-our-stream-id: Private generic functions
Method, is-our-stream-id: Private generic functions
Method, make-http2-tls-context: Public generic functions
Method, make-http2-tls-context: Public generic functions
Method, maybe-lock-for-write: Private generic functions
Method, maybe-unlock-for-write: Private generic functions
Method, peer-acks-settings: Public generic functions
Method, peer-ends-http-stream: Public generic functions
Method, peer-ends-http-stream: Public generic functions
Method, peer-ends-http-stream: Public generic functions
Method, peer-expects-settings-ack: Public generic functions
Method, peer-resets-stream: Public generic functions
Method, peer-resets-stream: Public generic functions
Method, peer-sends-push-promise: Private generic functions
Method, present-result: Private generic functions
Method, present-result: Private generic functions
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods
Method, process-end-headers: Public generic functions
Method, process-end-headers: Public generic functions
Method, process-end-headers: Public generic functions
Method, process-end-headers: Public generic functions
Method, queue-frame: Public generic functions
Method, queue-frame: Public generic functions
Method, queue-frame: Public generic functions
Method, queue-frame: Public generic functions
Method, schedule-task: Public generic functions
Method, schedule-task: Public generic functions
Method, send-ping: Private generic functions
Method, send-ping: Private generic functions
Method, server-socket-stream: Public generic functions
Method, server-socket-stream: Public generic functions
Method, set-peer-setting: Public generic functions
Method, set-peer-setting: Public generic functions
Method, set-peer-setting: Public generic functions
Method, set-peer-setting: Public generic functions
Method, set-peer-setting: Public generic functions
Method, set-peer-setting: Public generic functions
Method, set-peer-setting: Public generic functions
Method, set-peer-setting: Public generic functions
Method, set-peer-setting: Public generic functions
Method, start-server-on-socket: Public generic functions
Method, start-server-on-socket: Public generic functions
Method, start-server-on-socket: Public generic functions
Method, stop-server: Private generic functions
Method, stream-element-type: Public standalone methods
Method, stream-force-output: Public standalone methods
Method, stream-listen: Public standalone methods
Method, stream-listen: Public standalone methods
Method, stream-read-byte: Public standalone methods
Method, stream-read-byte: Public standalone methods
Method, stream-write-byte: Public standalone methods
Method, stream-write-byte: Public standalone methods
Method, stream-write-byte: Public standalone methods
Method, stream-write-sequence: Public standalone methods
move-encrypted-bytes: Private ordinary functions

O
on-complete-ssl-data: Private ordinary functions
open-http2-stream: Public ordinary functions

P
padded-length: Private ordinary functions
pages: Private ordinary functions
parse-altsvc-frame: Public ordinary functions
parse-client-preface: Public ordinary functions
parse-continuation-frame: Public ordinary functions
parse-data-frame: Public ordinary functions
parse-frame-header: Public ordinary functions
parse-goaway-frame: Public ordinary functions
parse-header-frame*: Private ordinary functions
parse-headers-frame: Public ordinary functions
parse-ping-frame: Public ordinary functions
parse-priority-frame: Public ordinary functions
parse-push-promise-frame: Public ordinary functions
parse-rst-stream-frame: Public ordinary functions
parse-settings-frame: Public ordinary functions
parse-simple-frames-header-end-all: Private ordinary functions
parse-window-update-frame: Public ordinary functions
peer-acks-settings: Public generic functions
peer-acks-settings: Public generic functions
peer-ends-http-stream: Public generic functions
peer-ends-http-stream: Public generic functions
peer-ends-http-stream: Public generic functions
peer-ends-http-stream: Public generic functions
peer-expects-settings-ack: Public generic functions
peer-expects-settings-ack: Public generic functions
peer-opens-http-stream-really-open: Private ordinary functions
peer-resets-stream: Public generic functions
peer-resets-stream: Public generic functions
peer-resets-stream: Public generic functions
peer-sends-push-promise: Private generic functions
peer-sends-push-promise: Private generic functions
poll: Private ordinary functions
pop-frame: Private ordinary functions
present-result: Private generic functions
present-result: Private generic functions
present-result: Private generic functions
print-object: Public standalone methods
print-object: Public standalone methods
print-object: Public standalone methods
print-object: Public standalone methods
print-object: Public standalone methods
print-object: Public standalone methods
print-object: Public standalone methods
print-object: Public standalone methods
print-object: Public standalone methods
print-object: Public standalone methods
print-object: Public standalone methods
print-object: Public standalone methods
print-object: Public standalone methods
print-object: Public standalone methods
print-object: Public standalone methods
print-object: Public standalone methods
print-object: Public standalone methods
print-object: Public standalone methods
print-object: Public standalone methods
priority-exclusive: Private ordinary functions
priority-p: Private ordinary functions
priority-stream-dependency: Private ordinary functions
priority-weight: Private ordinary functions
process-client-fd: Private ordinary functions
process-client-sockets: Private ordinary functions
process-data-on-socket: Private ordinary functions
process-end-headers: Public generic functions
process-end-headers: Public generic functions
process-end-headers: Public generic functions
process-end-headers: Public generic functions
process-end-headers: Public generic functions
process-new-client: Private ordinary functions
process-pending-frames: Public ordinary functions
process-server-stream: Private ordinary functions
process-ssl-errors: Private ordinary functions
pull-once-push-bytes: Private ordinary functions
pull-push-bytes: Private ordinary functions
push-bytes: Private ordinary functions
push-frame: Private ordinary functions

Q
queue-encrypted-bytes: Private ordinary functions
queue-frame: Public generic functions
queue-frame: Public generic functions
queue-frame: Public generic functions
queue-frame: Public generic functions
queue-frame: Public generic functions

R
read-2: Private ordinary functions
read-and-add-headers: Private ordinary functions
read-continuation-frame-on-demand: Private ordinary functions
read-encrypted-from-openssl: Private ordinary functions
read-frame: Public ordinary functions
read-from-peer: Private ordinary functions
read-from-tables: Private ordinary functions
read-http-header: Private ordinary functions
read-huffman: Private ordinary functions
read-literal-header-field-new-name: Private ordinary functions
read-literal-header-indexed-name: Private ordinary functions
read-padding-from-vector: Private ordinary functions
read-priority: Private ordinary functions
read-string-from-stream: Private ordinary functions
redirect-handler: Public ordinary functions
remove-state: Private ordinary functions
request-headers: Public ordinary functions
retrieve-url: Public ordinary functions
run: Public ordinary functions
run-mature-tasks: Private ordinary functions
run-scheduler-in-thread: Public ordinary functions
run-user-callback: Private ordinary functions

S
schedule-task: Public generic functions
schedule-task: Public generic functions
schedule-task: Public generic functions
scheduler-empty-p: Public ordinary functions
scheduling-handler: Private macros
select-next-action: Private ordinary functions
send-buffer-to-peer: Private ordinary functions
send-data: Private ordinary functions
send-goaway: Public ordinary functions
send-headers: Public ordinary functions
send-ping: Private generic functions
send-ping: Private generic functions
send-ping: Private generic functions
send-text-handler: Public ordinary functions
send-to-peer: Private ordinary functions
send-unencrypted-bytes: Private ordinary functions
serve-tls: Private ordinary functions
server-socket-stream: Public generic functions
server-socket-stream: Public generic functions
server-socket-stream: Public generic functions
set-fd-slot: Private ordinary functions
set-next-action: Private ordinary functions
set-peer-setting: Public generic functions
set-peer-setting: Public generic functions
set-peer-setting: Public generic functions
set-peer-setting: Public generic functions
set-peer-setting: Public generic functions
set-peer-setting: Public generic functions
set-peer-setting: Public generic functions
set-peer-setting: Public generic functions
set-peer-setting: Public generic functions
set-peer-setting: Public generic functions
setsockopt: Private ordinary functions
setup-new-connect-pollfd: Private ordinary functions
setup-port: Private ordinary functions
ssl-accept: Public ordinary functions
ssl-ctx-check-private-key: Private ordinary functions
ssl-ctx-ctrl: Private ordinary functions
ssl-ctx-free: Private ordinary functions
ssl-ctx-new: Private ordinary functions
ssl-ctx-set-alpn-select-cb: Private ordinary functions
ssl-ctx-set-options: Private ordinary functions
ssl-ctx-use-certificate-chain-file: Private ordinary functions
ssl-ctx-use-certificate-file: Private ordinary functions
ssl-ctx-use-private-key-file: Private ordinary functions
ssl-ctx-use-privatekey-file: Private ordinary functions
ssl-err-reason-error-string: Private ordinary functions
ssl-free: Public ordinary functions
ssl-get-error: Private ordinary functions
ssl-is-init-finished: Public ordinary functions
ssl-new: Public ordinary functions
ssl-pending: Private ordinary functions
ssl-read: Private ordinary functions
ssl-read%: Public ordinary functions
ssl-select-next-proto: Private ordinary functions
ssl-set-accept-state: Public ordinary functions
ssl-set-bio: Public ordinary functions
ssl-write: Private ordinary functions
start: Public ordinary functions
start-server-on-socket: Public generic functions
start-server-on-socket: Public generic functions
start-server-on-socket: Public generic functions
start-server-on-socket: Public generic functions
states-to-string: Private ordinary functions
stop: Public ordinary functions
stop-scheduler-in-thread: Public ordinary functions
stop-server: Private generic functions
stop-server: Private generic functions
store-string: Private ordinary functions
stream-element-type: Public standalone methods
stream-force-output: Public standalone methods
stream-listen: Public standalone methods
stream-listen: Public standalone methods
stream-read-byte: Public standalone methods
stream-read-byte: Public standalone methods
stream-write-byte: Public standalone methods
stream-write-byte: Public standalone methods
stream-write-byte: Public standalone methods
stream-write-sequence: Public standalone methods
strerror: Private ordinary functions
strerror-r%: Private ordinary functions

T
time-to-action: Private ordinary functions
tls-method: Private ordinary functions

U
update-dynamic-table-size: Public ordinary functions
url-from-port: Public ordinary functions
url-from-socket: Public ordinary functions
utf-first-char-size: Private ordinary functions
utf-is-first-char: Private ordinary functions

V
vector-from-hex-text: Public ordinary functions
vector-index-to-hpack-index: Private ordinary functions

W
wait-for-window-is-at-least-frame-size: Private ordinary functions
with-http2-connection: Private macros
with-output-payload-slots: Private macros
with-padding-marks: Private macros
with-ssl-context: Public macros
with-standard-handlers: Private macros
write-2: Private ordinary functions
write-31-bits: Private ordinary functions
write-ack-setting-frame: Public ordinary functions
write-altsvc-frame: Public ordinary functions
write-binary-payload: Public ordinary functions
write-body-and-padding: Private ordinary functions
write-continuation-frame: Public ordinary functions
write-data-frame: Public ordinary functions
write-data-frame-multi: Public ordinary functions
write-data-to-socket: Private ordinary functions
write-frame: Private ordinary functions
write-frame-header-to-vector: Public ordinary functions
write-goaway-frame: Public ordinary functions
write-headers-frame: Public ordinary functions
write-indexed-header-pair: Private ordinary functions
write-indexed-name: Private ordinary functions
write-integer-to-array: Private ordinary functions
write-literal-header-pair: Private ordinary functions
write-octets-to-decrypt: Private ordinary functions
write-ping-frame: Public ordinary functions
write-priority: Private ordinary functions
write-priority-frame: Public ordinary functions
write-push-promise-frame: Public ordinary functions
write-rst-stream-frame: Public ordinary functions
write-sequences: Private ordinary functions
write-settings-frame: Public ordinary functions
write-simple-headers-frame: Private ordinary functions
write-stream-id: Private ordinary functions
write-window-update-frame: Public ordinary functions


A.3 Variables

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

*
*buffer*: Public special variables
*charset-names*: Private special variables
*charset-names*: Private special variables
*clients*: Private special variables
*default-buffer-size*: Private special variables
*default-client-connection-class*: Public special variables
*default-encoding*: Private special variables
*default-encoding*: Private special variables
*default-handler*: Private special variables
*default-text-encoding*: Private special variables
*default-text-encoding*: Private special variables
*dummy-last-task*: Private special variables
*empty-fdset-items*: Private special variables
*encrypt-buf-size*: Private special variables
*error-codes*: Private special variables
*exact-handlers*: Private special variables
*fdset-size*: Private special variables
*flag-codes-keywords*: Private special variables
*frame-types*: Private special variables
*huffman-code*: Private special variables
*nagle*: Private special variables
*no-client-poll-timeout*: Public special variables
*poll-timeout*: Public special variables
*prefix-handlers*: Private special variables
*scheduler*: Private special variables
*servers*: Private special variables
*settings*: Private special variables
*use-huffman-coding-by-default*: Public special variables
*vanilla-host*: Private special variables
*vanilla-server-dispatcher*: Public special variables
*zip-buffer-size*: Private special variables

+
+altsvc-frame+: Private constants
+cancel+: Private constants
+client-preface-length+: Private constants
+client-preface-start+: Public special variables
+compression-error+: Private constants
+connect-error+: Private constants
+continuation-frame+: Private constants
+data-frame+: Private constants
+enhance-your-calm+: Private constants
+flow-control-error+: Private constants
+frame-size-error+: Private constants
+goaway-frame+: Private constants
+headers-frame+: Private constants
+http-1-1-required+: Private constants
+inadequate-security+: Private constants
+internal-error+: Private constants
+known-frame-types-count+: Private constants
+last-static-header-index+: Private constants
+last-static-header-pair+: Private constants
+literal-header-index+: Private constants
+literal-header-never-index+: Private constants
+literal-header-noindex+: Private constants
+no-error+: Private constants
+ping-frame+: Private constants
+priority-frame+: Private constants
+protocol-error+: Private constants
+push-promise-frame+: Private constants
+refused-stream+: Private constants
+rst-stream-frame+: Private constants
+settings-frame+: Private constants
+settings-timeout+: Private constants
+ssl-filetype-asn1+: Private constants
+ssl-filetype-default+: Private constants
+ssl-filetype-pem+: Private constants
+stream-closed+: Private constants
+window-update-frame+: Private constants

@
@accepting-data: Private special variables
@app-interface: Private special variables
@async-server: Private special variables
@base-classes: Private special variables
@buffer-stream-and-pipes: Private special variables
@buffer-stream-and-pipes-impl: Private special variables
@callbacks: Private special variables
@client: Private special variables
@customizing-client: Private special variables
@customizing-client-example-multi: Private special variables
@customizing-client-reference: Private special variables
@data: Private special variables
@data-received: Private special variables
@dispatchers: Private special variables
@errors: Private special variables
@frame-handler: Private special variables
@frame-headers: Private special variables
@frame-parsers: Private special variables
@frame-writers: Private special variables
@frames-api: Private special variables
@frames-for-classes: Private special variables
@frames-implementation: Private special variables
@hpack-api: Private special variables
@implementation: Private special variables
@index: Private special variables
@lisp-stream-emulation: Private special variables
@old-frame-functions: Private special variables
@overlay: Private special variables
@overview: Private special variables
@reference: Private special variables
@request-body: Private special variables
@request-details: Private special variables
@request-handling: Private special variables
@rst: Private special variables
@scheduling: Private special variables
@server: Private special variables
@server-actions: Private special variables
@server-classes: Private special variables
@server-content: Private special variables
@server-mixins: Private special variables
@server-reference: Private special variables
@server/threaded: Private special variables
@stream-based-connection: Private special variables
@stream-closed: Private special variables
@stream-states: Private special variables
@streams: Private special variables
@test: Private special variables
@tutorial: Private special variables
@tutorials: Private special variables
@utf8: Private special variables
@utils: Private special variables
@warnings: Private special variables
@write-data-handling: Private special variables

A
acked-settings: Public classes
action-name: Public classes
action-to-run: Public classes
actual: Private conditions
allowed: Private conditions
allowed: Private conditions
alpn: Private conditions
application-data: Private structures
authority: Public classes

B
bad-state-error: Private structures
base-http2-stream: Private classes
body: Public classes
broken-char: Public classes
buffer: Public classes
bytes-left-in-table: Public classes

C
certificate-file: Public classes
charset: Public classes
class: Private conditions
client: Private classes
code: Public conditions
code: Public conditions
code: Public conditions
compression: Public classes
compression-context: Private classes
connection: Public conditions
connection: Public classes
connection-args: Public classes
connection-class: Public classes
connection-ok: Private structures
Constant, +altsvc-frame+: Private constants
Constant, +cancel+: Private constants
Constant, +client-preface-length+: Private constants
Constant, +compression-error+: Private constants
Constant, +connect-error+: Private constants
Constant, +continuation-frame+: Private constants
Constant, +data-frame+: Private constants
Constant, +enhance-your-calm+: Private constants
Constant, +flow-control-error+: Private constants
Constant, +frame-size-error+: Private constants
Constant, +goaway-frame+: Private constants
Constant, +headers-frame+: Private constants
Constant, +http-1-1-required+: Private constants
Constant, +inadequate-security+: Private constants
Constant, +internal-error+: Private constants
Constant, +known-frame-types-count+: Private constants
Constant, +last-static-header-index+: Private constants
Constant, +last-static-header-pair+: Private constants
Constant, +literal-header-index+: Private constants
Constant, +literal-header-never-index+: Private constants
Constant, +literal-header-noindex+: Private constants
Constant, +no-error+: Private constants
Constant, +ping-frame+: Private constants
Constant, +priority-frame+: Private constants
Constant, +protocol-error+: Private constants
Constant, +push-promise-frame+: Private constants
Constant, +refused-stream+: Private constants
Constant, +rst-stream-frame+: Private constants
Constant, +settings-frame+: Private constants
Constant, +settings-timeout+: Private constants
Constant, +ssl-filetype-asn1+: Private constants
Constant, +ssl-filetype-default+: Private constants
Constant, +ssl-filetype-pem+: Private constants
Constant, +stream-closed+: Private constants
Constant, +window-update-frame+: Private constants
content: Public classes
content-type: Public classes

D
data: Private conditions
data: Private conditions
data: Private classes
data: Private classes
debug-data: Public conditions
decompression-context: Private classes
deleted-items: Public classes
depends-on: Private classes
dispatcher: Public conditions
documentation: Private structures
dstate: Public classes
dynamic-table: Public classes
dynamic-table-size: Public classes

E
encrypt-buf: Private structures
encrypt-buf-size: Private structures
end: Public classes
end-headers-fn: Public classes
error-code: Public conditions
exact-handlers: Private classes
exclusive: Public structures

F
fd: Private structures
fdset-idx: Private structures
fdset-size: Public classes
flag-keywords: Private structures
frame-size: Public conditions
frame-type: Private conditions
frame-type: Private conditions

G
gzip-content: Public classes

H
header: Private conditions
headers: Public classes
headers: Public classes
host: Public conditions

I
id-to-use: Public classes
index: Public classes
index: Private classes
initial-peer-window-size: Public classes
initial-window-size: Public classes
internal-time-to-run: Public classes
io-on-read: Private structures

L
last-id-seen: Public classes
last-stream-id: Public conditions
lock: Public classes

M
max-frame-size: Public conditions
max-frame-size: Public classes
max-peer-frame-size: Public classes
max-seen-so-far: Private conditions
method: Public classes
method: Public classes

N
nagle: Public classes
name: Public classes
name: Public classes
name: Private conditions
name: Private structures
network-stream: Public classes
new-stream-state: Private structures
no-body: Public classes
no-client-poll-timeout: Public classes

O
octets-needed: Private structures
old-stream-ok: Private structures
output-buffer: Private classes
output-buffer: Private classes

P
path: Public classes
payload-input-stream: Public classes
peer-accepts-push: Public classes
peer-window-size: Private classes
poll-timeout: Public classes
port: Public conditions
prefix-handlers: Private classes
private-key-file: Public classes

R
rbio: Private structures
receive-fn: Private structures
received: Private conditions
result: Public conditions

S
scheduled-tasks: Public classes
scheduler: Public classes
scheme: Public classes
seen-text-header: Private classes
sent: Private conditions
setting-code: Private conditions
Slot, acked-settings: Public classes
Slot, action-name: Public classes
Slot, action-to-run: Public classes
Slot, actual: Private conditions
Slot, allowed: Private conditions
Slot, allowed: Private conditions
Slot, alpn: Private conditions
Slot, application-data: Private structures
Slot, authority: Public classes
Slot, bad-state-error: Private structures
Slot, base-http2-stream: Private classes
Slot, body: Public classes
Slot, broken-char: Public classes
Slot, buffer: Public classes
Slot, bytes-left-in-table: Public classes
Slot, certificate-file: Public classes
Slot, charset: Public classes
Slot, class: Private conditions
Slot, client: Private classes
Slot, code: Public conditions
Slot, code: Public conditions
Slot, code: Public conditions
Slot, compression: Public classes
Slot, compression-context: Private classes
Slot, connection: Public conditions
Slot, connection: Public classes
Slot, connection-args: Public classes
Slot, connection-class: Public classes
Slot, connection-ok: Private structures
Slot, content: Public classes
Slot, content-type: Public classes
Slot, data: Private conditions
Slot, data: Private conditions
Slot, data: Private classes
Slot, data: Private classes
Slot, debug-data: Public conditions
Slot, decompression-context: Private classes
Slot, deleted-items: Public classes
Slot, depends-on: Private classes
Slot, dispatcher: Public conditions
Slot, documentation: Private structures
Slot, dstate: Public classes
Slot, dynamic-table: Public classes
Slot, dynamic-table-size: Public classes
Slot, encrypt-buf: Private structures
Slot, encrypt-buf-size: Private structures
Slot, end: Public classes
Slot, end-headers-fn: Public classes
Slot, error-code: Public conditions
Slot, exact-handlers: Private classes
Slot, exclusive: Public structures
Slot, fd: Private structures
Slot, fdset-idx: Private structures
Slot, fdset-size: Public classes
Slot, flag-keywords: Private structures
Slot, frame-size: Public conditions
Slot, frame-type: Private conditions
Slot, frame-type: Private conditions
Slot, gzip-content: Public classes
Slot, header: Private conditions
Slot, headers: Public classes
Slot, headers: Public classes
Slot, host: Public conditions
Slot, id-to-use: Public classes
Slot, index: Public classes
Slot, index: Private classes
Slot, initial-peer-window-size: Public classes
Slot, initial-window-size: Public classes
Slot, internal-time-to-run: Public classes
Slot, io-on-read: Private structures
Slot, last-id-seen: Public classes
Slot, last-stream-id: Public conditions
Slot, lock: Public classes
Slot, max-frame-size: Public conditions
Slot, max-frame-size: Public classes
Slot, max-peer-frame-size: Public classes
Slot, max-seen-so-far: Private conditions
Slot, method: Public classes
Slot, method: Public classes
Slot, nagle: Public classes
Slot, name: Public classes
Slot, name: Public classes
Slot, name: Private conditions
Slot, name: Private structures
Slot, network-stream: Public classes
Slot, new-stream-state: Private structures
Slot, no-body: Public classes
Slot, no-client-poll-timeout: Public classes
Slot, octets-needed: Private structures
Slot, old-stream-ok: Private structures
Slot, output-buffer: Private classes
Slot, output-buffer: Private classes
Slot, path: Public classes
Slot, payload-input-stream: Public classes
Slot, peer-accepts-push: Public classes
Slot, peer-window-size: Private classes
Slot, poll-timeout: Public classes
Slot, port: Public conditions
Slot, prefix-handlers: Private classes
Slot, private-key-file: Public classes
Slot, rbio: Private structures
Slot, receive-fn: Private structures
Slot, received: Private conditions
Slot, result: Public conditions
Slot, scheduled-tasks: Public classes
Slot, scheduler: Public classes
Slot, scheme: Public classes
Slot, seen-text-header: Private classes
Slot, sent: Private conditions
Slot, setting-code: Private conditions
Slot, ssl: Private structures
Slot, start: Private conditions
Slot, start-time: Private structures
Slot, state: Public classes
Slot, state: Private structures
Slot, status: Public classes
Slot, stream: Public conditions
Slot, stream: Private conditions
Slot, stream-class: Public classes
Slot, stream-class: Public classes
Slot, stream-dependency: Public structures
Slot, stream-id: Public classes
Slot, stream-id: Private conditions
Slot, stream-id: Private conditions
Slot, streams: Public classes
Slot, text: Public classes
Slot, thread: Public classes
Slot, thread: Public classes
Slot, tls: Public classes
Slot, tls-stream: Private conditions
Slot, to-write: Public classes
Slot, updates-needed: Public classes
Slot, uri: Public classes
Slot, url: Public classes
Slot, value: Private conditions
Slot, value: Private conditions
Slot, value: Private conditions
Slot, value: Private conditions
Slot, value: Private conditions
Slot, wbio: Private structures
Slot, weight: Public structures
Slot, weight: Private classes
Slot, window-open-fn: Private classes
Slot, window-size: Private classes
Slot, window-size-increment-callback: Public classes
Slot, write-buf: Private structures
Slot, write-buffer: Public classes
Special Variable, *buffer*: Public special variables
Special Variable, *charset-names*: Private special variables
Special Variable, *charset-names*: Private special variables
Special Variable, *clients*: Private special variables
Special Variable, *default-buffer-size*: Private special variables
Special Variable, *default-client-connection-class*: Public special variables
Special Variable, *default-encoding*: Private special variables
Special Variable, *default-encoding*: Private special variables
Special Variable, *default-handler*: Private special variables
Special Variable, *default-text-encoding*: Private special variables
Special Variable, *default-text-encoding*: Private special variables
Special Variable, *dummy-last-task*: Private special variables
Special Variable, *empty-fdset-items*: Private special variables
Special Variable, *encrypt-buf-size*: Private special variables
Special Variable, *error-codes*: Private special variables
Special Variable, *exact-handlers*: Private special variables
Special Variable, *fdset-size*: Private special variables
Special Variable, *flag-codes-keywords*: Private special variables
Special Variable, *frame-types*: Private special variables
Special Variable, *huffman-code*: Private special variables
Special Variable, *nagle*: Private special variables
Special Variable, *no-client-poll-timeout*: Public special variables
Special Variable, *poll-timeout*: Public special variables
Special Variable, *prefix-handlers*: Private special variables
Special Variable, *scheduler*: Private special variables
Special Variable, *servers*: Private special variables
Special Variable, *settings*: Private special variables
Special Variable, *use-huffman-coding-by-default*: Public special variables
Special Variable, *vanilla-host*: Private special variables
Special Variable, *vanilla-server-dispatcher*: Public special variables
Special Variable, *zip-buffer-size*: Private special variables
Special Variable, +client-preface-start+: Public special variables
Special Variable, @accepting-data: Private special variables
Special Variable, @app-interface: Private special variables
Special Variable, @async-server: Private special variables
Special Variable, @base-classes: Private special variables
Special Variable, @buffer-stream-and-pipes: Private special variables
Special Variable, @buffer-stream-and-pipes-impl: Private special variables
Special Variable, @callbacks: Private special variables
Special Variable, @client: Private special variables
Special Variable, @customizing-client: Private special variables
Special Variable, @customizing-client-example-multi: Private special variables
Special Variable, @customizing-client-reference: Private special variables
Special Variable, @data: Private special variables
Special Variable, @data-received: Private special variables
Special Variable, @dispatchers: Private special variables
Special Variable, @errors: Private special variables
Special Variable, @frame-handler: Private special variables
Special Variable, @frame-headers: Private special variables
Special Variable, @frame-parsers: Private special variables
Special Variable, @frame-writers: Private special variables
Special Variable, @frames-api: Private special variables
Special Variable, @frames-for-classes: Private special variables
Special Variable, @frames-implementation: Private special variables
Special Variable, @hpack-api: Private special variables
Special Variable, @implementation: Private special variables
Special Variable, @index: Private special variables
Special Variable, @lisp-stream-emulation: Private special variables
Special Variable, @old-frame-functions: Private special variables
Special Variable, @overlay: Private special variables
Special Variable, @overview: Private special variables
Special Variable, @reference: Private special variables
Special Variable, @request-body: Private special variables
Special Variable, @request-details: Private special variables
Special Variable, @request-handling: Private special variables
Special Variable, @rst: Private special variables
Special Variable, @scheduling: Private special variables
Special Variable, @server: Private special variables
Special Variable, @server-actions: Private special variables
Special Variable, @server-classes: Private special variables
Special Variable, @server-content: Private special variables
Special Variable, @server-mixins: Private special variables
Special Variable, @server-reference: Private special variables
Special Variable, @server/threaded: Private special variables
Special Variable, @stream-based-connection: Private special variables
Special Variable, @stream-closed: Private special variables
Special Variable, @stream-states: Private special variables
Special Variable, @streams: Private special variables
Special Variable, @test: Private special variables
Special Variable, @tutorial: Private special variables
Special Variable, @tutorials: Private special variables
Special Variable, @utf8: Private special variables
Special Variable, @utils: Private special variables
Special Variable, @warnings: Private special variables
Special Variable, @write-data-handling: Private special variables
Special Variable, static-headers-table: Private special variables
ssl: Private structures
start: Private conditions
start-time: Private structures
state: Public classes
state: Private structures
static-headers-table: Private special variables
status: Public classes
stream: Public conditions
stream: Private conditions
stream-class: Public classes
stream-class: Public classes
stream-dependency: Public structures
stream-id: Public classes
stream-id: Private conditions
stream-id: Private conditions
streams: Public classes

T
text: Public classes
thread: Public classes
thread: Public classes
tls: Public classes
tls-stream: Private conditions
to-write: Public classes

U
updates-needed: Public classes
uri: Public classes
url: Public classes

V
value: Private conditions
value: Private conditions
value: Private conditions
value: Private conditions
value: Private conditions

W
wbio: Private structures
weight: Public structures
weight: Private classes
window-open-fn: Private classes
window-size: Private classes
window-size-increment-callback: Public classes
write-buf: Private structures
write-buffer: Public classes


A.4 Data types

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

.
../package.lisp: The http2/openssl/․․/package․lisp file
../tls/server.lisp: The http2/server/threaded/․․/tls/server․lisp file

B
bad-stream-state: Private conditions
base-dispatcher: Public classes
binary-payload.lisp: The http2/core/core/binary-payload․lisp file
binary-stream: Public classes
body-collecting-mixin: Public classes

C
certificated-dispatcher: Public classes
Class, base-dispatcher: Public classes
Class, binary-stream: Public classes
Class, body-collecting-mixin: Public classes
Class, certificated-dispatcher: Public classes
Class, client-http2-connection: Public classes
Class, client-stream: Public classes
Class, constant-output-stream: Private classes
Class, detached-poll-dispatcher: Public classes
Class, detached-server-mixin: Public classes
Class, detached-single-client-dispatcher: Public classes
Class, detached-threaded-dispatcher: Private classes
Class, detached-tls-single-client-dispatcher: Public classes
Class, detached-tls-threaded-dispatcher: Public classes
Class, fallback-all-is-ascii: Public classes
Class, flow-control-mixin: Private classes
Class, frame-context: Public classes
Class, generic-request: Public classes
Class, gzip-decoding-mixin: Public classes
Class, header-collecting-mixin: Public classes
Class, hpack-context: Public classes
Class, hpack-endpoint: Private classes
Class, http2-connection: Public classes
Class, http2-stream: Private classes
Class, http2-stream-minimal: Public classes
Class, http2-stream-with-input-stream: Public classes
Class, multi-part-data-stream: Public classes
Class, payload-input-stream: Private classes
Class, payload-output-stream: Private classes
Class, payload-stream: Private classes
Class, pipe-end-for-read: Public classes
Class, pipe-end-for-write: Public classes
Class, poll-dispatcher: Public classes
Class, poll-dispatcher-mixin: Public classes
Class, poll-server-connection: Private classes
Class, request-with-binary-body: Public classes
Class, request-with-body: Public classes
Class, request-with-utf8-body: Public classes
Class, routing-mixin: Private classes
Class, scheduled-task: Public classes
Class, scheduler: Public classes
Class, scheduler-in-thread: Public classes
Class, server-http2-connection: Public classes
Class, server-stream: Public classes
Class, simple-request: Public classes
Class, single-client-dispatcher: Public classes
Class, stream-based-connection-mixin: Public classes
Class, stream-collection: Public classes
Class, text-collecting-stream: Public classes
Class, threaded-dispatcher: Public classes
Class, threaded-server-mixin: Public classes
Class, timeshift-pinging-connection: Private classes
Class, tls-dispatcher-mixin: Public classes
Class, tls-single-client-dispatcher: Public classes
Class, tls-threaded-dispatcher: Public classes
Class, utf8-parser-mixin: Public classes
Class, vanilla-client-connection: Public classes
Class, vanilla-client-stream: Public classes
Class, vanilla-server-connection: Private classes
Class, vanilla-server-stream: Private classes
Class, write-buffer-connection-mixin: Public classes
classes.lisp: The http2/core/core/classes․lisp file
client: Private structures
client-done: Public conditions
client-http2-connection: Public classes
client-preface-mismatch: Private conditions
client-stream: Public classes
client-utils.lisp: The http2/client/client-utils․lisp file
client.lisp: The http2/client/client․lisp file
Condition, bad-stream-state: Private conditions
Condition, client-done: Public conditions
Condition, client-preface-mismatch: Private conditions
Condition, connection-error: Public conditions
Condition, done: Private conditions
Condition, duplicate-request-header: Private conditions
Condition, frame-too-small-for-priority: Public conditions
Condition, frame-type-needs-connection: Private conditions
Condition, frame-type-needs-stream: Private conditions
Condition, go-away: Public conditions
Condition, h2-not-supported-by-server: Public conditions
Condition, header-error: Private conditions
Condition, http-stream-error: Public conditions
Condition, http2-error: Private conditions
Condition, http2-warning: Private conditions
Condition, http2-write-data-stall: Private conditions
Condition, implement-by-user: Private conditions
Condition, incomplete-header: Private conditions
Condition, incorrect-enable-push-value: Private conditions
Condition, incorrect-frame-size: Private conditions
Condition, incorrect-frame-size-value: Private conditions
Condition, incorrect-initial-window-size-value: Private conditions
Condition, incorrect-ping-frame-size: Private conditions
Condition, incorrect-pseudo-header: Private conditions
Condition, incorrect-request-pseudo-header: Private conditions
Condition, incorrect-response-pseudo-header: Private conditions
Condition, incorrect-rst-frame-size: Private conditions
Condition, incorrect-setting-value: Private conditions
Condition, incorrect-settings-frame-size: Private conditions
Condition, incorrect-window-update-frame-size: Private conditions
Condition, lowercase-header-field-name: Private conditions
Condition, missing-header-octets: Private conditions
Condition, missing-pseudo-header: Private conditions
Condition, new-stream-id-too-low: Private conditions
Condition, no-new-header-action: Private conditions
Condition, no-payload-action: Private conditions
Condition, not-http2-stream: Private conditions
Condition, null-connection-window-update: Private conditions
Condition, null-stream-window-update: Private conditions
Condition, our-id-created-by-peer: Private conditions
Condition, poll-timeout: Public conditions
Condition, protocol-error: Private conditions
Condition, pseudo-header-after-text-header: Private conditions
Condition, reserved-bit-set: Private conditions
Condition, ssl-error-condition: Public conditions
Condition, stream-protocol-error: Private conditions
Condition, too-big-frame: Public conditions
Condition, too-big-padding: Private conditions
Condition, unexpected-continuation-frame: Private conditions
Condition, unimplemented-feature: Private conditions
Condition, unsupported-feature: Private conditions
Condition, unsupported-server-setup: Public conditions
Condition, window-is-closed: Private conditions
connection-error: Public conditions
constant-output-stream: Private classes
context-table-element: Private types
core: The http2/stream-based/core module
core: The http2/core/core module

D
detached-poll-dispatcher: Public classes
detached-server-mixin: Public classes
detached-single-client-dispatcher: Public classes
detached-threaded-dispatcher: Private classes
detached-tls-single-client-dispatcher: Public classes
detached-tls-threaded-dispatcher: Public classes
dispatch.lisp: The http2/server/shared/dispatch․lisp file
done: Private conditions
duplicate-request-header: Private conditions

E
errors.lisp: The http2/core/core/errors․lisp file

F
fallback-all-is-ascii: Public classes
File, ../package.lisp: The http2/openssl/․․/package․lisp file
File, ../tls/server.lisp: The http2/server/threaded/․․/tls/server․lisp file
File, binary-payload.lisp: The http2/core/core/binary-payload․lisp file
File, classes.lisp: The http2/core/core/classes․lisp file
File, client-utils.lisp: The http2/client/client-utils․lisp file
File, client.lisp: The http2/client/client․lisp file
File, dispatch.lisp: The http2/server/shared/dispatch․lisp file
File, errors.lisp: The http2/core/core/errors․lisp file
File, frames.lisp: The http2/core/core/frames․lisp file
File, frames/altsvc.lisp: The http2/core/core/frames/altsvc․lisp file
File, frames/data.lisp: The http2/core/core/frames/data․lisp file
File, frames/headers.lisp: The http2/core/core/frames/headers․lisp file
File, frames/http2-stream.lisp: The http2/core/core/frames/http2-stream․lisp file
File, frames/ping.lisp: The http2/core/core/frames/ping․lisp file
File, frames/push-promise.lisp: The http2/core/core/frames/push-promise․lisp file
File, frames/rst-and-goaway.lisp: The http2/core/core/frames/rst-and-goaway․lisp file
File, frames/settings.lisp: The http2/core/core/frames/settings․lisp file
File, gzip-decode.lisp: The http2/core/core/gzip-decode․lisp file
File, hpack.lisp: The http2/core/core/hpack․lisp file
File, http2.asd: The http2/http2․asd file
File, openssl-grovel.lisp: The http2/openssl/openssl-grovel․lisp file
File, openssl.lisp: The http2/openssl/openssl․lisp file
File, overview.lisp: The http2/overview․lisp file
File, package.lisp: The http2/stream-based/package․lisp file
File, package.lisp: The http2/core/package․lisp file
File, payload-streams.lisp: The http2/stream-based/core/payload-streams․lisp file
File, pipe.lisp: The http2/core/core/pipe․lisp file
File, poll-grovel.lisp: The http2/server/poll-grovel․lisp file
File, poll-grovel.lisp: The http2/server/poll/poll-grovel․lisp file
File, poll-openssl.lisp: The http2/server/poll-openssl․lisp file
File, poll-openssl.lisp: The http2/server/poll/poll-openssl․lisp file
File, poll-server.lisp: The http2/server/poll-server․lisp file
File, poll-server.lisp: The http2/server/poll/poll-server․lisp file
File, scheduler.lisp: The http2/server/shared/scheduler․lisp file
File, socket-dispatcher.lisp: The http2/server/shared/socket-dispatcher․lisp file
File, stream-based-connections.lisp: The http2/stream-based/core/stream-based-connections․lisp file
File, threaded.lisp: The http2/server/threaded/threaded․lisp file
File, utf8.lisp: The http2/core/core/utf8․lisp file
File, utils.lisp: The http2/core/core/utils․lisp file
flow-control-mixin: Private classes
frame-code-type: Private types
frame-context: Public classes
frame-size: Public types
frame-too-small-for-priority: Public conditions
frame-type: Private structures
frame-type-needs-connection: Private conditions
frame-type-needs-stream: Private conditions
frames.lisp: The http2/core/core/frames․lisp file
frames/altsvc.lisp: The http2/core/core/frames/altsvc․lisp file
frames/data.lisp: The http2/core/core/frames/data․lisp file
frames/headers.lisp: The http2/core/core/frames/headers․lisp file
frames/http2-stream.lisp: The http2/core/core/frames/http2-stream․lisp file
frames/ping.lisp: The http2/core/core/frames/ping․lisp file
frames/push-promise.lisp: The http2/core/core/frames/push-promise․lisp file
frames/rst-and-goaway.lisp: The http2/core/core/frames/rst-and-goaway․lisp file
frames/settings.lisp: The http2/core/core/frames/settings․lisp file

G
generic-request: Public classes
go-away: Public conditions
gzip-decode.lisp: The http2/core/core/gzip-decode․lisp file
gzip-decoding-mixin: Public classes

H
h2-not-supported-by-server: Public conditions
handler: Public types
header-collecting-mixin: Public classes
header-error: Private conditions
hpack-context: Public classes
hpack-endpoint: Private classes
hpack.lisp: The http2/core/core/hpack․lisp file
http-stream-error: Public conditions
http2: The http2 system
http2: The http2 package
http2-connection: Public classes
http2-error: Private conditions
http2-stream: Private classes
http2-stream-minimal: Public classes
http2-stream-state: Public types
http2-stream-with-input-stream: Public classes
http2-warning: Private conditions
http2-write-data-stall: Private conditions
http2.asd: The http2/http2․asd file
http2/cl+ssl: The http2/cl+ssl package
http2/client: The http2/client system
http2/client: The http2/client package
http2/core: The http2/core system
http2/core: The http2/core package
http2/hpack: The http2/hpack package
http2/openssl: The http2/openssl system
http2/openssl: The http2/openssl package
http2/server: The http2/server system
http2/server: The http2/server package
http2/server/poll: The http2/server/poll system
http2/server/shared: The http2/server/shared system
http2/server/threaded: The http2/server/threaded system
http2/stream-based: The http2/stream-based system
http2/stream-overlay: The http2/stream-overlay package
http2/utils: The http2/utils package

I
implement-by-user: Private conditions
incomplete-header: Private conditions
incorrect-enable-push-value: Private conditions
incorrect-frame-size: Private conditions
incorrect-frame-size-value: Private conditions
incorrect-initial-window-size-value: Private conditions
incorrect-ping-frame-size: Private conditions
incorrect-pseudo-header: Private conditions
incorrect-request-pseudo-header: Private conditions
incorrect-response-pseudo-header: Private conditions
incorrect-rst-frame-size: Private conditions
incorrect-setting-value: Private conditions
incorrect-settings-frame-size: Private conditions
incorrect-window-update-frame-size: Private conditions

L
lowercase-header-field-name: Private conditions

M
missing-header-octets: Private conditions
missing-pseudo-header: Private conditions
Module, core: The http2/stream-based/core module
Module, core: The http2/core/core module
multi-part-data-stream: Public classes

N
new-stream-id-too-low: Private conditions
no-new-header-action: Private conditions
no-payload-action: Private conditions
not-http2-stream: Private conditions
null-connection-window-update: Private conditions
null-stream-window-update: Private conditions

O
octet-vector: Public types
openssl-grovel.lisp: The http2/openssl/openssl-grovel․lisp file
openssl.lisp: The http2/openssl/openssl․lisp file
our-id-created-by-peer: Private conditions
overview.lisp: The http2/overview․lisp file

P
Package, http2: The http2 package
Package, http2/cl+ssl: The http2/cl+ssl package
Package, http2/client: The http2/client package
Package, http2/core: The http2/core package
Package, http2/hpack: The http2/hpack package
Package, http2/openssl: The http2/openssl package
Package, http2/server: The http2/server package
Package, http2/stream-overlay: The http2/stream-overlay package
Package, http2/utils: The http2/utils package
package.lisp: The http2/stream-based/package․lisp file
package.lisp: The http2/core/package․lisp file
payload-input-stream: Private classes
payload-output-stream: Private classes
payload-stream: Private classes
payload-streams.lisp: The http2/stream-based/core/payload-streams․lisp file
pipe-end-for-read: Public classes
pipe-end-for-write: Public classes
pipe.lisp: The http2/core/core/pipe․lisp file
poll-dispatcher: Public classes
poll-dispatcher-mixin: Public classes
poll-grovel.lisp: The http2/server/poll-grovel․lisp file
poll-grovel.lisp: The http2/server/poll/poll-grovel․lisp file
poll-openssl.lisp: The http2/server/poll-openssl․lisp file
poll-openssl.lisp: The http2/server/poll/poll-openssl․lisp file
poll-server-connection: Private classes
poll-server.lisp: The http2/server/poll-server․lisp file
poll-server.lisp: The http2/server/poll/poll-server․lisp file
poll-timeout: Public conditions
priority: Public structures
protocol-error: Private conditions
pseudo-header-after-text-header: Private conditions

R
receiver-fn: Private types
request-with-binary-body: Public classes
request-with-body: Public classes
request-with-utf8-body: Public classes
reserved-bit-set: Private conditions
routing-mixin: Private classes

S
scheduled-task: Public classes
scheduler: Public classes
scheduler-in-thread: Public classes
scheduler.lisp: The http2/server/shared/scheduler․lisp file
server-http2-connection: Public classes
server-stream: Public classes
simple-request: Public classes
single-client-dispatcher: Public classes
socket-dispatcher.lisp: The http2/server/shared/socket-dispatcher․lisp file
ssl-error-condition: Public conditions
stream-based-connection-mixin: Public classes
stream-based-connections.lisp: The http2/stream-based/core/stream-based-connections․lisp file
stream-collection: Public classes
stream-id: Public types
stream-protocol-error: Private conditions
Structure, client: Private structures
Structure, frame-type: Private structures
Structure, priority: Public structures
System, http2: The http2 system
System, http2/client: The http2/client system
System, http2/core: The http2/core system
System, http2/openssl: The http2/openssl system
System, http2/server: The http2/server system
System, http2/server/poll: The http2/server/poll system
System, http2/server/shared: The http2/server/shared system
System, http2/server/threaded: The http2/server/threaded system
System, http2/stream-based: The http2/stream-based system

T
text-collecting-stream: Public classes
threaded-dispatcher: Public classes
threaded-server-mixin: Public classes
threaded.lisp: The http2/server/threaded/threaded․lisp file
timeshift-pinging-connection: Private classes
tls-dispatcher-mixin: Public classes
tls-single-client-dispatcher: Public classes
tls-threaded-dispatcher: Public classes
too-big-frame: Public conditions
too-big-padding: Private conditions
Type, context-table-element: Private types
Type, frame-code-type: Private types
Type, frame-size: Public types
Type, handler: Public types
Type, http2-stream-state: Public types
Type, octet-vector: Public types
Type, receiver-fn: Private types
Type, stream-id: Public types
Type, writer-fn: Private types

U
unexpected-continuation-frame: Private conditions
unimplemented-feature: Private conditions
unsupported-feature: Private conditions
unsupported-server-setup: Public conditions
utf8-parser-mixin: Public classes
utf8.lisp: The http2/core/core/utf8․lisp file
utils.lisp: The http2/core/core/utils․lisp file

V
vanilla-client-connection: Public classes
vanilla-client-stream: Public classes
vanilla-server-connection: Private classes
vanilla-server-stream: Private classes

W
window-is-closed: Private conditions
write-buffer-connection-mixin: Public classes
writer-fn: Private types