The cl-cheshire-cat Reference Manual

This is the cl-cheshire-cat Reference Manual, version 0.1, generated automatically by Declt version 4.0 beta 2 "William Riker" on Mon Feb 26 15:04:10 2024 GMT+0.

Table of Contents


1 Introduction


2 Systems

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


2.1 cl-cheshire-cat

Cheshire Cat HTTP Redirection Server

Author

Mathieu Lemoine <>

License

3-clause BSD

Version

0.1

Dependencies
  • cl-ppcre (system).
  • hunchentoot (system).
  • cl-store (system).
  • alexandria (system).
  • usocket (system).
  • split-sequence (system).
  • cl-fad (system).
Source

cl-cheshire-cat.asd.

Child Component

sources (module).


3 Modules

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


3.1 cl-cheshire-cat/sources

Source

cl-cheshire-cat.asd.

Parent Component

cl-cheshire-cat (system).

Child Components

3.2 cl-cheshire-cat/sources/classes

Dependency

utils.lisp (file).

Source

cl-cheshire-cat.asd.

Parent Component

sources (module).

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 cl-cheshire-cat/cl-cheshire-cat.asd

Source

cl-cheshire-cat.asd.

Parent Component

cl-cheshire-cat (system).

ASDF Systems

cl-cheshire-cat.


4.1.2 cl-cheshire-cat/sources/package.lisp

Source

cl-cheshire-cat.asd.

Parent Component

sources (module).

Packages

cl-cheshire-cat.


4.1.3 cl-cheshire-cat/sources/utils.lisp

Dependency

package.lisp (file).

Source

cl-cheshire-cat.asd.

Parent Component

sources (module).

Internals

4.1.4 cl-cheshire-cat/sources/classes/singleton-class.lisp

Source

cl-cheshire-cat.asd.

Parent Component

classes (module).

Packages

org.tfeb.hax.singleton-classes.

Public Interface
Internals

*singleton-classes* (special variable).


4.1.5 cl-cheshire-cat/sources/classes/conditions.lisp

Dependency

singleton-class.lisp (file).

Source

cl-cheshire-cat.asd.

Parent Component

classes (module).

Internals

4.1.6 cl-cheshire-cat/sources/classes/two-steps-start-acceptor.lisp

Dependency

conditions.lisp (file).

Source

cl-cheshire-cat.asd.

Parent Component

classes (module).

Public Interface
Internals

two-steps-start-acceptor (class).


4.1.7 cl-cheshire-cat/sources/classes/query-string.lisp

Dependency

two-steps-start-acceptor.lisp (file).

Source

cl-cheshire-cat.asd.

Parent Component

classes (module).

Public Interface
Internals

4.1.8 cl-cheshire-cat/sources/classes/rules.lisp

Dependency

query-string.lisp (file).

Source

cl-cheshire-cat.asd.

Parent Component

classes (module).

Public Interface
Internals

4.1.9 cl-cheshire-cat/sources/behavior.lisp

Dependency

classes (module).

Source

cl-cheshire-cat.asd.

Parent Component

sources (module).

Internals

4.1.10 cl-cheshire-cat/sources/admin-handler.lisp

Dependency

behavior.lisp (file).

Source

cl-cheshire-cat.asd.

Parent Component

sources (module).

Internals

4.1.11 cl-cheshire-cat/sources/server.lisp

Dependency

admin-handler.lisp (file).

Source

cl-cheshire-cat.asd.

Parent Component

sources (module).

Public Interface
Internals

5 Packages

Packages are listed by definition order.


5.1 cl-cheshire-cat

Cheshire Cat (HTTP Redirection Server) main package

Source

package.lisp.

Nicknames
  • cheshire
  • cheshire-cat
  • cl-cc
Use List
  • common-lisp.
  • split-sequence.
Public Interface
Internals

5.2 org.tfeb.hax.singleton-classes

Source

singleton-class.lisp.

Use List
  • common-lisp.
  • sb-mop.
Public Interface
Internals

*singleton-classes* (special variable).


6 Definitions

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


6.1 Public Interface


6.1.1 Ordinary functions

Function: preload-rules (redirection-acceptor file)

This function restore the list of rules from file and set them as the list of rules for this acceptor. It’s also registering the rule-file for future references.

Package

cl-cheshire-cat.

Source

server.lisp.

Function: reset-singleton-classes ()
Package

org.tfeb.hax.singleton-classes.

Source

singleton-class.lisp.


6.1.2 Generic functions

Generic Reader: drr-uri-rules (object)
Generic Writer: (setf drr-uri-rules) (object)
Package

cl-cheshire-cat.

Methods
Reader Method: drr-uri-rules ((domain-redirection-rule domain-redirection-rule))
Writer Method: (setf drr-uri-rules) ((domain-redirection-rule domain-redirection-rule))

List of URI redirection rules for the domain names matching this redirection rule.

Source

rules.lisp.

Target Slot

uri-rules.


6.1.3 Standalone methods

Method: acceptor-dispatch-request ((acceptor redirection-acceptor) request)

This request dispatcher processes each HTTP request and handle adequatly the request.

Package

hunchentoot.

Source

server.lisp.

Method: acceptor-log-access ((acceptor redirection-acceptor) &key return-code)

Adapted syntax for access log, just like the default, but include the host to.

Package

hunchentoot.

Source

server.lisp.

Method: initialize-instance :after ((instance redirection-acceptor) &rest initargs &key &allow-other-keys)

Ensures there is no error template directory.

Source

server.lisp.

Method: initialize-instance :after ((instance redirection-rule) &rest initargs &key &allow-other-keys)

Ensures the initialization of the <pre>matcher</pre> slot and the type of the http-code slot.

Source

rules.lisp.

Method: initialize-instance :after ((instance qs-update) &rest initargs &key &allow-other-keys)

Creates the regex matcher.

Source

query-string.lisp.

Method: initialize-instance :after ((c singleton-class) &key)
Source

singleton-class.lisp.

Method: internal-store-object ((g0 cl-store) (rule query-string-update) stream)

Definition for storing an object of type QUERY-STRING-UPDATE with backend CL-STORE

Package

cl-store.

Source

query-string.lisp.

Method: internal-store-object ((g0 cl-store) (rule domain-redirection-rule) stream)

Definition for storing an object of type DOMAIN-REDIRECTION-RULE with backend CL-STORE

Package

cl-store.

Source

rules.lisp.

Method: internal-store-object ((g0 cl-store) (rule uri-redirection-rule) stream)

Definition for storing an object of type URI-REDIRECTION-RULE with backend CL-STORE

Package

cl-store.

Source

rules.lisp.

Method: make-instance ((class singleton-class) &key)
Source

singleton-class.lisp.

Method: print-object ((object query-string-update) stream)

Print a meaningful summarized representation of redirection rules. Redirection rules are not readably printable.

Source

query-string.lisp.

Method: print-object ((object redirection-rule) stream)

Print a meaningful summarized representation of redirection rules. Redirection rules are not readably printable.

Source

rules.lisp.

Method: start ((acceptor two-steps-start-acceptor))

If the first step was not run yet, run it. Then start the acceptor taskmaster. Inspired from hunchentoot default implementation.

Package

hunchentoot.

Source

two-steps-start-acceptor.lisp.

Method: start-listening :before ((acceptor two-steps-start-acceptor))

Remove the shutdown state from the acceptor before starting to listen

Package

hunchentoot.

Source

two-steps-start-acceptor.lisp.

Method: validate-superclass ((class standard-class) (superclass singleton-class))
Package

sb-mop.

Source

singleton-class.lisp.

Method: validate-superclass ((class singleton-class) (superclass singleton-class))
Package

sb-mop.

Source

singleton-class.lisp.

Method: validate-superclass ((class singleton-class) (superclass standard-class))
Package

sb-mop.

Source

singleton-class.lisp.


6.1.4 Classes

Class: redirection-acceptor

Custom hunchentoot:acceptor implementing the behavior of the redirection server.

Package

cl-cheshire-cat.

Source

server.lisp.

Direct superclasses

two-steps-start-acceptor.

Direct methods
Direct slots
Slot: admin-host

The domain name used to manage this redirection acceptor.

Type

string

Initform

"management.invalid"

Initargs

:admin-host

Readers

redirection-acceptor-admin-host.

Writers

(setf redirection-acceptor-admin-host).

Slot: admin-allowed

A list of CIDR block specifications. Each item
of this list is a pair (IP prefix-length). IP is recommended to a string using the decimal dotted notation but could also be an host order 32 bytes integer or an host order byte vector.

Type

list

Initform

(quote (("127.0.0.1")))

Initargs

:admin-allowed

Readers

redirection-acceptor-admin-allowed.

Writers

(setf redirection-acceptor-admin-allowed).

Slot: rules

The list of redirection rules used by this acceptor.

Type

list

Initform

(quote nil)

Readers

redirection-acceptor-rules.

Writers

(setf redirection-acceptor-rules).

Slot: rules-directory

The directory in which rules will be
stored. Only the default rule file can be out of this directory.

Type

pathname

Initargs

:rule-directory

Readers

redirection-acceptor-rules-directory.

Writers

(setf redirection-acceptor-rules-directory).

Slot: rules-file

The default file used to store the
rules. This is set when loading the rules from the file.

Type

string

Readers

redirection-acceptor-rules-file.

Writers

This slot is read-only.

Class: singleton-class
Package

org.tfeb.hax.singleton-classes.

Source

singleton-class.lisp.

Direct superclasses

standard-class.

Direct methods
Direct slots
Slot: instance

6.2 Internals


6.2.1 Special variables

Special Variable: *qsu-generic-readers*

List of query string update generic readers

Package

cl-cheshire-cat.

Source

query-string.lisp.

Special Variable: *singleton-classes*
Package

org.tfeb.hax.singleton-classes.

Source

singleton-class.lisp.

Special Variable: +default-domain-name-rule+

Domain name rule with default behaviour. This should be treated as a constant, If the object, value or binding is modified behaviour is undefined.

Package

cl-cheshire-cat.

Source

behavior.lisp.

Special Variable: +domain-redirection-rule-code+

cl-store type-code for domain name redirection rules.

Package

cl-cheshire-cat.

Source

rules.lisp.

Special Variable: +qsu-code+

cl-store type-code for query string updates.

Package

cl-cheshire-cat.

Source

query-string.lisp.

Special Variable: +uri-redirection-rule-code+

cl-store type-code for URI redirection rules.

Package

cl-cheshire-cat.

Source

rules.lisp.


6.2.2 Macros

Macro: add-domain-name-rule (rules rule &key position)

This macro adds <pre>rule</pre> (applying to domaine names) in <pre>rules</pre>. <pre>position</pre> is the position at which the rule will be inserted in <pre>rules</pre>. If <pre>position</pre> is nil or unspecified, <pre>rule</pre> will be inserted at the begining of <pre>rules</pre>.

Package

cl-cheshire-cat.

Source

behavior.lisp.

Macro: define-generic-qsu-reader (name &optional default-value)

Create a generic function and an associated method for query-string-update. This allow every reader to be used with any instance of query-string-update.

Package

cl-cheshire-cat.

Source

query-string.lisp.

Macro: remove-domain-name-rule (rules kind match)

This macro removes the rule from <pre>rule</pre> with matching <pre>kind</pre> and <pre>match</pre>. <pre>rule</pre> must match exactly. If no such rule is found, returns silently.

Package

cl-cheshire-cat.

Source

behavior.lisp.


6.2.3 Ordinary functions

Function: add-qs-update (rule update &key position)

This function add a new query string update operation to a redirection rule. <pre>position</pre> is the position at which the rule will be inserted in <pre>rules</pre>. If <pre>position</pre> is nil or unspecified, <pre>rule</pre> will be inserted at the begining of <pre>rules</pre>.

Package

cl-cheshire-cat.

Source

behavior.lisp.

Function: add-uri-rule (domain-redirection-rule uri-rule &key position)

This function adds <pre>rule</pre> (applying to URIs) to <pre>domain-redirection-rule</pre>. <pre>position</pre> is the position at which the rule will be inserted in <pre>rules</pre>. If <pre>position</pre> is nil or unspecified, <pre>rule</pre> will be inserted at the begining of <pre>rules</pre>.

Package

cl-cheshire-cat.

Source

behavior.lisp.

Function: admin-domain-name-rules-handler% (path redirection-acceptor)

Handler for domain name rules management

Package

cl-cheshire-cat.

Source

admin-handler.lisp.

Function: admin-handler (redirection-acceptor)

Management handler.

Package

cl-cheshire-cat.

Source

admin-handler.lisp.

Function: admin-query-string-handler% (path rule)

Handler for query-string operation

Package

cl-cheshire-cat.

Source

admin-handler.lisp.

Function: admin-uri-rules-handler% (path domain-name-rule)

Handler for URI rules management.

Package

cl-cheshire-cat.

Source

admin-handler.lisp.

Function: apply-default-domain-name-rule (domain-name)

This function applies the default domain name redirection: if the domain-name does not start with a "www.",returns a permanent redirect to the same URL prepended with "www.", raise a rs-loop-detected condition otherwise.

Package

cl-cheshire-cat.

Source

behavior.lisp.

Function: apply-rules (target-string rules)

This function looks through the list of rules to find a matching rule for <pre>target-string</pre>. The three returns values are:

* Whether a rule was find or not,
* The rewritten target string,
* The matching rule.

If no such rule is found, all three values are nil.

Package

cl-cheshire-cat.

Source

behavior.lisp.

Function: class<-qsu-operation (operation)

Returns the class corresponding to this query-string operation.

Package

cl-cheshire-cat.

Source

query-string.lisp.

Function: compute-redirection (rules domain-name uri)

This function computes the actual value of the redirection for this domain-name and URI, following this set of rules. It return the list (new-domain-name new-uri . redirection-parameters)

Package

cl-cheshire-cat.

Source

behavior.lisp.

Function: compute-uri (path query-string)

Append each parameter in the query string to the path. path is expected not to have any query-string.

Package

cl-cheshire-cat.

Source

utils.lisp.

Function: create-regex-matcher (regex replacement)

This function creates the matcher for a rule based on a regex.

Package

cl-cheshire-cat.

Source

rules.lisp.

Function: drr-is-loop-p (drr &key error-p)

Check if the domain name rule effect is empty, thus resulting in a loop.

Package

cl-cheshire-cat.

Source

rules.lisp.

Function: find-domain-name-rule (rules kind match &key error-p)

This function returns the domain name rule with matching <pre>kind</pre> and <pre>match</pre> in <pre>rules</pre> or nil if none was found. if <pre>error-p</pre> is true, an error of type <pre>rs-no-such-domain-rule</pre> is raised instead.

Package

cl-cheshire-cat.

Source

behavior.lisp.

Function: find-qs-update (rule operation name match &key error-p)

This function returns the query string update designated by operation name and match.

Package

cl-cheshire-cat.

Source

behavior.lisp.

Function: find-uri-rule (domain-redirection-rule kind match &key error-p)

This function returns the URI rule with matching <pre>kind</pre> and <pre>match</pre> in <pre>domain-redirection-rule</pre> or nil if none was found. if <pre>error-p</pre> is true, an error of type <pre>rs-no-such-uri-rule</pre> is raised instead.

Package

cl-cheshire-cat.

Source

behavior.lisp.

Function: ip-cidr-match-p (ip1 ip2 &optional prefix-length)

Check if both IPs are in the same network with respect to this CIDR prefix-length.

Each IPs can be either:
* 32-bit positive integer (host order),
* a four element integer list representing IPv4 address, i.e. #(127 0 0 1),
* a string containing an IP addres in dotted notation.

For example, to check A.B.C.D against a.b.c.d/n, this function could be invoked as (ip-cidr-match-p #(A B C D) #(a b c d) n).

Package

cl-cheshire-cat.

Source

utils.lisp.

Function: load-rules (redirection-acceptor file)

Save all the rules in mentioned file.

Package

cl-cheshire-cat.

Source

server.lisp.

Function: make-query-string-update (operation &rest initargs)

Generic generation of a query string update. <pre>operation</pre> must be one of :clear, :add, :rename or :update and initargs is the list of initargs for the qs-{operation} class.

Package

cl-cheshire-cat.

Source

query-string.lisp.

Function: merge-redirection-parameter (&rest lists)

This function merges a set parameters (return the last non-null one).

Package

cl-cheshire-cat.

Source

behavior.lisp.

Function: merge-redirection-parameters-list (rules parameter-readers)

This function merges a list of parameters from a list of rules.
For each element of parameter-readers, a parameter is extracted from each rule and the last one non-null is returned.

Package

cl-cheshire-cat.

Source

behavior.lisp.

Function: parse-cidr-list (list)

Parse a comma-separated list of IPv4 CIDR specifications (such as "a.b.c.d/n, e.f.g.h/m"). The CIDR prefix may be omited. Return a list of CIDR specification, each being of the form (IP prefix-length).

Package

cl-cheshire-cat.

Source

utils.lisp.

Function: parse-integer-or-nil (string &rest keys)

Just like parse-integer, but if string is nil, returns (values nil nil) instead of throwing an error.

Package

cl-cheshire-cat.

Source

utils.lisp.

Function: qsu-operation<-class (class)

Returns the query-string operation corresponding to this class.

Package

cl-cheshire-cat.

Source

query-string.lisp.

Function: redirection-rule= (rule1 rule2 &rest rules)

This function checks whether two redirection rules are equals.

Package

cl-cheshire-cat.

Source

rules.lisp.

Function: remove-qs-update (rule operation name match)

This function removes the query string update designated by operation name and match.

Package

cl-cheshire-cat.

Source

behavior.lisp.

Function: remove-uri-rule (domain-redirection-rule kind match)

This macro removes the rule from <pre>rule</pre> with matching <pre>kind</pre> and <pre>match</pre>. <pre>rule</pre> must match exactly. If no such rule is found, returns silently.

Package

cl-cheshire-cat.

Source

behavior.lisp.

Function: rr-key (rule)

This function returns the pair (kind match) for this rule.

Package

cl-cheshire-cat.

Source

rules.lisp.

Function: rr-matching-p (rule target-string)

This function checks whether a redirection rule is matching for this haystack.

Package

cl-cheshire-cat.

Source

rules.lisp.

Function: save-rules (redirection-acceptor file)

Save all the rules in mentioned file.

Package

cl-cheshire-cat.

Source

server.lisp.

Function: send-bad-request (message &optional http-code)

Error handling, abort the URL processing to signal an error to the client.

Package

cl-cheshire-cat.

Source

utils.lisp.

Function: unsummarize-query-string-update% (summary)

Return the list of arguments to give to make-instance to recreate a similar query-string-update.

Package

cl-cheshire-cat.

Source

query-string.lisp.

Function: update-rule% (rule update-specs)

Updates a rule, each update spec should be ("new-{ATTRIBUTE}" . "{NEW-VALUE}").

Package

cl-cheshire-cat.

Source

admin-handler.lisp.


6.2.4 Generic functions

Generic Function: qsu-key (update)

Return the information required to identify this
update. Usually a list of the form (operation &optional name match)

Package

cl-cheshire-cat.

Source

query-string.lisp.

Methods
Method: qsu-key ((update qs-update))

This methods returns (:update name match).

Method: qsu-key ((update qs-clear))

This method always returns ’(:clear).

Method: qsu-key (update)

Default method returns (operation name).

Generic Function: qsu-match (update)

Generic query string update reader for MATCH.

Package

cl-cheshire-cat.

Source

query-string.lisp.

Methods
Reader Method: qsu-match ((qs-update qs-update))

Regex to match the old value of the parameter

Target Slot

match.

Method: qsu-match ((update query-string-update))

Default value for MATCH reader.

Reader Method: qsu-match ((condition rs-no-such-qs-update))
Source

conditions.lisp.

Target Slot

match.

Generic Reader: qsu-matcher (object)
Package

cl-cheshire-cat.

Methods
Reader Method: qsu-matcher ((qs-update qs-update))

Compiled regex matcher

Source

query-string.lisp.

Target Slot

matcher.

Generic Function: qsu-name (update)

Generic query string update reader for NAME.

Package

cl-cheshire-cat.

Source

query-string.lisp.

Methods
Reader Method: qsu-name ((qs-delete qs-delete))

Name of the parameter to delete.

Target Slot

name.

Reader Method: qsu-name ((qs-update qs-update))

Name of the parameter to update.

Target Slot

name.

Reader Method: qsu-name ((qs-rename qs-rename))

Name of the parameter to rename (old name).

Target Slot

name.

Reader Method: qsu-name ((qs-add qs-add))

Name of the parameter to create.

Target Slot

name.

Method: qsu-name ((update query-string-update))

Default value for NAME reader.

Reader Method: qsu-name ((condition rs-no-such-qs-update))
Source

conditions.lisp.

Target Slot

name.

Generic Function: qsu-new-name (update)

Generic query string update reader for NEW-NAME.

Package

cl-cheshire-cat.

Source

query-string.lisp.

Methods
Reader Method: qsu-new-name ((qs-rename qs-rename))

New name for the parameter to rename.

Target Slot

new-name.

Method: qsu-new-name ((update query-string-update))

Default value for NEW-NAME reader.

Generic Function: qsu-operation (condition)
Package

cl-cheshire-cat.

Methods
Method: qsu-operation (update)

Returns the operation of this update.

Source

query-string.lisp.

Reader Method: qsu-operation ((condition rs-no-such-qs-update))
Source

conditions.lisp.

Target Slot

operation.

Generic Function: qsu-replacement (update)

Generic query string update reader for REPLACEMENT.

Package

cl-cheshire-cat.

Source

query-string.lisp.

Methods
Reader Method: qsu-replacement ((qs-update qs-update))

Replacement string to generate the new value of the parameter

Target Slot

replacement.

Method: qsu-replacement ((update query-string-update))

Default value for REPLACEMENT reader.

Generic Function: qsu-summary (update)

This method converts the redirection rule to the alist ((:operation . operation) params)

Package

cl-cheshire-cat.

Source

query-string.lisp.

Methods
Method: qsu-summary (update)
Generic Function: qsu-value (update)

Generic query string update reader for VALUE.

Package

cl-cheshire-cat.

Source

query-string.lisp.

Methods
Reader Method: qsu-value ((qs-add qs-add))

Value of the parameter to create. If the value
is :path or :domain, the corresponding part of the URL will be used as the value.

Target Slot

value.

Method: qsu-value ((update query-string-update))

Default value for VALUE reader.

Generic Reader: redirection-acceptor-admin-allowed (object)
Generic Writer: (setf redirection-acceptor-admin-allowed) (object)
Package

cl-cheshire-cat.

Methods
Reader Method: redirection-acceptor-admin-allowed ((redirection-acceptor redirection-acceptor))
Writer Method: (setf redirection-acceptor-admin-allowed) ((redirection-acceptor redirection-acceptor))

A list of CIDR block specifications. Each item
of this list is a pair (IP prefix-length). IP is recommended to a string using the decimal dotted notation but could also be an host order 32 bytes integer or an host order byte vector.

Source

server.lisp.

Target Slot

admin-allowed.

Generic Reader: redirection-acceptor-admin-host (object)
Generic Writer: (setf redirection-acceptor-admin-host) (object)
Package

cl-cheshire-cat.

Methods
Reader Method: redirection-acceptor-admin-host ((redirection-acceptor redirection-acceptor))
Writer Method: (setf redirection-acceptor-admin-host) ((redirection-acceptor redirection-acceptor))

The domain name used to manage this redirection acceptor.

Source

server.lisp.

Target Slot

admin-host.

Generic Reader: redirection-acceptor-rules (object)
Generic Writer: (setf redirection-acceptor-rules) (object)
Package

cl-cheshire-cat.

Methods
Reader Method: redirection-acceptor-rules ((redirection-acceptor redirection-acceptor))
Writer Method: (setf redirection-acceptor-rules) ((redirection-acceptor redirection-acceptor))

The list of redirection rules used by this acceptor.

Source

server.lisp.

Target Slot

rules.

Generic Reader: redirection-acceptor-rules-directory (object)
Package

cl-cheshire-cat.

Methods
Reader Method: redirection-acceptor-rules-directory ((redirection-acceptor redirection-acceptor))

The directory in which rules will be
stored. Only the default rule file can be out of this directory.

Source

server.lisp.

Target Slot

rules-directory.

Generic Function: (setf redirection-acceptor-rules-directory) (object)
Package

cl-cheshire-cat.

Methods
Writer Method: (setf redirection-acceptor-rules-directory) :around ((acceptor redirection-acceptor))

Ensures the directory is a directory with no name and the crr type.

Source

server.lisp.

Target Slot

rules-directory.

Method: (setf redirection-acceptor-rules-directory) ((redirection-acceptor redirection-acceptor))

The directory in which rules will be
stored. Only the default rule file can be out of this directory.

Source

server.lisp.

Generic Reader: redirection-acceptor-rules-file (object)
Package

cl-cheshire-cat.

Methods
Reader Method: redirection-acceptor-rules-file ((redirection-acceptor redirection-acceptor))

The default file used to store the
rules. This is set when loading the rules from the file.

Source

server.lisp.

Target Slot

rules-file.

Generic Function: resolve-rr-matcher (rule)

This function update the <pre>matcher</pre> slot of <pre>rule</pre> so <pre>rr-matching-p</pre> can be used. It is the only function allowed to modify the <pre>matcher</pre> slot

Package

cl-cheshire-cat.

Source

rules.lisp.

Methods
Method: resolve-rr-matcher ((rule domain-redirection-rule))

This function updates the <pre>matcher</pre> slot for a domain name redirection rule.

Method: resolve-rr-matcher ((rule uri-redirection-rule))

This function updates the <pre>matcher</pre> slot for a URI redirection rule.

Generic Reader: rr-http-code (object)
Package

cl-cheshire-cat.

Methods
Reader Method: rr-http-code ((redirection-rule redirection-rule))

The HTTP Status Code sent when this
rule is applied. Can be overwritten by a subsequent rule.

Source

rules.lisp.

Target Slot

http-code.

Generic Function: (setf rr-http-code) (object)
Package

cl-cheshire-cat.

Methods
Writer Method: (setf rr-http-code) :before ((rule redirection-rule))

Ensures the type of the http-code slot.

Source

rules.lisp.

Target Slot

http-code.

Method: (setf rr-http-code) ((redirection-rule redirection-rule))

The HTTP Status Code sent when this
rule is applied. Can be overwritten by a subsequent rule.

Source

rules.lisp.

Generic Reader: rr-kind (condition)
Package

cl-cheshire-cat.

Methods
Reader Method: rr-kind ((redirection-rule redirection-rule))

A selector for the matching alogrithm used for this rule.

Source

rules.lisp.

Target Slot

kind.

Reader Method: rr-kind ((condition rs-no-such-rule))
Source

conditions.lisp.

Target Slot

kind.

Generic Function: (setf rr-kind) (object)
Package

cl-cheshire-cat.

Methods
Writer Method: (setf rr-kind) :after ((rule redirection-rule))

Ensures that every modification of the <pre>kind</pre> slot is updating the <pre>matcher</pre> slot.

Source

rules.lisp.

Target Slot

kind.

Method: (setf rr-kind) ((redirection-rule redirection-rule))

A selector for the matching alogrithm used for this rule.

Source

rules.lisp.

Generic Reader: rr-match (condition)
Package

cl-cheshire-cat.

Methods
Reader Method: rr-match ((redirection-rule redirection-rule))

The matching pattern used for this rule.

Source

rules.lisp.

Target Slot

match.

Reader Method: rr-match ((condition rs-no-such-rule))
Source

conditions.lisp.

Target Slot

match.

Generic Function: (setf rr-match) (object)
Package

cl-cheshire-cat.

Methods
Writer Method: (setf rr-match) :after ((rule redirection-rule))

Ensures that every modification of the <pre>match</pre> slot is updating the <pre>matcher</pre> slot.

Source

rules.lisp.

Target Slot

match.

Method: (setf rr-match) ((redirection-rule redirection-rule))

The matching pattern used for this rule.

Source

rules.lisp.

Generic Reader: rr-matcher (object)
Package

cl-cheshire-cat.

Methods
Reader Method: rr-matcher ((redirection-rule redirection-rule))

The matching closure implementing this
rule matching algorithm and performing the replacement.

Source

rules.lisp.

Target Slot

matcher.

Generic Reader: rr-port (object)
Generic Writer: (setf rr-port) (object)
Package

cl-cheshire-cat.

Methods
Reader Method: rr-port ((redirection-rule redirection-rule))
Writer Method: (setf rr-port) ((redirection-rule redirection-rule))

Port to use for the
redirection. Default depends on the protocol

Source

rules.lisp.

Target Slot

port.

Generic Reader: rr-protocol (object)
Generic Writer: (setf rr-protocol) (object)
Package

cl-cheshire-cat.

Methods
Reader Method: rr-protocol ((redirection-rule redirection-rule))
Writer Method: (setf rr-protocol) ((redirection-rule redirection-rule))

The protocol to use after
redirection (HTTP or HTTPS)

Source

rules.lisp.

Target Slot

protocol.

Generic Reader: rr-qs-updates (object)
Generic Writer: (setf rr-qs-updates) (object)
Package

cl-cheshire-cat.

Methods
Reader Method: rr-qs-updates ((redirection-rule redirection-rule))
Writer Method: (setf rr-qs-updates) ((redirection-rule redirection-rule))

List of query string update performed
when this rule match.

Source

rules.lisp.

Target Slot

query-string-updates.

Generic Reader: rr-replacement (object)
Package

cl-cheshire-cat.

Methods
Reader Method: rr-replacement ((redirection-rule redirection-rule))

The replacement specification for this
string. If it’s null, this rule does not modify its target-string.

Source

rules.lisp.

Target Slot

replacement.

Generic Function: (setf rr-replacement) (object)
Package

cl-cheshire-cat.

Methods
Writer Method: (setf rr-replacement) :after ((rule redirection-rule))

Ensures that every modification of the <pre>replacement</pre> slot is updating the <pre>matcher</pre> slot.

Source

rules.lisp.

Target Slot

replacement.

Method: (setf rr-replacement) ((redirection-rule redirection-rule))

The replacement specification for this
string. If it’s null, this rule does not modify its target-string.

Source

rules.lisp.

Generic Function: rr-summary (rule &key serialize)

This method converts the redirection rule to the list (kind match replacement . options)

Package

cl-cheshire-cat.

Source

rules.lisp.

Methods
Method: rr-summary ((rule domain-redirection-rule) &key serialize)

This method adds the list of uri rules in the case of serialization.

Method: rr-summary (rule &key serialize)

This method converts the redirection rule to the list (kind match replacement http-code)

Generic Function: update-query-string (update query-string domain-name path)

This function (destructively) updates query-string to apply
the specified query-string update. query-string is expected to be an alist of get parameters.

Package

cl-cheshire-cat.

Source

query-string.lisp.

Methods
Method: update-query-string ((update qs-delete) query-string domain-name path)

This method deletes a query string parameter. If there are several query string parameters with this name, only the first one is deleted. If there is no such parameter, do nothing.

Method: update-query-string ((update qs-update) query-string domain-name path)

This method updates the value of a parameter using a regex replacement. If there are several query string parameters with this name, only the first one is renamed. If there is no such parameter, do nothing.

Method: update-query-string ((update qs-rename) query-string domain-name path)

This method renames a query string parameter. If there are several query string parameters with this name, only the first one is renamed. If there is no such parameter, do nothing.

Method: update-query-string ((update qs-add) query-string domain-name path)

This method adds a new parameter at the beginning of the query string

Method: update-query-string ((update qs-clear) query-string domain-name path)

This method return an empty new alist.

Generic Reader: urr-domain-name-rule (condition)
Generic Writer: (setf urr-domain-name-rule) (condition)
Package

cl-cheshire-cat.

Methods
Reader Method: urr-domain-name-rule ((condition rs-no-such-uri-rule))
Writer Method: (setf urr-domain-name-rule) ((condition rs-no-such-uri-rule))
Source

conditions.lisp.

Target Slot

domain-name-rule.


6.2.5 Conditions

Condition: rs-error

Root condition for redirection server errors.

Package

cl-cheshire-cat.

Source

conditions.lisp.

Direct superclasses

error.

Direct subclasses
Condition: rs-loop-detected

Error raised if a loop is detected by the redirection
engine. If not caught, this loop will make the server reply with a "404 Not Found".

Package

cl-cheshire-cat.

Source

conditions.lisp.

Direct superclasses

rs-error.

Condition: rs-no-such-domain-rule

Error raised if a domain name rule cannot be found.

Package

cl-cheshire-cat.

Source

conditions.lisp.

Direct superclasses

rs-no-such-rule.

Condition: rs-no-such-qs-update

Error raised if a query string update cannot be found.

Package

cl-cheshire-cat.

Source

conditions.lisp.

Direct superclasses

rs-error.

Direct methods
Direct slots
Slot: operation
Initargs

:operation

Readers

qsu-operation.

Writers

This slot is read-only.

Slot: name
Initform

(quote nil)

Initargs

:name

Readers

qsu-name.

Writers

This slot is read-only.

Slot: match
Initform

(quote nil)

Initargs

:match

Readers

qsu-match.

Writers

This slot is read-only.

Condition: rs-no-such-rule

Error raised if a rule cannot be found.

Package

cl-cheshire-cat.

Source

conditions.lisp.

Direct superclasses

rs-error.

Direct subclasses
Direct methods
Direct slots
Slot: kind
Initargs

:kind

Readers

rr-kind.

Writers

This slot is read-only.

Slot: match
Initargs

:match

Readers

rr-match.

Writers

This slot is read-only.

Condition: rs-no-such-uri-rule

Error raised if an URI rule cannot be found.

Package

cl-cheshire-cat.

Source

conditions.lisp.

Direct superclasses

rs-no-such-rule.

Direct methods
Direct slots
Slot: domain-name-rule
Initargs

:domain-name-rule

Readers

urr-domain-name-rule.

Writers

(setf urr-domain-name-rule).


6.2.6 Classes

Class: domain-redirection-rule

Class for redirection rules applied to domain names.

Package

cl-cheshire-cat.

Source

rules.lisp.

Direct superclasses

redirection-rule.

Direct methods
Direct slots
Slot: uri-rules

List of URI redirection rules for the domain names matching this redirection rule.

Type

list

Readers

drr-uri-rules.

Writers

(setf drr-uri-rules).

Class: qs-add

Add a new parameter at the beginning the query string.

Package

cl-cheshire-cat.

Source

query-string.lisp.

Direct superclasses

query-string-update.

Direct methods
Direct slots
Slot: name

Name of the parameter to create.

Type

string

Initargs

:name

Readers

qsu-name.

Writers

This slot is read-only.

Slot: value

Value of the parameter to create. If the value
is :path or :domain, the corresponding part of the URL will be used as the value.

Type

(or (member :path :domain) string)

Initargs

:value

Readers

qsu-value.

Writers

This slot is read-only.

Class: qs-clear

Clear the query string. Since this class has no state nor parameters, it’s a singleton.

Package

cl-cheshire-cat.

Source

query-string.lisp.

Direct superclasses

query-string-update.

Direct methods
Class: qs-delete

Remove a parameter from the query string.

Package

cl-cheshire-cat.

Source

query-string.lisp.

Direct superclasses

query-string-update.

Direct methods
Direct slots
Slot: name

Name of the parameter to delete.

Type

string

Initargs

:name

Readers

qsu-name.

Writers

This slot is read-only.

Class: qs-rename

Rename the parameter in the query string.

Package

cl-cheshire-cat.

Source

query-string.lisp.

Direct superclasses

query-string-update.

Direct methods
Direct slots
Slot: name

Name of the parameter to rename (old name).

Type

string

Initargs

:name

Readers

qsu-name.

Writers

This slot is read-only.

Slot: new-name

New name for the parameter to rename.

Type

string

Initargs

:new-name

Readers

qsu-new-name.

Writers

This slot is read-only.

Class: qs-update

Use a regex to modify the value of a parameter in the query string.

Package

cl-cheshire-cat.

Source

query-string.lisp.

Direct superclasses

query-string-update.

Direct methods
Direct slots
Slot: name

Name of the parameter to update.

Type

string

Initargs

:name

Readers

qsu-name.

Writers

This slot is read-only.

Slot: match

Regex to match the old value of the parameter

Type

string

Initargs

:match

Readers

qsu-match.

Writers

This slot is read-only.

Slot: replacement

Replacement string to generate the new value of the parameter

Type

string

Initargs

:replacement

Readers

qsu-replacement.

Writers

This slot is read-only.

Slot: matcher

Compiled regex matcher

Readers

qsu-matcher.

Writers

This slot is read-only.

Class: query-string-update

Root class for Query String operations.

Package

cl-cheshire-cat.

Source

query-string.lisp.

Direct subclasses
Direct methods
Class: redirection-rule

Root class for redirection rules.

Package

cl-cheshire-cat.

Source

rules.lisp.

Direct subclasses
Direct methods
Direct slots
Slot: kind

A selector for the matching alogrithm used for this rule.

Type

keyword

Initargs

:kind

Readers

rr-kind.

Writers

(setf rr-kind).

Slot: match

The matching pattern used for this rule.

Type

(or string list)

Initargs

:match

Readers

rr-match.

Writers

(setf rr-match).

Slot: matcher

The matching closure implementing this
rule matching algorithm and performing the replacement.

Type

(function (string) (values t string))

Initform

(lambda (cl-cheshire-cat::str) (declare (ignore cl-cheshire-cat::str)) (error "not implemented."))

Readers

rr-matcher.

Writers

This slot is read-only.

Slot: replacement

The replacement specification for this
string. If it’s null, this rule does not modify its target-string.

Type

(or string null)

Initargs

:replacement

Readers

rr-replacement.

Writers

(setf rr-replacement).

Slot: http-code

The HTTP Status Code sent when this
rule is applied. Can be overwritten by a subsequent rule.

Type

(or null (integer 300 399))

Initargs

:http-code

Readers

rr-http-code.

Writers

(setf rr-http-code).

Slot: protocol

The protocol to use after
redirection (HTTP or HTTPS)

Type

(or null (member :http :https))

Initargs

:protocol

Readers

rr-protocol.

Writers

(setf rr-protocol).

Slot: port

Port to use for the
redirection. Default depends on the protocol

Type

(or null unsigned-byte)

Initargs

:port

Readers

rr-port.

Writers

(setf rr-port).

Slot: query-string-updates

List of query string update performed
when this rule match.

Type

list

Initform

(quote nil)

Readers

rr-qs-updates.

Writers

(setf rr-qs-updates).

Class: two-steps-start-acceptor

This acceptor implementation allow a two-step start: 1. the
first step ‘start-listening‘ starts the socket without starting to accept connections 2. the second setp ‘start‘ starts to accept connection This system allow for example to daemonize the process and drop privileges before starting to accept connections.

Package

cl-cheshire-cat.

Source

two-steps-start-acceptor.lisp.

Direct superclasses

acceptor.

Direct subclasses

redirection-acceptor.

Direct methods
Class: uri-redirection-rule

Class for redirection rules applied to URIs (path part of the URL, no query-string).

Package

cl-cheshire-cat.

Source

rules.lisp.

Direct superclasses

redirection-rule.

Direct methods

Appendix A Indexes


A.1 Concepts


A.2 Functions

Jump to:   (  
A   C   D   F   G   I   L   M   P   Q   R   S   U   V  
Index Entry  Section

(
(setf drr-uri-rules): Public generic functions
(setf drr-uri-rules): Public generic functions
(setf redirection-acceptor-admin-allowed): Private generic functions
(setf redirection-acceptor-admin-allowed): Private generic functions
(setf redirection-acceptor-admin-host): Private generic functions
(setf redirection-acceptor-admin-host): Private generic functions
(setf redirection-acceptor-rules): Private generic functions
(setf redirection-acceptor-rules): Private generic functions
(setf redirection-acceptor-rules-directory): Private generic functions
(setf redirection-acceptor-rules-directory): Private generic functions
(setf redirection-acceptor-rules-directory): Private generic functions
(setf rr-http-code): Private generic functions
(setf rr-http-code): Private generic functions
(setf rr-http-code): Private generic functions
(setf rr-kind): Private generic functions
(setf rr-kind): Private generic functions
(setf rr-kind): Private generic functions
(setf rr-match): Private generic functions
(setf rr-match): Private generic functions
(setf rr-match): Private generic functions
(setf rr-port): Private generic functions
(setf rr-port): Private generic functions
(setf rr-protocol): Private generic functions
(setf rr-protocol): Private generic functions
(setf rr-qs-updates): Private generic functions
(setf rr-qs-updates): Private generic functions
(setf rr-replacement): Private generic functions
(setf rr-replacement): Private generic functions
(setf rr-replacement): Private generic functions
(setf urr-domain-name-rule): Private generic functions
(setf urr-domain-name-rule): Private generic functions

A
acceptor-dispatch-request: Public standalone methods
acceptor-log-access: Public standalone methods
add-domain-name-rule: Private macros
add-qs-update: Private ordinary functions
add-uri-rule: Private ordinary functions
admin-domain-name-rules-handler%: Private ordinary functions
admin-handler: Private ordinary functions
admin-query-string-handler%: Private ordinary functions
admin-uri-rules-handler%: Private ordinary functions
apply-default-domain-name-rule: Private ordinary functions
apply-rules: Private ordinary functions

C
class<-qsu-operation: Private ordinary functions
compute-redirection: Private ordinary functions
compute-uri: Private ordinary functions
create-regex-matcher: Private ordinary functions

D
define-generic-qsu-reader: Private macros
drr-is-loop-p: Private ordinary functions
drr-uri-rules: Public generic functions
drr-uri-rules: Public generic functions

F
find-domain-name-rule: Private ordinary functions
find-qs-update: Private ordinary functions
find-uri-rule: Private ordinary functions
Function, add-qs-update: Private ordinary functions
Function, add-uri-rule: Private ordinary functions
Function, admin-domain-name-rules-handler%: Private ordinary functions
Function, admin-handler: Private ordinary functions
Function, admin-query-string-handler%: Private ordinary functions
Function, admin-uri-rules-handler%: Private ordinary functions
Function, apply-default-domain-name-rule: Private ordinary functions
Function, apply-rules: Private ordinary functions
Function, class<-qsu-operation: Private ordinary functions
Function, compute-redirection: Private ordinary functions
Function, compute-uri: Private ordinary functions
Function, create-regex-matcher: Private ordinary functions
Function, drr-is-loop-p: Private ordinary functions
Function, find-domain-name-rule: Private ordinary functions
Function, find-qs-update: Private ordinary functions
Function, find-uri-rule: Private ordinary functions
Function, ip-cidr-match-p: Private ordinary functions
Function, load-rules: Private ordinary functions
Function, make-query-string-update: Private ordinary functions
Function, merge-redirection-parameter: Private ordinary functions
Function, merge-redirection-parameters-list: Private ordinary functions
Function, parse-cidr-list: Private ordinary functions
Function, parse-integer-or-nil: Private ordinary functions
Function, preload-rules: Public ordinary functions
Function, qsu-operation<-class: Private ordinary functions
Function, redirection-rule=: Private ordinary functions
Function, remove-qs-update: Private ordinary functions
Function, remove-uri-rule: Private ordinary functions
Function, reset-singleton-classes: Public ordinary functions
Function, rr-key: Private ordinary functions
Function, rr-matching-p: Private ordinary functions
Function, save-rules: Private ordinary functions
Function, send-bad-request: Private ordinary functions
Function, unsummarize-query-string-update%: Private ordinary functions
Function, update-rule%: Private ordinary functions

G
Generic Function, (setf drr-uri-rules): Public generic functions
Generic Function, (setf redirection-acceptor-admin-allowed): Private generic functions
Generic Function, (setf redirection-acceptor-admin-host): Private generic functions
Generic Function, (setf redirection-acceptor-rules): Private generic functions
Generic Function, (setf redirection-acceptor-rules-directory): Private generic functions
Generic Function, (setf rr-http-code): Private generic functions
Generic Function, (setf rr-kind): Private generic functions
Generic Function, (setf rr-match): Private generic functions
Generic Function, (setf rr-port): Private generic functions
Generic Function, (setf rr-protocol): Private generic functions
Generic Function, (setf rr-qs-updates): Private generic functions
Generic Function, (setf rr-replacement): Private generic functions
Generic Function, (setf urr-domain-name-rule): Private generic functions
Generic Function, drr-uri-rules: Public generic functions
Generic Function, qsu-key: Private generic functions
Generic Function, qsu-match: Private generic functions
Generic Function, qsu-matcher: Private generic functions
Generic Function, qsu-name: Private generic functions
Generic Function, qsu-new-name: Private generic functions
Generic Function, qsu-operation: Private generic functions
Generic Function, qsu-replacement: Private generic functions
Generic Function, qsu-summary: Private generic functions
Generic Function, qsu-value: Private generic functions
Generic Function, redirection-acceptor-admin-allowed: Private generic functions
Generic Function, redirection-acceptor-admin-host: Private generic functions
Generic Function, redirection-acceptor-rules: Private generic functions
Generic Function, redirection-acceptor-rules-directory: Private generic functions
Generic Function, redirection-acceptor-rules-file: Private generic functions
Generic Function, resolve-rr-matcher: Private generic functions
Generic Function, rr-http-code: Private generic functions
Generic Function, rr-kind: Private generic functions
Generic Function, rr-match: Private generic functions
Generic Function, rr-matcher: Private generic functions
Generic Function, rr-port: Private generic functions
Generic Function, rr-protocol: Private generic functions
Generic Function, rr-qs-updates: Private generic functions
Generic Function, rr-replacement: Private generic functions
Generic Function, rr-summary: Private generic functions
Generic Function, update-query-string: Private generic functions
Generic Function, urr-domain-name-rule: Private generic functions

I
initialize-instance: Public standalone methods
initialize-instance: Public standalone methods
initialize-instance: Public standalone methods
initialize-instance: Public standalone methods
internal-store-object: Public standalone methods
internal-store-object: Public standalone methods
internal-store-object: Public standalone methods
ip-cidr-match-p: Private ordinary functions

L
load-rules: Private ordinary functions

M
Macro, add-domain-name-rule: Private macros
Macro, define-generic-qsu-reader: Private macros
Macro, remove-domain-name-rule: Private macros
make-instance: Public standalone methods
make-query-string-update: Private ordinary functions
merge-redirection-parameter: Private ordinary functions
merge-redirection-parameters-list: Private ordinary functions
Method, (setf drr-uri-rules): Public generic functions
Method, (setf redirection-acceptor-admin-allowed): Private generic functions
Method, (setf redirection-acceptor-admin-host): Private generic functions
Method, (setf redirection-acceptor-rules): Private generic functions
Method, (setf redirection-acceptor-rules-directory): Private generic functions
Method, (setf redirection-acceptor-rules-directory): Private generic functions
Method, (setf rr-http-code): Private generic functions
Method, (setf rr-http-code): Private generic functions
Method, (setf rr-kind): Private generic functions
Method, (setf rr-kind): Private generic functions
Method, (setf rr-match): Private generic functions
Method, (setf rr-match): Private generic functions
Method, (setf rr-port): Private generic functions
Method, (setf rr-protocol): Private generic functions
Method, (setf rr-qs-updates): Private generic functions
Method, (setf rr-replacement): Private generic functions
Method, (setf rr-replacement): Private generic functions
Method, (setf urr-domain-name-rule): Private generic functions
Method, acceptor-dispatch-request: Public standalone methods
Method, acceptor-log-access: Public standalone methods
Method, drr-uri-rules: 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, internal-store-object: Public standalone methods
Method, internal-store-object: Public standalone methods
Method, internal-store-object: Public standalone methods
Method, make-instance: Public standalone methods
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods
Method, qsu-key: Private generic functions
Method, qsu-key: Private generic functions
Method, qsu-key: Private generic functions
Method, qsu-match: Private generic functions
Method, qsu-match: Private generic functions
Method, qsu-match: Private generic functions
Method, qsu-matcher: Private generic functions
Method, qsu-name: Private generic functions
Method, qsu-name: Private generic functions
Method, qsu-name: Private generic functions
Method, qsu-name: Private generic functions
Method, qsu-name: Private generic functions
Method, qsu-name: Private generic functions
Method, qsu-new-name: Private generic functions
Method, qsu-new-name: Private generic functions
Method, qsu-operation: Private generic functions
Method, qsu-operation: Private generic functions
Method, qsu-replacement: Private generic functions
Method, qsu-replacement: Private generic functions
Method, qsu-summary: Private generic functions
Method, qsu-value: Private generic functions
Method, qsu-value: Private generic functions
Method, redirection-acceptor-admin-allowed: Private generic functions
Method, redirection-acceptor-admin-host: Private generic functions
Method, redirection-acceptor-rules: Private generic functions
Method, redirection-acceptor-rules-directory: Private generic functions
Method, redirection-acceptor-rules-file: Private generic functions
Method, resolve-rr-matcher: Private generic functions
Method, resolve-rr-matcher: Private generic functions
Method, rr-http-code: Private generic functions
Method, rr-kind: Private generic functions
Method, rr-kind: Private generic functions
Method, rr-match: Private generic functions
Method, rr-match: Private generic functions
Method, rr-matcher: Private generic functions
Method, rr-port: Private generic functions
Method, rr-protocol: Private generic functions
Method, rr-qs-updates: Private generic functions
Method, rr-replacement: Private generic functions
Method, rr-summary: Private generic functions
Method, rr-summary: Private generic functions
Method, start: Public standalone methods
Method, start-listening: Public standalone methods
Method, update-query-string: Private generic functions
Method, update-query-string: Private generic functions
Method, update-query-string: Private generic functions
Method, update-query-string: Private generic functions
Method, update-query-string: Private generic functions
Method, urr-domain-name-rule: Private generic functions
Method, validate-superclass: Public standalone methods
Method, validate-superclass: Public standalone methods
Method, validate-superclass: Public standalone methods

P
parse-cidr-list: Private ordinary functions
parse-integer-or-nil: Private ordinary functions
preload-rules: Public ordinary functions
print-object: Public standalone methods
print-object: Public standalone methods

Q
qsu-key: Private generic functions
qsu-key: Private generic functions
qsu-key: Private generic functions
qsu-key: Private generic functions
qsu-match: Private generic functions
qsu-match: Private generic functions
qsu-match: Private generic functions
qsu-match: Private generic functions
qsu-matcher: Private generic functions
qsu-matcher: Private generic functions
qsu-name: Private generic functions
qsu-name: Private generic functions
qsu-name: Private generic functions
qsu-name: Private generic functions
qsu-name: Private generic functions
qsu-name: Private generic functions
qsu-name: Private generic functions
qsu-new-name: Private generic functions
qsu-new-name: Private generic functions
qsu-new-name: Private generic functions
qsu-operation: Private generic functions
qsu-operation: Private generic functions
qsu-operation: Private generic functions
qsu-operation<-class: Private ordinary functions
qsu-replacement: Private generic functions
qsu-replacement: Private generic functions
qsu-replacement: Private generic functions
qsu-summary: Private generic functions
qsu-summary: Private generic functions
qsu-value: Private generic functions
qsu-value: Private generic functions
qsu-value: Private generic functions

R
redirection-acceptor-admin-allowed: Private generic functions
redirection-acceptor-admin-allowed: Private generic functions
redirection-acceptor-admin-host: Private generic functions
redirection-acceptor-admin-host: Private generic functions
redirection-acceptor-rules: Private generic functions
redirection-acceptor-rules: Private generic functions
redirection-acceptor-rules-directory: Private generic functions
redirection-acceptor-rules-directory: Private generic functions
redirection-acceptor-rules-file: Private generic functions
redirection-acceptor-rules-file: Private generic functions
redirection-rule=: Private ordinary functions
remove-domain-name-rule: Private macros
remove-qs-update: Private ordinary functions
remove-uri-rule: Private ordinary functions
reset-singleton-classes: Public ordinary functions
resolve-rr-matcher: Private generic functions
resolve-rr-matcher: Private generic functions
resolve-rr-matcher: Private generic functions
rr-http-code: Private generic functions
rr-http-code: Private generic functions
rr-key: Private ordinary functions
rr-kind: Private generic functions
rr-kind: Private generic functions
rr-kind: Private generic functions
rr-match: Private generic functions
rr-match: Private generic functions
rr-match: Private generic functions
rr-matcher: Private generic functions
rr-matcher: Private generic functions
rr-matching-p: Private ordinary functions
rr-port: Private generic functions
rr-port: Private generic functions
rr-protocol: Private generic functions
rr-protocol: Private generic functions
rr-qs-updates: Private generic functions
rr-qs-updates: Private generic functions
rr-replacement: Private generic functions
rr-replacement: Private generic functions
rr-summary: Private generic functions
rr-summary: Private generic functions
rr-summary: Private generic functions

S
save-rules: Private ordinary functions
send-bad-request: Private ordinary functions
start: Public standalone methods
start-listening: Public standalone methods

U
unsummarize-query-string-update%: Private ordinary functions
update-query-string: Private generic functions
update-query-string: Private generic functions
update-query-string: Private generic functions
update-query-string: Private generic functions
update-query-string: Private generic functions
update-query-string: Private generic functions
update-rule%: Private ordinary functions
urr-domain-name-rule: Private generic functions
urr-domain-name-rule: Private generic functions

V
validate-superclass: Public standalone methods
validate-superclass: Public standalone methods
validate-superclass: Public standalone methods


A.3 Variables

Jump to:   *   +  
A   D   H   I   K   M   N   O   P   Q   R   S   U   V  
Index Entry  Section

*
*qsu-generic-readers*: Private special variables
*singleton-classes*: Private special variables

+
+default-domain-name-rule+: Private special variables
+domain-redirection-rule-code+: Private special variables
+qsu-code+: Private special variables
+uri-redirection-rule-code+: Private special variables

A
admin-allowed: Public classes
admin-host: Public classes

D
domain-name-rule: Private conditions

H
http-code: Private classes

I
instance: Public classes

K
kind: Private conditions
kind: Private classes

M
match: Private conditions
match: Private conditions
match: Private classes
match: Private classes
matcher: Private classes
matcher: Private classes

N
name: Private conditions
name: Private classes
name: Private classes
name: Private classes
name: Private classes
new-name: Private classes

O
operation: Private conditions

P
port: Private classes
protocol: Private classes

Q
query-string-updates: Private classes

R
replacement: Private classes
replacement: Private classes
rules: Public classes
rules-directory: Public classes
rules-file: Public classes

S
Slot, admin-allowed: Public classes
Slot, admin-host: Public classes
Slot, domain-name-rule: Private conditions
Slot, http-code: Private classes
Slot, instance: Public classes
Slot, kind: Private conditions
Slot, kind: Private classes
Slot, match: Private conditions
Slot, match: Private conditions
Slot, match: Private classes
Slot, match: Private classes
Slot, matcher: Private classes
Slot, matcher: Private classes
Slot, name: Private conditions
Slot, name: Private classes
Slot, name: Private classes
Slot, name: Private classes
Slot, name: Private classes
Slot, new-name: Private classes
Slot, operation: Private conditions
Slot, port: Private classes
Slot, protocol: Private classes
Slot, query-string-updates: Private classes
Slot, replacement: Private classes
Slot, replacement: Private classes
Slot, rules: Public classes
Slot, rules-directory: Public classes
Slot, rules-file: Public classes
Slot, uri-rules: Private classes
Slot, value: Private classes
Special Variable, *qsu-generic-readers*: Private special variables
Special Variable, *singleton-classes*: Private special variables
Special Variable, +default-domain-name-rule+: Private special variables
Special Variable, +domain-redirection-rule-code+: Private special variables
Special Variable, +qsu-code+: Private special variables
Special Variable, +uri-redirection-rule-code+: Private special variables

U
uri-rules: Private classes

V
value: Private classes


A.4 Data types

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

A
admin-handler.lisp: The cl-cheshire-cat/sources/admin-handler․lisp file

B
behavior.lisp: The cl-cheshire-cat/sources/behavior․lisp file

C
cl-cheshire-cat: The cl-cheshire-cat system
cl-cheshire-cat: The cl-cheshire-cat package
cl-cheshire-cat.asd: The cl-cheshire-cat/cl-cheshire-cat․asd file
Class, domain-redirection-rule: Private classes
Class, qs-add: Private classes
Class, qs-clear: Private classes
Class, qs-delete: Private classes
Class, qs-rename: Private classes
Class, qs-update: Private classes
Class, query-string-update: Private classes
Class, redirection-acceptor: Public classes
Class, redirection-rule: Private classes
Class, singleton-class: Public classes
Class, two-steps-start-acceptor: Private classes
Class, uri-redirection-rule: Private classes
classes: The cl-cheshire-cat/sources/classes module
Condition, rs-error: Private conditions
Condition, rs-loop-detected: Private conditions
Condition, rs-no-such-domain-rule: Private conditions
Condition, rs-no-such-qs-update: Private conditions
Condition, rs-no-such-rule: Private conditions
Condition, rs-no-such-uri-rule: Private conditions
conditions.lisp: The cl-cheshire-cat/sources/classes/conditions․lisp file

D
domain-redirection-rule: Private classes

F
File, admin-handler.lisp: The cl-cheshire-cat/sources/admin-handler․lisp file
File, behavior.lisp: The cl-cheshire-cat/sources/behavior․lisp file
File, cl-cheshire-cat.asd: The cl-cheshire-cat/cl-cheshire-cat․asd file
File, conditions.lisp: The cl-cheshire-cat/sources/classes/conditions․lisp file
File, package.lisp: The cl-cheshire-cat/sources/package․lisp file
File, query-string.lisp: The cl-cheshire-cat/sources/classes/query-string․lisp file
File, rules.lisp: The cl-cheshire-cat/sources/classes/rules․lisp file
File, server.lisp: The cl-cheshire-cat/sources/server․lisp file
File, singleton-class.lisp: The cl-cheshire-cat/sources/classes/singleton-class․lisp file
File, two-steps-start-acceptor.lisp: The cl-cheshire-cat/sources/classes/two-steps-start-acceptor․lisp file
File, utils.lisp: The cl-cheshire-cat/sources/utils․lisp file

M
Module, classes: The cl-cheshire-cat/sources/classes module
Module, sources: The cl-cheshire-cat/sources module

O
org.tfeb.hax.singleton-classes: The org․tfeb․hax․singleton-classes package

P
Package, cl-cheshire-cat: The cl-cheshire-cat package
Package, org.tfeb.hax.singleton-classes: The org․tfeb․hax․singleton-classes package
package.lisp: The cl-cheshire-cat/sources/package․lisp file

Q
qs-add: Private classes
qs-clear: Private classes
qs-delete: Private classes
qs-rename: Private classes
qs-update: Private classes
query-string-update: Private classes
query-string.lisp: The cl-cheshire-cat/sources/classes/query-string․lisp file

R
redirection-acceptor: Public classes
redirection-rule: Private classes
rs-error: Private conditions
rs-loop-detected: Private conditions
rs-no-such-domain-rule: Private conditions
rs-no-such-qs-update: Private conditions
rs-no-such-rule: Private conditions
rs-no-such-uri-rule: Private conditions
rules.lisp: The cl-cheshire-cat/sources/classes/rules․lisp file

S
server.lisp: The cl-cheshire-cat/sources/server․lisp file
singleton-class: Public classes
singleton-class.lisp: The cl-cheshire-cat/sources/classes/singleton-class․lisp file
sources: The cl-cheshire-cat/sources module
System, cl-cheshire-cat: The cl-cheshire-cat system

T
two-steps-start-acceptor: Private classes
two-steps-start-acceptor.lisp: The cl-cheshire-cat/sources/classes/two-steps-start-acceptor․lisp file

U
uri-redirection-rule: Private classes
utils.lisp: The cl-cheshire-cat/sources/utils․lisp file