### Class

# EDataServer WebDAVSession

since: 3.26

#### Description [src]

    class EDataServer.WebDAVSession : EDataServer.SoupSession
    {
      /* No available fields */
    }

Contains only private data that should be read and manipulated using the functions below.

Available since: 3.26

#### Hierarchy

#### Ancestors

- ESoupSession
- SoupSession
- GObject

#### Constructors

###### e_webdav_session_new

Creates a new `EWebDAVSession` associated with given `source`. The `EWebDAVSession` uses an `ESourceWebdav` extension on certain places when it’s defined for the `source`.

since: 3.26

#### Functions

###### e_webdav_session_util_free_privileges

Frees `privileges` returned by e_webdav_session_get_supported_privilege_set_sync(). The function does nothing, if `privileges` is `NULL`.

since: 3.26

###### e_webdav_session_util_item_href_equal

Compares two hrefs and return whether they reference the same item on the server. The comparison is done in a relaxed way, not considering scheme part and comparing the host name case insensitively, while the path case sensitively. It also ignores the username/password information in the hostname part, if it’s included. The function doesn’t decode any URI-encoded characters.

since: 3.40

###### e_webdav_session_util_maybe_dequote

Dequotes `text`, if it’s enclosed in double-quotes. The function changes `text`, it doesn’t allocate new string. The function does nothing when the `text` is not enclosed in double-quotes.

since: 3.26

#### Instance methods

###### e_webdav_session_acl_sync

Issues ACL request on the provided `uri`, or, in case it’s `NULL`, on the URI defined in associated `ESource`.

since: 3.26

###### e_webdav_session_copy_sync

Copies a resource identified by `source_uri` to `destination_uri` on the server. The `source_uri` can reference also collections, in which case the `depth` influences whether only the collection itself is copied (`E_WEBDAV_DEPTH_THIS`) or whether the collection with all its children is copied (`E_WEBDAV_DEPTH_INFINITY`).

since: 3.26

###### e_webdav_session_delete_sync

Deletes a resource identified by `uri` on the server. The URI can reference a collection, in which case `depth` should be `E_WEBDAV_DEPTH_INFINITY`. Use `depth` `E_WEBDAV_DEPTH_THIS` when deleting a regular resource, or `NULL`, to let the server use default Depth.

since: 3.26

###### e_webdav_session_delete_with_headers_sync

Deletes a resource identified by `uri` on the server. The URI can reference a collection, in which case `depth` should be `E_WEBDAV_DEPTH_INFINITY`. Use `depth` `E_WEBDAV_DEPTH_THIS` when deleting a regular resource, or `NULL`, to let the server use default Depth.

since: 3.50

###### e_webdav_session_ensure_full_uri

Converts possibly path-only `href` into a full URI under the `request_uri`. When the `request_uri` is `NULL`, the URI defined in associated `ESource` is used instead, taken from the `ESourceWebdav` extension, if defined.

since: 3.24

###### e_webdav_session_get_acl_restrictions_sync

Gets Access Control List (ACL) restrictions for the `uri`, or, in case it’s `NULL`, for the URI defined in associated `ESource`. The `out_principal_kind` is valid only if the `out_restrictions` contains #E_WEBDAV_ACL_RESTRICTION_REQUIRED_PRINCIPAL. The `out_principal_hrefs` is valid only if the `out_principal_kind` is valid and when it is #E_WEBDAV_ACE_PRINCIPAL_HREF.

since: 3.26

###### e_webdav_session_get_acl_sync

Gets Access Control List (ACL) for the `uri`, or, in case it’s `NULL`, for the URI defined in associated `ESource`.

since: 3.26

###### e_webdav_session_get_current_user_privilege_set_full_sync

Gets current user privileges for the `uri`, or, in case it’s `NULL`, for the URI defined in associated `ESource`, with optional read of the capabilities and what the user is allowed. See `e_webdav_session_options_sync()` for more information about the `out_capabilities` and `out_allows` values.

since: 3.26

###### e_webdav_session_get_current_user_privilege_set_sync

Gets current user privileges for the `uri`, or, in case it’s `NULL`, for the URI defined in associated `ESource`.

since: 3.26

###### e_webdav_session_get_data_sync

Reads a resource identified by `uri` from the server. The URI cannot reference a collection.

since: 3.26

###### e_webdav_session_get_last_dav_error_code

Returns last DAV error code as returned by the server. Each recognized code is enclosed in “[]” in the returned string, to be able to distinguish between them, in case the server returned multiple codes.

since: 3.36

###### e_webdav_session_get_last_dav_error_is_permission

No description available.

since: 3.36

###### e_webdav_session_get_principal_collection_set_sync

Gets list of principal collection href for the `uri`, or, in case it’s `NULL`, for the URI defined in associated `ESource`. The `out_principal_hrefs` are root collections that contain the principals that are available on the server that implements this resource.

since: 3.26

###### e_webdav_session_get_supported_privilege_set_sync

Gets supported privileges for the `uri`, or, in case it’s `NULL`, for the URI defined in associated `ESource`.

since: 3.26

###### e_webdav_session_get_sync

Reads a resource identified by `uri` from the server and writes it to the `stream`. The URI cannot reference a collection.

since: 3.26

###### e_webdav_session_getctag_sync

Issues a getctag property request for a collection identified by `uri`, or, in case it’s `NULL`, on the URI defined in associated `ESource`. The ctag is a collection tag, which changes whenever the collection changes (similar to etag). The getctag is an extension, thus the function can fail when the server doesn’t support it.

since: 3.26

###### e_webdav_session_list_sync

Lists content of the `uri`, or, in case it’s `NULL`, of the URI defined in associated `ESource`, which should point to a collection. The `flags` influences which properties are read for the resources.

since: 3.26

###### e_webdav_session_lock_resource_sync

Locks a resource identified by `uri`, or, in case it’s `NULL`, by the URI defined in associated `ESource`. It obtains a write lock with the given `lock_scope`.

since: 3.26

###### e_webdav_session_lock_sync

Locks a resource identified by `uri`, or, in case it’s `NULL`, on the URI defined in associated `ESource`.

since: 3.26

###### e_webdav_session_mkcalendar_sync

Creates a new calendar collection identified by `uri` on the server. The `supports` defines what component types can be stored into the created calendar collection. Only `E_WEBDAV_RESOURCE_SUPPORTS_NONE` and values related to iCalendar content can be used here. Using `E_WEBDAV_RESOURCE_SUPPORTS_NONE` means that everything is supported.

since: 3.26

###### e_webdav_session_mkcol_addressbook_sync

Creates a new address book collection identified by `uri` on the server.

since: 3.26

###### e_webdav_session_mkcol_sync

Creates a new generic collection identified by `uri` on the server. To create specific collections use `e_webdav_session_mkcalendar_sync()` or e_webdav_session_mkcol_addressbook_sync().

since: 3.26

###### e_webdav_session_move_sync

Moves a resource identified by `source_uri` to `destination_uri` on the server. The `source_uri` can reference also collections.

since: 3.26

###### e_webdav_session_new_message

No description available.

since: 3.26

###### e_webdav_session_options_sync

Issues OPTIONS request on the provided `uri`, or, in case it’s `NULL`, on the URI defined in associated `ESource`.

since: 3.26

###### e_webdav_session_post_sync

Issues POST request on the provided `uri`, or, in case it’s `NULL`, on the URI defined in associated `ESource`.

since: 3.32

###### e_webdav_session_principal_property_search_sync

Issues a DAV:principal-property-search for the `uri`, or, in case it’s `NULL`, for the URI defined in associated `ESource`. The DAV:principal-property-search performs a search for all principals whose properties contain character data that matches the search criteria `match_value` in `match_property` property of namespace `match_ns_uri`.

since: 3.26

###### e_webdav_session_propfind_sync

Issues PROPFIND request on the provided `uri`, or, in case it’s `NULL`, on the URI defined in associated `ESource`. On success, calls `func` for each returned DAV:propstat.

since: 3.26

###### e_webdav_session_proppatch_sync

Issues PROPPATCH request on the provided `uri`, or, in case it’s `NULL`, on the URI defined in associated `ESource`, with the `changes`. The order of requested changes inside `xml` is significant, unlike on other places.

since: 3.26

###### e_webdav_session_put_data_sync

Writes data to a resource identified by `uri` to the server. The URI cannot reference a collection.

since: 3.26

###### e_webdav_session_put_sync

Writes data from `stream` to a resource identified by `uri` to the server. The URI cannot reference a collection.

since: 3.26

###### e_webdav_session_refresh_lock_sync

Refreshes existing lock `lock_token` for a resource identified by `uri`, or, in case it’s `NULL`, on the URI defined in associated `ESource`. The `lock_token` is returned from `e_webdav_session_lock_sync()` and the `uri` should be the same as that used with e_webdav_session_lock_sync().

since: 3.26

###### e_webdav_session_replace_with_detailed_error

Tries to read detailed error information from `response_data`, if not provided, then from `message`‘s response_body. If the detailed error cannot be found, then does nothing, otherwise frees the content of `inout_error`, if any, and then populates it with an error message prefixed with `prefix`.

since: 3.26

###### e_webdav_session_report_sync

Issues REPORT request on the provided `uri`, or, in case it’s `NULL`, on the URI defined in associated `ESource`. On success, calls `func` for each returned DAV:propstat.

since: 3.26

###### e_webdav_session_set_acl_sync

Changes Access Control List (ACL) for the `uri`, or, in case it’s `NULL`, for the URI defined in associated `ESource`.

since: 3.26

###### e_webdav_session_traverse_mkcalendar_response

Traverses a CALDAV:mkcalendar-response response and calls `func` for each returned DAV:propstat.

since: 3.26

###### e_webdav_session_traverse_mkcol_response

Traverses a DAV:mkcol-response response and calls `func` for each returned DAV:propstat.

since: 3.26

###### e_webdav_session_traverse_multistatus_response

Traverses a DAV:multistatus response and calls `func` for each returned DAV:propstat.

since: 3.26

###### e_webdav_session_unlock_sync

Releases (unlocks) existing lock `lock_token` for a resource identified by `uri`, or, in case it’s `NULL`, on the URI defined in associated `ESource`. The `lock_token` is returned from `e_webdav_session_lock_sync()` and the `uri` should be the same as that used with e_webdav_session_lock_sync().

since: 3.26

###### e_webdav_session_update_properties_sync

Updates properties (set/remove) on the provided `uri`, or, in case it’s `NULL`, on the URI defined in associated `ESource`, with the `changes`. The order of `changes` is significant, unlike on other places.

since: 3.26

##### Methods inherited from ESoupSession (20)

###### e_soup_session_check_result

Checks result of the `message` and sets the `error` if it failed. When it failed and the `read_bytes` is provided, then these are set to `message`‘s response body, thus it can be used later.

since: 3.26

###### e_soup_session_dup_credentials

No description available.

since: 3.26

###### e_soup_session_get_authentication_requires_credentials

No description available.

since: 3.28

###### e_soup_session_get_force_http1

Returns whether it’s forced to use HTTP/1 for the messages created by the `session`. See `e_soup_session_set_force_http1()` for more information about the limitations.

since: 3.48

###### e_soup_session_get_handle_backoff_responses

Returns whether the `session` can handle backoff responses from the server. See `e_soup_session_set_handle_backoff_responses()` for more information about the limitations.

since: 3.54

###### e_soup_session_get_log_level

No description available.

since: 3.26

###### e_soup_session_get_source

Returns an `ESource` associated with the `session`, if such was set in the creation time.

since: 3.26

###### e_soup_session_get_ssl_error_details

Populates `out_certificate_pem` and `out_certificate_errors` with the last values returned on #G_TLS_ERROR_BAD_CERTIFICATE error.

since: 3.26

###### e_soup_session_handle_authentication_failure

Handles authentication failure and sets appropriate value to the `out_auth_result` for the provided `op_error` and used `credentials`. Converts the `op_error` into an appropriate error returned in the `error`.

since: 3.46

###### e_soup_session_new_message

Creates a new `SoupMessage`, similar to soup_message_new(), but also presets request headers with “User-Agent” to be “Evolution/version” and with “Connection” to be “close”.

since: 3.26

###### e_soup_session_new_message_from_uri

Creates a new `SoupMessage`, similar to soup_message_new_from_uri(), but also presets request headers with “User-Agent” to be “Evolution/version” and with “Connection” to be “close”.

since: 3.46

###### e_soup_session_prepare_message_send_sync

Prepares the `message` to be a sent asynchronously with e_soup_session_send_message(). The returned pointer is passed to the `e_soup_session_send_message()` as the prepare_data parameter.

since: 3.46

###### e_soup_session_send_message

Asynchronously sends the `message`. Finish the call with e_soup_session_send_message_finish().

since: 3.46

###### e_soup_session_send_message_finish

Finishes the call of e_soup_session_send_message(). This is supposed to be called from the callback passed to the e_soup_session_send_message().

since: 3.46

###### e_soup_session_send_message_simple_sync

Similar to e_soup_session_send_message_sync(), except it reads whole response content into memory and returns it as a `GByteArray`. Use `e_soup_session_send_message_sync()` when you want to have more control on the content read.

since: 3.26

###### e_soup_session_send_message_sync

Synchronously sends prepared message and returns `GInputStream` that can be used to read its contents.

since: 3.26

###### e_soup_session_set_credentials

Sets credentials to use for connection. Using `NULL` for `credentials` unsets previous value.

since: 3.26

###### e_soup_session_set_force_http1

Sets whether the messages created through the `session` using `e_soup_session_new_message()` or `e_soup_session_new_message_from_uri()` should force use of the HTTP/1, instead of trying HTTP/2 and fallback to HTTP/1, when the newer version cannot be used.

since: 3.48

###### e_soup_session_set_handle_backoff_responses

Sets whether to automatically handle backoff responses from the server, that is, when the server requests the client to retry later.

since: 3.54

###### e_soup_session_setup_logging

Setups logging for the `session`. The `logging_level` can be one of: “all” - log whole raw communication; “body” - the same as “all”; “headers” - log the headers only; “min” - minimal logging; “1” - the same as “all”. Any other value, including `NULL`, disables logging.

since: 3.26

##### Methods inherited from SoupSession (42)

Please see SoupSession for a full list of methods.

##### Methods inherited from GObject (43)

Please see GObject for a full list of methods.

#### Properties

##### Properties inherited from ESoupSession (4)

###### EDataServer.SoupSession:credentials

The `ENamedParameters` containing login credentials.

since: 3.26

###### EDataServer.SoupSession:force-http1

Whether the messages created by the session should force use of HTTP/1 instead of trying HTTP/2 first and fallback to the HTTP/1 when the newer version failed to connect.

since: 3.48

###### EDataServer.SoupSession:handle-backoff-responses

Set to `TRUE`, which is the default, to automatically handle backoff responses from the server, that is, when the server requests the client to retry later.

since: 3.54

###### EDataServer.SoupSession:source

The `ESource` being used for this soup session.

since: 3.26

##### Properties inherited from SoupSession (12)

###### Soup.Session:accept-language

If non-`NULL`, the value to use for the “Accept-Language” header on `SoupMessage`s sent from this session.

###### Soup.Session:accept-language-auto

If `TRUE`, `SoupSession` will automatically set the string for the “Accept-Language” header on every `SoupMessage` sent, based on the return value of `g_get_language_names()`.

###### Soup.Session:idle-timeout

Connection lifetime (in seconds) when idle. Any connection left idle longer than this will be closed.

###### Soup.Session:local-address

Sets the `GInetSocketAddress` to use for the client side of the connection.

###### Soup.Session:max-conns

The maximum number of connections that the session can open at once.

###### Soup.Session:max-conns-per-host

The maximum number of connections that the session can open at once to a given host.

###### Soup.Session:proxy-resolver

A `GProxyResolver` to use with this session.

###### Soup.Session:remote-connectable

Sets a socket to make outgoing connections on. This will override the default behaviour of opening TCP/IP sockets to the hosts specified in the URIs.

###### Soup.Session:timeout

The timeout (in seconds) for socket I/O operations (including connecting to a server, and waiting for a reply to an HTTP request).

###### Soup.Session:tls-database

Sets the `GTlsDatabase` to use for validating SSL/TLS certificates.

###### Soup.Session:tls-interaction

A `GTlsInteraction` object that will be passed on to any `GTlsConnection`s created by the session.

###### Soup.Session:user-agent

User-Agent string.

#### Signals

##### Signals inherited from SoupSession (2)

###### SoupSession::request-queued

Emitted when a request is queued on `session`.

###### SoupSession::request-unqueued

Emitted when a request is removed from `session`‘s queue, indicating that `session` is done with it.

##### Signals inherited from GObject (1)

###### GObject::notify

The notify signal is emitted on an object when one of its properties has its value set through g_object_set_property(), g_object_set(), et al.

#### Class structure

    struct EDataServerWebDAVSessionClass {
      ESoupSessionClass parent_class;
      gpointer reserved;

    }

No description available.

###### Class members

`parent_class: ESoupSessionClass`

  No description available.

`reserved: gpointer`

  No description available.