MCPcopy Create free account
hub / github.com/apache/httpd / dav_can_auto_checkout

Function dav_can_auto_checkout

modules/dav/main/util.c:1912–1958  ·  view source on GitHub ↗

dav_can_auto_checkout * * Determine whether auto-checkout is enabled for a resource. * r - the request_rec * resource - the resource * auto_version - the value of the auto_versionable hook for the resource * lockdb - pointer to lock database (opened if necessary) * auto_checkout - set to 1 if auto-checkout enabled */

Source from the content-addressed store, hash-verified

1910 * auto_checkout - set to 1 if auto-checkout enabled
1911 */
1912static dav_error * dav_can_auto_checkout(
1913 request_rec *r,
1914 dav_resource *resource,
1915 dav_auto_version auto_version,
1916 dav_lockdb **lockdb,
1917 int *auto_checkout)
1918{
1919 dav_error *err;
1920 dav_lock *lock_list;
1921
1922 *auto_checkout = 0;
1923
1924 if (auto_version == DAV_AUTO_VERSION_ALWAYS) {
1925 *auto_checkout = 1;
1926 }
1927 else if (auto_version == DAV_AUTO_VERSION_LOCKED) {
1928 if (*lockdb == NULL) {
1929 const dav_hooks_locks *locks_hooks = DAV_GET_HOOKS_LOCKS(r);
1930
1931 if (locks_hooks == NULL) {
1932 return dav_new_error(r->pool, HTTP_INTERNAL_SERVER_ERROR, 0, 0,
1933 "Auto-checkout is only enabled for locked resources, "
1934 "but there is no lock provider.");
1935 }
1936
1937 if ((err = (*locks_hooks->open_lockdb)(r, 0, 0, lockdb)) != NULL) {
1938 return dav_push_error(r->pool, HTTP_INTERNAL_SERVER_ERROR, 0,
1939 "Cannot open lock database to determine "
1940 "auto-versioning behavior.",
1941 err);
1942 }
1943 }
1944
1945 if ((err = dav_lock_query(*lockdb, resource, &lock_list)) != NULL) {
1946 return dav_push_error(r->pool,
1947 HTTP_INTERNAL_SERVER_ERROR, 0,
1948 "The locks could not be queried for "
1949 "determining auto-versioning behavior.",
1950 err);
1951 }
1952
1953 if (lock_list != NULL)
1954 *auto_checkout = 1;
1955 }
1956
1957 return NULL;
1958}
1959
1960/* see mod_dav.h for docco */
1961DAV_DECLARE(dav_error *) dav_auto_checkout(

Callers 1

dav_auto_checkoutFunction · 0.85

Calls 3

dav_new_errorFunction · 0.85
dav_push_errorFunction · 0.85
dav_lock_queryFunction · 0.85

Tested by

no test coverage detected