Последняя группа, которую мы рассмотрим, отвечает за функционирование механизма блокировок. Она не является обязательной, но необходима для реализации методов WebDAV: Lock и Unlock.
get_supportedlock
Возвращает значение свойства supportedlock для ресурса.
parse_locktoken
Парсит поступивший токен блокировки. Тут мы создаем и возвращаем структуру dav_locktoken.
format_locktoken
Преобразуем структуру dav_locktoken в строку URI.
compare_locktoken
Сравниваем два токена блокировок.
open_lockdb
Открывает и подготавливает хранилище блокировок. Dav-провайдер может воспользоваться значением директивы DAVLockDB для размещения своего хранилища (значение можно получить с помощью функции dav_get_lockdb_path()).
close_lockdb
Хук завершения работы с блокировками.
remove_locknull_state
Выводим ресурс из состояния lock-null.
create_lock
Создаем блокировку для ресурса. В обработчике этого хука должен быть создан токен новой блокировки.
get_locks
Получить все блокировки указанного ресурса.
Теперь, после рассмотрения основных групп хуков модуля mod_dav, перейдем к практике. И посмотрим на код модуля-провайдера. Я не буду мешать код с текстом, поэтому все пояснения оформлены в виде комментариев к коду.