### Method

# EDataServer WebDAVSession principal_property_search_sync

since: 3.26

#### Declaration [src]

    gboolean
    e_webdav_session_principal_property_search_sync (
      EWebDAVSession* webdav,
      const gchar* uri,
      gboolean apply_to_principal_collection_set,
      const gchar* match_ns_uri,
      const gchar* match_property,
      const gchar* match_value,
      GSList** out_principals,
      GCancellable* cancellable,
      GError** error
    )

#### Description [src]

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`.

By default, the function searches all members (at any depth) of the collection identified by the `uri`. If `apply_to_principal_collection_set` is set to `TRUE`, the search is applied instead to each collection returned by `e_webdav_session_get_principal_collection_set_sync()` for the `uri`.

The `out_principals` is a `GSList` of `EWebDAVResource`, where the kind is set to `E_WEBDAV_RESOURCE_KIND_PRINCIPAL` and only href with displayname are filled. All other members of `EWebDAVResource` are not set.

Free the returned `out_principals` with g_slist_free_full (principals, e_webdav_resource_free); when no longer needed.

Available since: 3.26

#### Parameters

`uri`

  Type: `const gchar*`

  URI to issue the request for, or `NULL` to read from `ESource`.

  The argument can be `NULL`.
  The data is owned by the caller of the method.
  The value is a NUL terminated UTF-8 string.

`apply_to_principal_collection_set`

  Type: `gboolean`

  Whether to apply to principal-collection-set.

`match_ns_uri`

  Type: `const gchar*`

  Namespace URI of the property to search in, or `NULL` for `E_WEBDAV_NS_DAV`.

  The argument can be `NULL`.
  The data is owned by the caller of the method.
  The value is a NUL terminated UTF-8 string.

`match_property`

  Type: `const gchar*`

  Name of the property to search in.

  The data is owned by the caller of the method.
  The value is a NUL terminated UTF-8 string.

`match_value`

  Type: `const gchar*`

  A string value to search for.

  The data is owned by the caller of the method.
  The value is a NUL terminated UTF-8 string.

`out_principals`

  Type: A list of `EWebDAVResource*`

  Return location for matching principals.

  The argument will be set by the function.
  The caller of the method takes ownership of the returned data, and is responsible for freeing it.

`cancellable`

  Type: `GCancellable`

  Optional `GCancellable` object, or `NULL`.

  The argument can be `NULL`.
  The data is owned by the caller of the method.

`error`

  Type: `GError **`

  The return location for a recoverable error.

  The argument can be `NULL`.
  If the return location is not `NULL`, then you must initialize it to a `NULL` `GError*`.
  The argument will be left initialized to `NULL` by the method if there are no errors.
  In case of error, the argument will be set to a newly allocated `GError`; the caller will take ownership of the data, and be responsible for freeing it.

#### Return value

Type: `gboolean`

Whether succeeded. Note it can report success also when no matching principal had been found.