The cl-webdav Reference Manual

Table of Contents

Next: , Previous: , Up: (dir)   [Contents][Index]

The cl-webdav Reference Manual

This is the cl-webdav Reference Manual, version 0.2.1, generated automatically by Declt version 2.3 "Robert April" on Wed Mar 14 03:36:53 2018 GMT+0.


Next: , Previous: , Up: Top   [Contents][Index]

1 Systems

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


Previous: , Up: Systems   [Contents][Index]

1.1 cl-webdav

Description

A WebDAV server written in Common Lisp

Version

0.2.1

Dependencies
Source

cl-webdav.asd (file)

Components

Next: , Previous: , Up: Top   [Contents][Index]

2 Files

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


Previous: , Up: Files   [Contents][Index]

2.1 Lisp


Next: , Previous: , Up: Lisp files   [Contents][Index]

2.1.1 cl-webdav.asd

Location

cl-webdav.asd

Systems

cl-webdav (system)


Next: , Previous: , Up: Lisp files   [Contents][Index]

2.1.2 cl-webdav/packages.lisp

Parent

cl-webdav (system)

Location

packages.lisp

Packages

cl-webdav


Next: , Previous: , Up: Lisp files   [Contents][Index]

2.1.3 cl-webdav/specials.lisp

Dependency

packages.lisp (file)

Parent

cl-webdav (system)

Location

specials.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

2.1.4 cl-webdav/util.lisp

Dependency

specials.lisp (file)

Parent

cl-webdav (system)

Location

util.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

2.1.5 cl-webdav/xml.lisp

Dependency

util.lisp (file)

Parent

cl-webdav (system)

Location

xml.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

2.1.6 cl-webdav/resources.lisp

Dependency

xml.lisp (file)

Parent

cl-webdav (system)

Location

resources.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

2.1.7 cl-webdav/properties.lisp

Dependency

resources.lisp (file)

Parent

cl-webdav (system)

Location

properties.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

2.1.8 cl-webdav/handlers.lisp

Dependency

properties.lisp (file)

Parent

cl-webdav (system)

Location

handlers.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

2.1.9 cl-webdav/file-resources.lisp

Dependency

handlers.lisp (file)

Parent

cl-webdav (system)

Location

file-resources.lisp

Exported Definitions
Internal Definitions

Previous: , Up: Lisp files   [Contents][Index]

2.1.10 cl-webdav/authorized-file-resources.lisp

Dependency

file-resources.lisp (file)

Parent

cl-webdav (system)

Location

authorized-file-resources.lisp

Exported Definitions

Next: , Previous: , Up: Top   [Contents][Index]

3 Packages

Packages are listed by definition order.


Previous: , Up: Packages   [Contents][Index]

3.1 cl-webdav

Source

packages.lisp (file)

Nickname

dav

Use List
Exported Definitions
Internal Definitions

Next: , Previous: , Up: Top   [Contents][Index]

4 Definitions

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


Next: , Previous: , Up: Definitions   [Contents][Index]

4.1 Exported definitions


Next: , Previous: , Up: Exported definitions   [Contents][Index]

4.1.1 Special variables

Special Variable: *allowed-methods*

The list of methods (as keywords) returned by the ‘Allow’ header in case of OPTIONS requests (and also utilized by the handler for MKCOL). Can be adapted to allow for more methods, but for a WebDAV server at least the methods above should be listed.

Package

cl-webdav

Source

specials.lisp (file)

Special Variable: *dav-compliance-classes*

A /sorted/ list of DAV compliance classes reported in the ‘DAV’ header when answering OPTIONS requests. It doesn’t make much sense to have more then class 1 in here as long as there’s no lock support.

Package

cl-webdav

Source

specials.lisp (file)

Special Variable: *file-resource-base-path-namestring*

The value of this variable is the return value of the default method for FILE-RESOURCE-BASE-PATH-NAMESTRING. It should be the namestring of the truename of an absolute pathname denoting a directory, specifically it must return a string starting and ending with slashes. (Note: This should work on Windows as well.)

Package

cl-webdav

Source

specials.lisp (file)

Special Variable: *file-resource-base-uri*

The value of this variable is the return value of the default method for FILE-RESOURCE-BASE-URI. It should be a string which starts with a slash if it’s not empty and does /not/ end with a slash and is /not/ URL-encoded.

Package

cl-webdav

Source

specials.lisp (file)

Special Variable: *resource-class*

Whenever a DAV handler is executed, this variable should be bound to the resource class which is to be used. If you’re using CREATE-DAV-DISPATCHER, this will already be taken care of for you.

Package

cl-webdav

Source

specials.lisp (file)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

4.1.2 Functions

Function: dav-node LOCAL-NAME &rest CHILDREN

Shortcut for MAKE-XMLS-NODE. Returns an XMLS node with the local name LOCAL-NAME, the namespace URI "DAV:", and the children CHILDREN.

Package

cl-webdav

Source

xml.lisp (file)

Function: local-name THING

Returns the local name of the XMLS node or attribute THING.

Package

cl-webdav

Source

xml.lisp (file)

Function: namespace-uri THING

Returns the namespace URI (which can be NIL) of the XMLS node or attribute THING.

Package

cl-webdav

Source

xml.lisp (file)

Function: node-attributes XMLS-NODE

Returns the list of attributes of the XMLS node XMLS-NODE.

Package

cl-webdav

Source

xml.lisp (file)

Writer

(setf node-attributes) (function)

Function: (setf node-attributes) ATTRIBUTES XMLS-NODE

Sets the list of attributes of the XMLS node XMLS-NODE to ATTRIBUTES.

Package

cl-webdav

Source

xml.lisp (file)

Reader

node-attributes (function)

Function: node-children XMLS-NODE

Returns the list of children of the XMLS node XMLS-NODE.

Package

cl-webdav

Source

xml.lisp (file)

Writer

(setf node-children) (function)

Function: (setf node-children) CHILDREN XMLS-NODE

Sets the list of children of the XMLS node XMLS-NODE to CHILDREN.

Package

cl-webdav

Source

xml.lisp (file)

Reader

node-children (function)

Function: options-dispatcher REQUEST

A dispatcher which’ll dispatch to OPTIONS-HANDLER in case of an OPTIONS request and decline otherwise. This is only useful if you want to cater to Microsoft DAV clients which always unconditionally send OPTIONS requests to the "/" root resource. Sigh...

Package

cl-webdav

Source

handlers.lisp (file)

Function: options-handler ()

The handler for OPTIONS requests. Output is basically determined by *ALLOWED-METHODS* and *DAV-COMPLIANCE-CLASSES*.

Package

cl-webdav

Source

handlers.lisp (file)

Function: parse-dav OCTETS &optional ROOT-NAME

Accepts an array OCTETS of octets representing a DAV XML node and converts it into the corresponding XMLS node. According to the WebDAV RFC, non-DAV elements are skipped unless they appear in positions (like in a "prop" element) where arbitrary elements are allowed. If ROOT-NAME is given, it should be the local name (a string) of a DAV node. In this case, the XML is validated. This function is expected to be called from within a Hunchentoot request and throws to the HANDLER-DONE tag with a return code of +HTTP-BAD-REQUEST+ if a parsing error occurs or if the XML is invalid.

This is kind of the inverse operation to SERIALIZE-XMLS-NODE.

Package

cl-webdav

Source

xml.lisp (file)

Function: serialize-xmls-node XMLS-NODE

Serializes XMLS-NODE to a vector of octets which is returned.

This is kind of the inverse operation to PARSE-DAV and very similar to CXML-XMLS:MAP-NODE.

Package

cl-webdav

Source

xml.lisp (file)

Function: xmls-node-p THING

Checks whether THING is an XMLS node. See the docstring of MAKE-XMLS-NODE for a description of the structure of XMLS nodes.

Package

cl-webdav

Source

xml.lisp (file)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

4.1.3 Generic functions

Generic Function: accept-request-p RESOURCE-CLASS REQUEST

This must be a function which accepts a
Hunchentoot request object REQUEST and returns a generalized boolean denoting whether REQUEST denotes a resource the DAV server wants to handle. Usually, you’ll want to look at the script name of the request or something like that - see the class FILE-RESOURCE for an example.

Note that you specialize this function on the resource /class/ and not on the resource.

Package

cl-webdav

Source

resources.lisp (file)

Methods
Method: accept-request-p (RESOURCE-CLASS (eql authorized-file-resource)) REQUEST

We just use the method for FILE-RESOURCE.

Source

authorized-file-resources.lisp (file)

Method: accept-request-p (RESOURCE-CLASS (eql file-resource)) REQUEST

A request is accepted if it starts with the base URI.

Source

file-resources.lisp (file)

Method: accept-request-p (RESOURCE-CLASS standard-class) SCRIPT-NAME
Generic Function: copy-dead-properties SOURCE DESTINATION

This function must copy all dead properties of
the resource SOURCE to the resource DESTINATION. There’s a default method but you should definitely specialize this for production servers.

Package

cl-webdav

Source

resources.lisp (file)

Methods
Method: copy-dead-properties (SOURCE file-resource) (DESTINATION file-resource)
Source

file-resources.lisp (file)

Method: copy-dead-properties SOURCE DESTINATION
Generic Function: copy-resource SOURCE DESTINATION

This function must "copy" the (contents of
the) resource SOURCE in such a way that the copy can in the future be accessed as DESTINATION. It doesn’t have to deal with dead properties, and it can assume that SOURCE doesn’t have children in case it’s a collection.

Package

cl-webdav

Source

resources.lisp (file)

Methods
Method: copy-resource (SOURCE file-resource) (DESTINATION file-resource)

A file resource is moved by copying its counterpart in the file system (using CL-FAD’s function COPY-FILE). Collections (directories) are "copied" simply by creating a new directory with the same name in the destination location.

Source

file-resources.lisp (file)

Generic Function: create-collection RESOURCE

This function must create a collection
resource that in the future can be accessed as RESOURCE.

Package

cl-webdav

Source

resources.lisp (file)

Methods
Method: create-collection RESOURCE

A collection is created by creating the corresponding directory in the file system (using the Common Lisp function ENSURE-DIRECTORIES-EXIST.

Source

file-resources.lisp (file)

Generic Function: create-dav-dispatcher RESOURCE-CLASS &optional MS-WORKAROUND-P

Creates and returns a dispatcher for the class
RESOURCE-CLASS which must be a subclass of RESOURCE. If MS-WORKAROUND-P is true (which is the default), OPTIONS requests are always handled irrespective of the results of ACCEPT-REQUEST-P - this is needed to work around problems with some Microsoft DAV clients.

Package

cl-webdav

Source

handlers.lisp (file)

Methods
Method: create-dav-dispatcher (RESOURCE-CLASS (eql authorized-file-resource)) &optional MS-WORKAROUND-P around

This :AROUND method wraps the normal DAV dispatcher with one that checks basic HTTP authentication first.

Source

authorized-file-resources.lisp (file)

Method: create-dav-dispatcher (RESOURCE-CLASS standard-class) &optional MS-WORKAROUND-P
Method: create-dav-dispatcher (RESOURCE-CLASS symbol) &optional MS-WORKAROUND-P
Generic Function: file-resource-base-path-namestring RESOURCE-CLASS

This generic function is called for subclasses of
FILE-RESOURCE to determine the base pathname that’s currently being used, i.e. the part of the filesystem where the files served by the DAV server are stored. The function must return the namestring of the truename of an absolute pathname denoting a directory, specifically it must return a string starting and ending with slashes. (Note: This should work on Windows as well.) You can specialize this function (either on the class or on the name of the class) if you want.

The default method returns the current value of *FILE-RESOURCE-BASE-PATH-NAMESTRING*.

Package

cl-webdav

Source

file-resources.lisp (file)

Methods
Method: file-resource-base-path-namestring (RESOURCE-CLASS (eql authorized-file-resource))

We compute the base path by attaching the downcased user name to the base path returned for plain file resources. We also create the directory if necessary.

Source

authorized-file-resources.lisp (file)

Method: file-resource-base-path-namestring (RESOURCE-CLASS standard-class)
Method: file-resource-base-path-namestring (RESOURCE-CLASS symbol)
Generic Function: file-resource-base-uri RESOURCE-CLASS

This generic function is called for subclasses of
FILE-RESOURCE to determine the base URI that’s currently being used, i.e. the prefix the script name of a resource’s URI must have in order to be valid. (In other words: this URI represents the top-level collection of the DAV server.) The function must return a string which starts with a slash and does /not/ end with a slash and is correctly URL-encoded. You can specialize this function (either on the class or on the name of the class) if you want.

The default method returns the current value of *FILE-RESOURCE-BASE-URI*.

Package

cl-webdav

Source

file-resources.lisp (file)

Methods
Method: file-resource-base-uri (RESOURCE-CLASS standard-class)
Method: file-resource-base-uri (RESOURCE-CLASS symbol)
Generic Function: get-content RESOURCE STREAM LENGTH

This function is called for PUT requests and
must read LENGTH octets of data from the (flexi) stream STREAM and store them in a place appropriate for the resource RESOURCE.

Package

cl-webdav

Source

resources.lisp (file)

Methods
Method: get-content (RESOURCE file-resource) STREAM LENGTH

To implement this method, we simply open the corresponding file for writing and read its contents (as chunks of octets) from the stream.

Source

file-resources.lisp (file)

Generic Function: get-dead-properties RESOURCE

This function must return all dead properties
of the resource RESOURCE as a list of XML elements structured as XMLS nodes. There’s a default method but you should definitely specialize this for production servers.

Package

cl-webdav

Source

resources.lisp (file)

Methods
Method: get-dead-properties (RESOURCE file-resource)
Source

file-resources.lisp (file)

Method: get-dead-properties RESOURCE
Generic Function: move-dead-properties SOURCE DESTINATION

This function must move all dead properties of
the resource SOURCE to the resource DESTINATION. There’s a default method but you should definitely specialize this for production servers.

Package

cl-webdav

Source

resources.lisp (file)

Methods
Method: move-dead-properties (SOURCE file-resource) (DESTINATION file-resource)
Source

file-resources.lisp (file)

Method: move-dead-properties SOURCE DESTINATION
Generic Function: move-resource SOURCE DESTINATION

This function must "move" the (contents of
the) resource SOURCE in such a way that it can in the future be accessed as DESTINATION. It doesn’t have to deal with dead properties, and it can assume that SOURCE doesn’t have children in case it’s a collection.

Package

cl-webdav

Source

resources.lisp (file)

Methods
Method: move-resource (SOURCE file-resource) (DESTINATION file-resource)

A file resource is moved by moving its counterpart in the file system (using the Common Lisp function RENAME-FILE).

Source

file-resources.lisp (file)

Generic Function: remove-dead-properties RESOURCE

This function must remove all dead properties
of the resource RESOURCE. There’s a default method but you should definitely specialize this for production servers.

Package

cl-webdav

Source

resources.lisp (file)

Methods
Method: remove-dead-properties (RESOURCE file-resource)
Source

file-resources.lisp (file)

Method: remove-dead-properties RESOURCE
Generic Function: remove-dead-property RESOURCE PROPERTY

This function must remove the currently stored
dead property designated by PROPERTY (an XMLS node) of the resource RESOURCE. There’s a default method but you should definitely specialize this for production servers.

Package

cl-webdav

Source

resources.lisp (file)

Methods
Method: remove-dead-property (RESOURCE file-resource) PROPERTY
Source

file-resources.lisp (file)

Method: remove-dead-property RESOURCE PROPERTY
Generic Function: remove-resource RESOURCE

This function must completely remove the
resource RESOURCE. It doesn’t have to deal with dead properties, and it can assume that RESOURCE doesn’t have children in case it’s a collection.

Package

cl-webdav

Source

resources.lisp (file)

Methods
Method: remove-resource (RESOURCE file-resource)

A file resource is removed by removing the corresponding file in the file system.

Source

file-resources.lisp (file)

Generic Function: resource-children RESOURCE

This function must return a list of all
children of RESOURCE (which themselves are RESOURCE objects). You must specialize this generic function for your own classes.

Package

cl-webdav

Source

resources.lisp (file)

Methods
Method: resource-children (RESOURCE file-resource)

The children of a (collection) file resource are the contents of the corresponding directory in the file system.

Source

file-resources.lisp (file)

Generic Function: resource-collection-p RESOURCE

This function must return a true value if the
resource RESOURCE is a collection. You must specialize this generic function for your own classes.

Package

cl-webdav

Source

resources.lisp (file)

Methods
Method: resource-collection-p (RESOURCE file-resource)

A file resource is a collection iff the corresponding file is a directory.

Source

file-resources.lisp (file)

Generic Function: resource-content-language RESOURCE

This function should return either NIL or a
language tag as defined in section 14.13 of RFC 2068. If the value returned by this function is not NIL, it will also be used as the ‘Content-Language’ header returned for GET requests. There’s a default method which always returns NIL.

Package

cl-webdav

Source

resources.lisp (file)

Methods
Method: resource-content-language RESOURCE
Generic Function: resource-content-type RESOURCE

This function must return a string denoting
the MIME type of the resource RESOURCE. It will only be called if RESOURCE is /not/ a collection. There’s a default method which always returns "application/octet-stream", but most likely you’ll want to specialize this for your own classes.

Package

cl-webdav

Source

resources.lisp (file)

Methods
Method: resource-content-type (RESOURCE file-resource)

We use Hunchentoot’s MIME-TYPE function to determine the resource’s content type based on the type component of its pathname.

Source

file-resources.lisp (file)

Method: resource-content-type RESOURCE
Generic Function: resource-creation-date RESOURCE

This function must return a universal time
denoting the time the resource RESOURCE was created. There’s a default method which returns RESOURCE-WRITE-DATE, but most likely you’ll want to specialize this for you own classes.

Package

cl-webdav

Source

resources.lisp (file)

Methods
Method: resource-creation-date RESOURCE
Generic Function: resource-display-name RESOURCE

This function must return a string which,
according to the WebDAV RFC, "provides a name for the resource that is suitable for presentation to a user." You must specialize this generic function for your own classes.

Package

cl-webdav

Source

resources.lisp (file)

Methods
Method: resource-display-name (RESOURCE file-resource)

The display name is basically the real path with the base path stripped off. But we also make sure to convert Windows backslashes to Unix slashes.

Source

file-resources.lisp (file)

Generic Function: resource-etag RESOURCE

This function should return an ETag for the
resource RESOURCE or NIL. If the value returned by this function is not NIL, it will also be used as the ‘ETag’ header returned for GET requests. There’s a default method which synthesizes a value based on the script name and the write date of the resource, and in most cases you probably don’t need to specialize this function.

Package

cl-webdav

Source

resources.lisp (file)

Methods
Method: resource-etag RESOURCE
Generic Function: resource-exists RESOURCE

This function must return a true value if the
resource RESOURCE exists on the server and NIL otherwise. You must specialize this generic function for your own classes.

Package

cl-webdav

Source

resources.lisp (file)

Methods
Method: resource-exists (RESOURCE file-resource)

A file resource exists iff the corresponding file exists.

Source

file-resources.lisp (file)

Generic Function: resource-length RESOURCE

This function must return an integer denoting
the length of the resource RESOURCE in octets. You must specialize this generic function for your own classes.

Package

cl-webdav

Source

resources.lisp (file)

Methods
Method: resource-length (RESOURCE file-resource)

The length of a file resource is the length of the corresponding file in octets.

Source

file-resources.lisp (file)

Generic Function: resource-parent RESOURCE

This function must return a RESOURCE object
which is the parent resource of RESOURCE or NIL if there is no parent. You must specialize this generic function for your own classes.

Package

cl-webdav

Source

resources.lisp (file)

Methods
Method: resource-parent (RESOURCE file-resource)

To determine the parent of a file resource we "walk up" the script name and map the result to a pathname in the file system.

Source

file-resources.lisp (file)

Generic Function: resource-script-name OBJECT
Generic Function: (setf resource-script-name) NEW-VALUE OBJECT
Package

cl-webdav

Methods
Method: resource-script-name (RESOURCE resource)
Method: (setf resource-script-name) NEW-VALUE (RESOURCE resource)

This slot holds the script name
(see HUNCHENTOOT:SCRIPT-NAME) that was used to create the resource. For objects you create yourself, you must provide a meaningful value that can be used to access the resource.

Source

resources.lisp (file)

Generic Function: resource-source RESOURCE

This function should return either NIL or a
DAV "source" XML node (structured as an XMLS node) that, according to the WebDAV RFC, "identifies the resource that contains the unprocessed source of the link’s source." There’s a default method which always returns NIL.

Package

cl-webdav

Source

resources.lisp (file)

Methods
Method: resource-source RESOURCE
Generic Function: resource-type RESOURCE

This function should return either NIL or a
DAV "resourcetype" XML node (structured as an XMLS node) that, according to the WebDAV RFC, "specifies the nature of the resource." There’s a default method which returns something fitting for collections and NIL otherwise, and in most cases you probably don’t need to specialize this function.

Package

cl-webdav

Source

resources.lisp (file)

Methods
Method: resource-type RESOURCE
Generic Function: resource-uri-prefix RESOURCE

This function must return a string which is
the part of a resource’s HTTP or HTTPS URI that comprises the scheme, the host, and the port and ends with a slash - something like "http://localhost:4242/" or "https://www.lisp.org/".

The default method synthesizes this from the information Hunchentoot provides and usually you only have to write your own method if you’re sitting behind a proxy.

Package

cl-webdav

Source

resources.lisp (file)

Methods
Method: resource-uri-prefix RESOURCE
Generic Function: resource-write-date RESOURCE

This function must return a universal time
denoting the time the resource RESOURCE was last modified. You must specialize this generic function for your own classes.

Package

cl-webdav

Source

resources.lisp (file)

Methods
Method: resource-write-date (RESOURCE file-resource)

As the write date of a resource we return the write date of the corresponding file (or the current time in case we can’t determine the file’s write date).

Source

file-resources.lisp (file)

Generic Function: send-content RESOURCE STREAM

This function is called for GET requests and
must send the complete contents of the (non-collection) resource RESOURCE to the (flexi) stream STREAM.

Package

cl-webdav

Source

resources.lisp (file)

Methods
Method: send-content (RESOURCE file-resource) STREAM

To implement this method, we simply open the corresponding file for reading and send its contents (as chunks of octets) to the stream.

Source

file-resources.lisp (file)

Generic Function: set-dead-property RESOURCE PROPERTY

This function must replace the currently
stored dead property designated by PROPERTY (an XMLS node) of the resource RESOURCE with PROPERTY, i.e. PROPERTY doubles as the property itself and as the property designator. There’s a default method but you should definitely specialize this for production servers.

Package

cl-webdav

Source

resources.lisp (file)

Methods
Method: set-dead-property (RESOURCE file-resource) PROPERTY
Source

file-resources.lisp (file)

Method: set-dead-property RESOURCE PROPERTY

Previous: , Up: Exported definitions   [Contents][Index]

4.1.4 Classes

Class: authorized-file-resource ()

A subclass of FILE-RESOURCE representing file resources which are associated with a certain user.

Package

cl-webdav

Source

authorized-file-resources.lisp (file)

Direct superclasses

file-resource (class)

Class: file-resource ()

A subclass of RESOURCE representing resources
which are mapped to a subtree of the local file system.

Package

cl-webdav

Source

file-resources.lisp (file)

Direct superclasses

resource (class)

Direct subclasses

authorized-file-resource (class)

Direct methods
Direct slots
Slot: real-path

The pathname of the resource within the local file system.

Initargs

:real-path

Readers

real-path (generic function)

Writers

(setf real-path) (generic function)

Class: resource ()

This is the base class you’ll have to subclass
if you want to create your own custom DAV server. Each object of this class represents one resource on the server and most of the time these objects are created by the server using only
the :SCRIPT-NAME initarg. If you need more initialization to happen, write an :AFTER method for INITIALIZE-INSTANCE.

See the file ‘file-resources.lisp’ for an example of a subclass of RESOURCE.

Package

cl-webdav

Source

resources.lisp (file)

Direct superclasses

standard-object (class)

Direct subclasses

file-resource (class)

Direct methods
Direct slots
Slot: script-name

This slot holds the script name
(see HUNCHENTOOT:SCRIPT-NAME) that was used to create the resource. For objects you create yourself, you must provide a meaningful value that can be used to access the resource.

Initargs

:script-name

Readers

resource-script-name (generic function)

Writers

(setf resource-script-name) (generic function)


Previous: , Up: Definitions   [Contents][Index]

4.2 Internal definitions


Next: , Previous: , Up: Internal definitions   [Contents][Index]

4.2.1 Constants

Constant: +buffer-length+

Length of buffers used for internal purposes.

Package

cl-webdav

Source

specials.lisp (file)

Constant: +dav-property-alist+

An alist mapping the (names of the) standard DAV properties to functions handling them.

Package

cl-webdav

Source

specials.lisp (file)

Constant: +dav-property-designators+

A list of XMLS nodes which are property designators for all DAV (live) properties defined by the WebDAV RFC. Computed at load time from +DAV-PROPERTY-ALIST+.

Package

cl-webdav

Source

properties.lisp (file)

Constant: +latin-1+

A FLEXI-STREAMS external format for ISO-8859-1.

Package

cl-webdav

Source

specials.lisp (file)

Constant: +utf-8+

A FLEXI-STREAMS external format for UTF-8.

Package

cl-webdav

Source

specials.lisp (file)

Constant: +webdav-dtd+

This is used to validate incoming XML. Obviously, this is not a "real" DTD, but the idea should be clear.

Package

cl-webdav

Source

specials.lisp (file)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

4.2.2 Special variables

Special Variable: *property-hash*

The hash table that by default is used to store dead properties in RAM.

Package

cl-webdav

Source

specials.lisp (file)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

4.2.3 Macros

Macro: defconstant NAME VALUE &optional DOC

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

Package

cl-webdav

Source

specials.lisp (file)

Macro: define-return-code-shortcut NAME RETURN-CODE

Defines a function called NAME which just sets the HTTP return code to RETURN-CODE and then ends the current handler by calling ABORT-REQUEST-HANDLER.

Package

cl-webdav

Source

util.lisp (file)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

4.2.4 Functions

Function: all-dead-property-designators RESOURCE

Returns a list of XMLS nodes which are designators for all dead properties for the resource RESOURCE.

Package

cl-webdav

Source

properties.lisp (file)

Function: all-property-designators RESOURCE

Returns a list of XMLS nodes which are designators for all (dead and live) properties for the resource RESOURCE.

Package

cl-webdav

Source

properties.lisp (file)

Function: bad-gateway ()

Sets RETURN-CODE to +HTTP-BAD-GATEWAY+ and then calls ABORT-REQUEST-HANDLER.

Package

cl-webdav

Source

util.lisp (file)

Function: collect-properties RESOURCE PROPERTY-DESIGNATORS SHOW-CONTENT

Tries to collect all properties of the resource RESOURCE which are in the list PROPERTY-DESIGNATORS (which can also be the symbol T which means "all dead an live properties". SHOW-CONTENT is interpreted as in PROPSTAT. Returns the corresponding "response" DAV node as an XMLS node.

Package

cl-webdav

Source

properties.lisp (file)

Function: compute-real-path SCRIPT-NAME

Computes the "real path" of a file resource from the request’s script name.

Package

cl-webdav

Source

file-resources.lisp (file)

Function: conflict ()

Sets RETURN-CODE to +HTTP-CONFLICT+ and then calls ABORT-REQUEST-HANDLER.

Package

cl-webdav

Source

util.lisp (file)

Function: constantly-nil &rest ARGS

Does the same as the result of (CONSTANTLY NIL).

Package

cl-webdav

Source

specials.lisp (file)

Function: copy-handler &optional MOVEP

The handler for COPY requests which internally uses COPY-OR-MOVE-RESOURCE* to do the actual work. Also doubles as a handler for MOVE requests if MOVEP is true.

Package

cl-webdav

Source

handlers.lisp (file)

Function: copy-or-move-resource* SOURCE DESTINATION MOVEP DEPTH

Copies or moves (depending on the generalized boolean MOVEP) the resource denoted by SOURCE to (the resource denoted by) DESTINATION. If DEPTH is NIL, recurses down to the children (if any) as well. Returns a list of conses where the car is an HTTP return code and the cdr is the corresponding (source) resource for exceptional situations encountered during the process.

Package

cl-webdav

Source

resources.lisp (file)

Function: copy-properties FROM-KEY TO-KEY

Copies (using COPY-TREE) properties stored under the (EQUAL) key FROM-KEY (if any) to the key TO-KEY.

Package

cl-webdav

Source

properties.lisp (file)

Function: creation-date RESOURCE

This is the function that is called for the "creationdate" property. It returns the result of RESOURCE-CREATION-DATE as an ISO 8601 string within a DAV XML node.

Package

cl-webdav

Source

resources.lisp (file)

Function: dav-dispatcher REQUEST &optional RESOURCE-CLASS

A generic Hunchentoot dispatcher (corresponding to the resource class RESOURCE-CLASS) for all DAV methods. The handler which is returned will have *RESOURCE-CLASS* bound to RESOURCE-CLASS. In theory, you could use this as your dispatcher (which doesn’t call ACCEPT-REQUEST-P first), but it’s not exported and only used internally by CREATE-DAV-DISPATCHER.

Package

cl-webdav

Source

handlers.lisp (file)

Function: dav-property-function PROPERTY

Returns the function which is responsible to retrieve the DAV "live" property PROPERTY, where PROPERTY can either be an XMLS node or a string denoting the local name of the corresponding node. If PROPERTY doesn’t denote a DAV property, this function returns NIL.

Package

cl-webdav

Source

properties.lisp (file)

Function: delete-handler ()

The handler for DELETE requests. Uses REMOVE-RESOURCE* to do the actual work.

Package

cl-webdav

Source

handlers.lisp (file)

Function: failed-dependency ()

Sets RETURN-CODE to +HTTP-FAILED-DEPENDENCY+ and then calls ABORT-REQUEST-HANDLER.

Package

cl-webdav

Source

util.lisp (file)

Function: forbidden ()

Sets RETURN-CODE to +HTTP-FORBIDDEN+ and then calls ABORT-REQUEST-HANDLER.

Package

cl-webdav

Source

util.lisp (file)

Function: get-content-length RESOURCE

This is the function that is called for the "getcontentlength" property. It simply returns the result of RESOURCE-LENGTH as a string.

Package

cl-webdav

Source

resources.lisp (file)

Function: get-content-type RESOURCE

This is the function that is called for the "getcontenttype" property. It simply returns the result of RESOURCE-CONTENT-TYPE for non-collections and "httpd/unix-directory" for collections.

Package

cl-webdav

Source

resources.lisp (file)

Function: get-dead-property RESOURCE PROPERTY-DESIGNATOR

Returns the dead property denoted by the XMLS node PROPERTY-DESIGNATOR of the resource RESOURCE or +HTTP-NOT-FOUND+ if such a property doesn’t exist.

Package

cl-webdav

Source

properties.lisp (file)

Function: get-handler &optional HEAD-REQUEST-P

The handler for GET requests. Serves the contents of the resource using SEND-CONTENT and sets up the HTTP headers correctly. Also doubles as handler for HEAD requests if HEAD-REQUEST-P is true.

Package

cl-webdav

Source

handlers.lisp (file)

Function: get-last-modified RESOURCE

This is the function that is called for the "getlastmodified" property. It returns the result of RESOURCE-WRITE-DATE as an RFC 1123 string within a DAV XML node.

Package

cl-webdav

Source

resources.lisp (file)

Function: get-property RESOURCE PROPERTY-DESIGNATOR

Returns the (live or dead) property denoted by the XMLS node PROPERTY-DESIGNATOR of the resource RESOURCE or +HTTP-NOT-FOUND+ if such a property doesn’t exist.

Package

cl-webdav

Source

properties.lisp (file)

Function: get-resource &optional SCRIPT-NAME

Creates and returns an object of the type stored in *RESOURCE-CLASS* corresponding to the script name SCRIPT-NAME.

Package

cl-webdav

Source

resources.lisp (file)

Function: head-handler ()

The handler for HEAD requests - the actual work is done by GET-HANDLER.

Package

cl-webdav

Source

handlers.lisp (file)

Function: ignore-non-dav-elements NODE

Helper function which recursively walks the XMLS node NODE and returns an equivalent node with all non-DAV elements removed (except for those in :ANY positions).

Package

cl-webdav

Source

xml.lisp (file)

Function: iso-8601-date UNIVERSAL-TIME

Returns a string representing the universal time UNIVERSAL-TIME as an ISO-8601-formatted date.

Package

cl-webdav

Source

util.lisp (file)

Function: make-xmls-builder ()

Creates and returns an instance of the XMLS-BUILDER class.

Package

cl-webdav

Source

xml.lisp (file)

Function: make-xmls-node &key LOCAL-NAME NAMESPACE-URI ATTRIBUTES CHILDREN

Creates and returns an XMLS node with the local name LOCAL-NAME, the namespace URI NAMESPACE-URI, the attributes ATTRIBUTES (a list of attributes) and the children CHILDREN (also a list). An XMLS node is a list with two or more elements where the first element is the name, the second element is the list of attributes, and all the following elements (if any) are the children. The name is either a string (if there is no namespace), or a cons where the car is the local name and the cdr is the namespace URI.

An attribute is a list of two elements where the first element is the name and the second element is the value. Attribute names are structured like XMLS node names.

Package

cl-webdav

Source

xml.lisp (file)

Function: md5-hex STRING

Calculates the md5 sum of the string STRING and returns it as a hex string.

Package

cl-webdav

Source

util.lisp (file)

Function: method-not-allowed ()

Sets RETURN-CODE to +HTTP-METHOD-NOT-ALLOWED+ and then calls ABORT-REQUEST-HANDLER.

Package

cl-webdav

Source

util.lisp (file)

Function: mkcol-handler ()

The handler for MKCOL requests which uses CREATE-COLLECTION internally.

Package

cl-webdav

Source

handlers.lisp (file)

Function: move-handler ()

The handler for MOVE requests. Calls COPY-HANDLER to do the actual work.

Package

cl-webdav

Source

handlers.lisp (file)

Function: move-properties FROM-KEY TO-KEY

Moves properties stored under the (EQUAL) key FROM-KEY (if any) to the key TO-KEY.

Package

cl-webdav

Source

properties.lisp (file)

Function: multi-status RESULTS &optional DEFAULT-RETURN-CODE

Utility function which returns a MULTISTATUS response to the HTTP client which is based on RESULTS. RESULTS must be a list of conses where the cdr is the resource and the car is the corresponding status code. If RESULTS is NIL, not MUTILSTATUS response will be generated and DEFAULT-RETURN-CODE will be used instead.

Package

cl-webdav

Source

handlers.lisp (file)

Function: not-found ()

Sets RETURN-CODE to +HTTP-NOT-FOUND+ and then calls ABORT-REQUEST-HANDLER.

Package

cl-webdav

Source

util.lisp (file)

Function: not-implemented ()

Sets RETURN-CODE to +HTTP-NOT-IMPLEMENTED+ and then calls ABORT-REQUEST-HANDLER.

Package

cl-webdav

Source

util.lisp (file)

Function: parse-propfind OCTETS

Helper function for PROPFIND-HANDLER which parses the XML stored in OCTETS (an array of octets) which is supposed to be either empty or the body of a PROPFIND request. Returns as its first value a list of the requested properties (as XMLS nodes) or T (denoting all properties) and as its second value a boolean which is T iff the client wants only property names.

Package

cl-webdav

Source

properties.lisp (file)

Function: precondition-failed ()

Sets RETURN-CODE to +HTTP-PRECONDITION-FAILED+ and then calls ABORT-REQUEST-HANDLER.

Package

cl-webdav

Source

util.lisp (file)

Function: property-equal PROPERTY1 PROPERTY2

Two (XMLS nodes denoting) properties are equal iff they have the same local name and the same namespace URI.

Package

cl-webdav

Source

properties.lisp (file)

Function: propfind-handler ()

The handler for PROPFIND requests. Parses the request’s content body (if there is one) and returns a corresponding "multistatus" XML element using the methods for live and dead properties.

Package

cl-webdav

Source

handlers.lisp (file)

Function: proppatch-handler ()

The handler for PROPPATCH requests. Parses the request’s content body, modifies the dead properties as specified and returns a corresponding "multistatus" XML element.

Package

cl-webdav

Source

handlers.lisp (file)

Function: propstat RESOURCE PROPERTY-DESIGNATOR SHOW-CONTENT

Uses GET-PROPERTY to try to retrieve the property designated by PROPERTY-DESIGNATOR from the resource RESOURCE. Returns as its first value an HTTP return code (with +HTTP-OK+ denoting that the property was found) and as its second value the property designator or (if SHOW-CONTENT is true and the property was found) the property itself.

Package

cl-webdav

Source

properties.lisp (file)

Function: put-handler ()

The handler for PUT requests. Uses GET-CONTENT to create a new resource from the contents sent by the client.

Package

cl-webdav

Source

handlers.lisp (file)

Function: remove-content XMLS-NODE

Returns an XMLS node which has the same name and attributes as the XMLS node XMLS-NODE but an empty body.

Package

cl-webdav

Source

xml.lisp (file)

Function: remove-properties KEY

Removes any properties stored under the (EQUAL) key KEY.

Package

cl-webdav

Source

properties.lisp (file)

Function: remove-resource* RESOURCE

Removes the resource RESOURCE and (if necessary) its children using REMOVE-RESOURCE. Returns a list of conses where the car is an HTTP return code and the cdr is the corresponding resource for exceptional situations encountered during the process.

Package

cl-webdav

Source

resources.lisp (file)

Function: resource-created RESOURCE

Utility function which sets up Hunchentoot’s *REPLY* object for a +HTTP-CREATED+ response corresponding to the newly-created resource RESOURCE.

Package

cl-webdav

Source

resources.lisp (file)

Function: resource-href RESOURCE

Returns a URL-encoded version of the resource’s script name for use in HREF elements in property XML.

Package

cl-webdav

Source

resources.lisp (file)

Function: resource-name RESOURCE

Retrieves and returns the "name part" of the script name of RESOURCE, i.e. the last non-empty string behind a slash. Note that the result can be NIL. This is a bit similar to CL:FILE-NAMESTRING.

Package

cl-webdav

Source

resources.lisp (file)

Function: retrieve-properties KEY

Retrieves the properties stored under the (EQUAL) key KEY.

Package

cl-webdav

Source

properties.lisp (file)

Function: spec NODE

Returns the corresponding "spec" from +WEBDAV-DTD+ if NODE is a DAV node in XMLS format.

Package

cl-webdav

Source

xml.lisp (file)

Function: starts-with-p SEQ PREFIX &key TEST

Returns a true value if the sequence SEQ starts with the sequence PREFIX whereby the elements are compared using TEST.

Package

cl-webdav

Source

util.lisp (file)

Function: status-line RETURN-CODE

Returns a full HTTP/1.1 status line corresponding to the return code RETURN-CODE.

Package

cl-webdav

Source

util.lisp (file)

Function: store-properties KEY PROPERTIES

Stores PROPERTIES under the (EQUAL) key KEY.

Package

cl-webdav

Source

properties.lisp (file)

Function: url-decode* STRING

Tries to URL-decode STRING with the UTF-8 external format first and then uses LATIN-1 if that fails.

Package

cl-webdav

Source

util.lisp (file)

Function: walk-xmls-node HANDLER XMLS-NODE

Helper function for SERIALIZE-XMLS-NODE. Walks recursively through the XMLS node XMLS-NODE and calls the SAX handler HANDLER when appropriate.

Package

cl-webdav

Source

xml.lisp (file)

Function: whitespace-string-p THING

Returns a true value if THING is a string consisting solely of whitespace.

Package

cl-webdav

Source

util.lisp (file)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

4.2.5 Generic functions

Generic Function: create-resource RESOURCE-CLASS SCRIPT-NAME

Creates and returns an object of type
RESOURCE-CLASS (a subclass of RESOURCE) corresponding to the script name SCRIPT-NAME (which is already URL-decoded).

Package

cl-webdav

Source

resources.lisp (file)

Methods
Method: create-resource (RESOURCE-CLASS standard-class) SCRIPT-NAME
Method: create-resource (RESOURCE-CLASS-NAME symbol) SCRIPT-NAME
Generic Function: element-stack OBJECT
Generic Function: (setf element-stack) NEW-VALUE OBJECT
Package

cl-webdav

Methods
Method: element-stack (XMLS-BUILDER xmls-builder)
Method: (setf element-stack) NEW-VALUE (XMLS-BUILDER xmls-builder)

Used to keep track of the stack
of "open" (encountered SAX:START-ELEMENT, but didn’t see SAX:END-ELEMENT yet) elements.

Source

xml.lisp (file)

Generic Function: real-path OBJECT
Generic Function: (setf real-path) NEW-VALUE OBJECT
Package

cl-webdav

Methods
Method: real-path (FILE-RESOURCE file-resource)
Method: (setf real-path) NEW-VALUE (FILE-RESOURCE file-resource)

The pathname of the resource within the local file system.

Source

file-resources.lisp (file)

Generic Function: root OBJECT
Generic Function: (setf root) NEW-VALUE OBJECT
Package

cl-webdav

Methods
Method: root (XMLS-BUILDER xmls-builder)
Method: (setf root) NEW-VALUE (XMLS-BUILDER xmls-builder)

The root of the XML document.

Source

xml.lisp (file)

Generic Function: validate NODE SPEC POS

Validates the node NODE against the spec (see
function SPEC) SPEC. SPEC can be a string (denoting the local name of a DAV node), one of the symbols :ANY, :EMPTY, or :PCDATA, a two element list beginning with * or ?, a list beginning with :CHOICE, or any other list denoting a sequence. If POS is NIL, SPEC must be a string and the node itself is validated to conform to SPEC and a true value is returned iff that’s the case. Otherwise, POS should be a non-negative integer N, and the Nth child of NODE will be validated. The true value returned in this case (i.e. if the Nth child is valid) will be another integer denoting the next child which has to be validated. Furthermore, whitespace is removed from elements which can only have element content.

Package

cl-webdav

Source

xml.lisp (file)

Methods
Method: validate NODE (SPEC list) POS

Compound validation for choices, repetitions, and sequences - dispatces on the first element of SPEC.

Method: validate NODE (SPEC (eql pcdata)) POS

Succeeds (and this increments POS by 1) if the child at position POS is not an XMLS node (i.e. if it’s character data).

Method: validate NODE (SPEC (eql empty)) POS

Succeeds (with a return value of 1) iff there are no children.

Method: validate NODE (SPEC (eql any)) POS

Always succeeds and eats up all remaining children of NODE.

Method: validate NODE (SPEC string) POS

Validates NODE or the child at position POS to conform to the spec for the DAV node named SPEC.


Previous: , Up: Internal definitions   [Contents][Index]

4.2.6 Classes

Class: xmls-builder ()

This is like CXML’s XMLS-BUILDER class, but
without attempting to be compatible with XMLS, so we can get namespaces right.

Package

cl-webdav

Source

xml.lisp (file)

Direct superclasses

default-handler (class)

Direct methods
  • characters (method)
  • end-element (method)
  • start-element (method)
  • end-document (method)
  • root (method)
  • root (method)
  • element-stack (method)
  • element-stack (method)
Direct slots
Slot: element-stack

Used to keep track of the stack
of "open" (encountered SAX:START-ELEMENT, but didn’t see SAX:END-ELEMENT yet) elements.

Readers

element-stack (generic function)

Writers

(setf element-stack) (generic function)

Slot: root

The root of the XML document.

Readers

root (generic function)

Writers

(setf root) (generic function)


Previous: , Up: Top   [Contents][Index]

Appendix A Indexes


Next: , Previous: , Up: Indexes   [Contents][Index]

A.1 Concepts

Jump to:   C   F   L  
Index Entry  Section

C
cl-webdav.asd: The cl-webdav<dot>asd file
cl-webdav/authorized-file-resources.lisp: The cl-webdav/authorized-file-resources<dot>lisp file
cl-webdav/file-resources.lisp: The cl-webdav/file-resources<dot>lisp file
cl-webdav/handlers.lisp: The cl-webdav/handlers<dot>lisp file
cl-webdav/packages.lisp: The cl-webdav/packages<dot>lisp file
cl-webdav/properties.lisp: The cl-webdav/properties<dot>lisp file
cl-webdav/resources.lisp: The cl-webdav/resources<dot>lisp file
cl-webdav/specials.lisp: The cl-webdav/specials<dot>lisp file
cl-webdav/util.lisp: The cl-webdav/util<dot>lisp file
cl-webdav/xml.lisp: The cl-webdav/xml<dot>lisp file

F
File, Lisp, cl-webdav.asd: The cl-webdav<dot>asd file
File, Lisp, cl-webdav/authorized-file-resources.lisp: The cl-webdav/authorized-file-resources<dot>lisp file
File, Lisp, cl-webdav/file-resources.lisp: The cl-webdav/file-resources<dot>lisp file
File, Lisp, cl-webdav/handlers.lisp: The cl-webdav/handlers<dot>lisp file
File, Lisp, cl-webdav/packages.lisp: The cl-webdav/packages<dot>lisp file
File, Lisp, cl-webdav/properties.lisp: The cl-webdav/properties<dot>lisp file
File, Lisp, cl-webdav/resources.lisp: The cl-webdav/resources<dot>lisp file
File, Lisp, cl-webdav/specials.lisp: The cl-webdav/specials<dot>lisp file
File, Lisp, cl-webdav/util.lisp: The cl-webdav/util<dot>lisp file
File, Lisp, cl-webdav/xml.lisp: The cl-webdav/xml<dot>lisp file

L
Lisp File, cl-webdav.asd: The cl-webdav<dot>asd file
Lisp File, cl-webdav/authorized-file-resources.lisp: The cl-webdav/authorized-file-resources<dot>lisp file
Lisp File, cl-webdav/file-resources.lisp: The cl-webdav/file-resources<dot>lisp file
Lisp File, cl-webdav/handlers.lisp: The cl-webdav/handlers<dot>lisp file
Lisp File, cl-webdav/packages.lisp: The cl-webdav/packages<dot>lisp file
Lisp File, cl-webdav/properties.lisp: The cl-webdav/properties<dot>lisp file
Lisp File, cl-webdav/resources.lisp: The cl-webdav/resources<dot>lisp file
Lisp File, cl-webdav/specials.lisp: The cl-webdav/specials<dot>lisp file
Lisp File, cl-webdav/util.lisp: The cl-webdav/util<dot>lisp file
Lisp File, cl-webdav/xml.lisp: The cl-webdav/xml<dot>lisp file

Jump to:   C   F   L  

Next: , Previous: , Up: Indexes   [Contents][Index]

A.2 Functions

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

(
(setf element-stack): Internal generic functions
(setf element-stack): Internal generic functions
(setf node-attributes): Exported functions
(setf node-children): Exported functions
(setf real-path): Internal generic functions
(setf real-path): Internal generic functions
(setf resource-script-name): Exported generic functions
(setf resource-script-name): Exported generic functions
(setf root): Internal generic functions
(setf root): Internal generic functions

A
accept-request-p: Exported generic functions
accept-request-p: Exported generic functions
accept-request-p: Exported generic functions
accept-request-p: Exported generic functions
all-dead-property-designators: Internal functions
all-property-designators: Internal functions

B
bad-gateway: Internal functions

C
collect-properties: Internal functions
compute-real-path: Internal functions
conflict: Internal functions
constantly-nil: Internal functions
copy-dead-properties: Exported generic functions
copy-dead-properties: Exported generic functions
copy-dead-properties: Exported generic functions
copy-handler: Internal functions
copy-or-move-resource*: Internal functions
copy-properties: Internal functions
copy-resource: Exported generic functions
copy-resource: Exported generic functions
create-collection: Exported generic functions
create-collection: Exported generic functions
create-dav-dispatcher: Exported generic functions
create-dav-dispatcher: Exported generic functions
create-dav-dispatcher: Exported generic functions
create-dav-dispatcher: Exported generic functions
create-resource: Internal generic functions
create-resource: Internal generic functions
create-resource: Internal generic functions
creation-date: Internal functions

D
dav-dispatcher: Internal functions
dav-node: Exported functions
dav-property-function: Internal functions
defconstant: Internal macros
define-return-code-shortcut: Internal macros
delete-handler: Internal functions

E
element-stack: Internal generic functions
element-stack: Internal generic functions

F
failed-dependency: Internal functions
file-resource-base-path-namestring: Exported generic functions
file-resource-base-path-namestring: Exported generic functions
file-resource-base-path-namestring: Exported generic functions
file-resource-base-path-namestring: Exported generic functions
file-resource-base-uri: Exported generic functions
file-resource-base-uri: Exported generic functions
file-resource-base-uri: Exported generic functions
forbidden: Internal functions
Function, (setf node-attributes): Exported functions
Function, (setf node-children): Exported functions
Function, all-dead-property-designators: Internal functions
Function, all-property-designators: Internal functions
Function, bad-gateway: Internal functions
Function, collect-properties: Internal functions
Function, compute-real-path: Internal functions
Function, conflict: Internal functions
Function, constantly-nil: Internal functions
Function, copy-handler: Internal functions
Function, copy-or-move-resource*: Internal functions
Function, copy-properties: Internal functions
Function, creation-date: Internal functions
Function, dav-dispatcher: Internal functions
Function, dav-node: Exported functions
Function, dav-property-function: Internal functions
Function, delete-handler: Internal functions
Function, failed-dependency: Internal functions
Function, forbidden: Internal functions
Function, get-content-length: Internal functions
Function, get-content-type: Internal functions
Function, get-dead-property: Internal functions
Function, get-handler: Internal functions
Function, get-last-modified: Internal functions
Function, get-property: Internal functions
Function, get-resource: Internal functions
Function, head-handler: Internal functions
Function, ignore-non-dav-elements: Internal functions
Function, iso-8601-date: Internal functions
Function, local-name: Exported functions
Function, make-xmls-builder: Internal functions
Function, make-xmls-node: Internal functions
Function, md5-hex: Internal functions
Function, method-not-allowed: Internal functions
Function, mkcol-handler: Internal functions
Function, move-handler: Internal functions
Function, move-properties: Internal functions
Function, multi-status: Internal functions
Function, namespace-uri: Exported functions
Function, node-attributes: Exported functions
Function, node-children: Exported functions
Function, not-found: Internal functions
Function, not-implemented: Internal functions
Function, options-dispatcher: Exported functions
Function, options-handler: Exported functions
Function, parse-dav: Exported functions
Function, parse-propfind: Internal functions
Function, precondition-failed: Internal functions
Function, property-equal: Internal functions
Function, propfind-handler: Internal functions
Function, proppatch-handler: Internal functions
Function, propstat: Internal functions
Function, put-handler: Internal functions
Function, remove-content: Internal functions
Function, remove-properties: Internal functions
Function, remove-resource*: Internal functions
Function, resource-created: Internal functions
Function, resource-href: Internal functions
Function, resource-name: Internal functions
Function, retrieve-properties: Internal functions
Function, serialize-xmls-node: Exported functions
Function, spec: Internal functions
Function, starts-with-p: Internal functions
Function, status-line: Internal functions
Function, store-properties: Internal functions
Function, url-decode*: Internal functions
Function, walk-xmls-node: Internal functions
Function, whitespace-string-p: Internal functions
Function, xmls-node-p: Exported functions

G
Generic Function, (setf element-stack): Internal generic functions
Generic Function, (setf real-path): Internal generic functions
Generic Function, (setf resource-script-name): Exported generic functions
Generic Function, (setf root): Internal generic functions
Generic Function, accept-request-p: Exported generic functions
Generic Function, copy-dead-properties: Exported generic functions
Generic Function, copy-resource: Exported generic functions
Generic Function, create-collection: Exported generic functions
Generic Function, create-dav-dispatcher: Exported generic functions
Generic Function, create-resource: Internal generic functions
Generic Function, element-stack: Internal generic functions
Generic Function, file-resource-base-path-namestring: Exported generic functions
Generic Function, file-resource-base-uri: Exported generic functions
Generic Function, get-content: Exported generic functions
Generic Function, get-dead-properties: Exported generic functions
Generic Function, move-dead-properties: Exported generic functions
Generic Function, move-resource: Exported generic functions
Generic Function, real-path: Internal generic functions
Generic Function, remove-dead-properties: Exported generic functions
Generic Function, remove-dead-property: Exported generic functions
Generic Function, remove-resource: Exported generic functions
Generic Function, resource-children: Exported generic functions
Generic Function, resource-collection-p: Exported generic functions
Generic Function, resource-content-language: Exported generic functions
Generic Function, resource-content-type: Exported generic functions
Generic Function, resource-creation-date: Exported generic functions
Generic Function, resource-display-name: Exported generic functions
Generic Function, resource-etag: Exported generic functions
Generic Function, resource-exists: Exported generic functions
Generic Function, resource-length: Exported generic functions
Generic Function, resource-parent: Exported generic functions
Generic Function, resource-script-name: Exported generic functions
Generic Function, resource-source: Exported generic functions
Generic Function, resource-type: Exported generic functions
Generic Function, resource-uri-prefix: Exported generic functions
Generic Function, resource-write-date: Exported generic functions
Generic Function, root: Internal generic functions
Generic Function, send-content: Exported generic functions
Generic Function, set-dead-property: Exported generic functions
Generic Function, validate: Internal generic functions
get-content: Exported generic functions
get-content: Exported generic functions
get-content-length: Internal functions
get-content-type: Internal functions
get-dead-properties: Exported generic functions
get-dead-properties: Exported generic functions
get-dead-properties: Exported generic functions
get-dead-property: Internal functions
get-handler: Internal functions
get-last-modified: Internal functions
get-property: Internal functions
get-resource: Internal functions

H
head-handler: Internal functions

I
ignore-non-dav-elements: Internal functions
iso-8601-date: Internal functions

L
local-name: Exported functions

M
Macro, defconstant: Internal macros
Macro, define-return-code-shortcut: Internal macros
make-xmls-builder: Internal functions
make-xmls-node: Internal functions
md5-hex: Internal functions
Method, (setf element-stack): Internal generic functions
Method, (setf real-path): Internal generic functions
Method, (setf resource-script-name): Exported generic functions
Method, (setf root): Internal generic functions
Method, accept-request-p: Exported generic functions
Method, accept-request-p: Exported generic functions
Method, accept-request-p: Exported generic functions
Method, copy-dead-properties: Exported generic functions
Method, copy-dead-properties: Exported generic functions
Method, copy-resource: Exported generic functions
Method, create-collection: Exported generic functions
Method, create-dav-dispatcher: Exported generic functions
Method, create-dav-dispatcher: Exported generic functions
Method, create-dav-dispatcher: Exported generic functions
Method, create-resource: Internal generic functions
Method, create-resource: Internal generic functions
Method, element-stack: Internal generic functions
Method, file-resource-base-path-namestring: Exported generic functions
Method, file-resource-base-path-namestring: Exported generic functions
Method, file-resource-base-path-namestring: Exported generic functions
Method, file-resource-base-uri: Exported generic functions
Method, file-resource-base-uri: Exported generic functions
Method, get-content: Exported generic functions
Method, get-dead-properties: Exported generic functions
Method, get-dead-properties: Exported generic functions
Method, move-dead-properties: Exported generic functions
Method, move-dead-properties: Exported generic functions
Method, move-resource: Exported generic functions
Method, real-path: Internal generic functions
Method, remove-dead-properties: Exported generic functions
Method, remove-dead-properties: Exported generic functions
Method, remove-dead-property: Exported generic functions
Method, remove-dead-property: Exported generic functions
Method, remove-resource: Exported generic functions
Method, resource-children: Exported generic functions
Method, resource-collection-p: Exported generic functions
Method, resource-content-language: Exported generic functions
Method, resource-content-type: Exported generic functions
Method, resource-content-type: Exported generic functions
Method, resource-creation-date: Exported generic functions
Method, resource-display-name: Exported generic functions
Method, resource-etag: Exported generic functions
Method, resource-exists: Exported generic functions
Method, resource-length: Exported generic functions
Method, resource-parent: Exported generic functions
Method, resource-script-name: Exported generic functions
Method, resource-source: Exported generic functions
Method, resource-type: Exported generic functions
Method, resource-uri-prefix: Exported generic functions
Method, resource-write-date: Exported generic functions
Method, root: Internal generic functions
Method, send-content: Exported generic functions
Method, set-dead-property: Exported generic functions
Method, set-dead-property: Exported generic functions
Method, validate: Internal generic functions
Method, validate: Internal generic functions
Method, validate: Internal generic functions
Method, validate: Internal generic functions
Method, validate: Internal generic functions
method-not-allowed: Internal functions
mkcol-handler: Internal functions
move-dead-properties: Exported generic functions
move-dead-properties: Exported generic functions
move-dead-properties: Exported generic functions
move-handler: Internal functions
move-properties: Internal functions
move-resource: Exported generic functions
move-resource: Exported generic functions
multi-status: Internal functions

N
namespace-uri: Exported functions
node-attributes: Exported functions
node-children: Exported functions
not-found: Internal functions
not-implemented: Internal functions

O
options-dispatcher: Exported functions
options-handler: Exported functions

P
parse-dav: Exported functions
parse-propfind: Internal functions
precondition-failed: Internal functions
property-equal: Internal functions
propfind-handler: Internal functions
proppatch-handler: Internal functions
propstat: Internal functions
put-handler: Internal functions

R
real-path: Internal generic functions
real-path: Internal generic functions
remove-content: Internal functions
remove-dead-properties: Exported generic functions
remove-dead-properties: Exported generic functions
remove-dead-properties: Exported generic functions
remove-dead-property: Exported generic functions
remove-dead-property: Exported generic functions
remove-dead-property: Exported generic functions
remove-properties: Internal functions
remove-resource: Exported generic functions
remove-resource: Exported generic functions
remove-resource*: Internal functions
resource-children: Exported generic functions
resource-children: Exported generic functions
resource-collection-p: Exported generic functions
resource-collection-p: Exported generic functions
resource-content-language: Exported generic functions
resource-content-language: Exported generic functions
resource-content-type: Exported generic functions
resource-content-type: Exported generic functions
resource-content-type: Exported generic functions
resource-created: Internal functions
resource-creation-date: Exported generic functions
resource-creation-date: Exported generic functions
resource-display-name: Exported generic functions
resource-display-name: Exported generic functions
resource-etag: Exported generic functions
resource-etag: Exported generic functions
resource-exists: Exported generic functions
resource-exists: Exported generic functions
resource-href: Internal functions
resource-length: Exported generic functions
resource-length: Exported generic functions
resource-name: Internal functions
resource-parent: Exported generic functions
resource-parent: Exported generic functions
resource-script-name: Exported generic functions
resource-script-name: Exported generic functions
resource-source: Exported generic functions
resource-source: Exported generic functions
resource-type: Exported generic functions
resource-type: Exported generic functions
resource-uri-prefix: Exported generic functions
resource-uri-prefix: Exported generic functions
resource-write-date: Exported generic functions
resource-write-date: Exported generic functions
retrieve-properties: Internal functions
root: Internal generic functions
root: Internal generic functions

S
send-content: Exported generic functions
send-content: Exported generic functions
serialize-xmls-node: Exported functions
set-dead-property: Exported generic functions
set-dead-property: Exported generic functions
set-dead-property: Exported generic functions
spec: Internal functions
starts-with-p: Internal functions
status-line: Internal functions
store-properties: Internal functions

U
url-decode*: Internal functions

V
validate: Internal generic functions
validate: Internal generic functions
validate: Internal generic functions
validate: Internal generic functions
validate: Internal generic functions
validate: Internal generic functions

W
walk-xmls-node: Internal functions
whitespace-string-p: Internal functions

X
xmls-node-p: Exported functions

Jump to:   (  
A   B   C   D   E   F   G   H   I   L   M   N   O   P   R   S   U   V   W   X  

Next: , Previous: , Up: Indexes   [Contents][Index]

A.3 Variables

Jump to:   *   +  
C   E   R   S  
Index Entry  Section

*
*allowed-methods*: Exported special variables
*dav-compliance-classes*: Exported special variables
*file-resource-base-path-namestring*: Exported special variables
*file-resource-base-uri*: Exported special variables
*property-hash*: Internal special variables
*resource-class*: Exported special variables

+
+buffer-length+: Internal constants
+dav-property-alist+: Internal constants
+dav-property-designators+: Internal constants
+latin-1+: Internal constants
+utf-8+: Internal constants
+webdav-dtd+: Internal constants

C
Constant, +buffer-length+: Internal constants
Constant, +dav-property-alist+: Internal constants
Constant, +dav-property-designators+: Internal constants
Constant, +latin-1+: Internal constants
Constant, +utf-8+: Internal constants
Constant, +webdav-dtd+: Internal constants

E
element-stack: Internal classes

R
real-path: Exported classes
root: Internal classes

S
script-name: Exported classes
Slot, element-stack: Internal classes
Slot, real-path: Exported classes
Slot, root: Internal classes
Slot, script-name: Exported classes
Special Variable, *allowed-methods*: Exported special variables
Special Variable, *dav-compliance-classes*: Exported special variables
Special Variable, *file-resource-base-path-namestring*: Exported special variables
Special Variable, *file-resource-base-uri*: Exported special variables
Special Variable, *property-hash*: Internal special variables
Special Variable, *resource-class*: Exported special variables

Jump to:   *   +  
C   E   R   S  

Previous: , Up: Indexes   [Contents][Index]

A.4 Data types

Jump to:   A   C   F   P   R   S   X  
Index Entry  Section

A
authorized-file-resource: Exported classes

C
cl-webdav: The cl-webdav system
cl-webdav: The cl-webdav package
Class, authorized-file-resource: Exported classes
Class, file-resource: Exported classes
Class, resource: Exported classes
Class, xmls-builder: Internal classes

F
file-resource: Exported classes

P
Package, cl-webdav: The cl-webdav package

R
resource: Exported classes

S
System, cl-webdav: The cl-webdav system

X
xmls-builder: Internal classes

Jump to:   A   C   F   P   R   S   X