2. Элементы операции Sync
Операция Sync определяется как расширение операции поиска LDAP [RFC4511], где пользовательский агент каталога (directory user agent, DUA или клиент) посылает сообщение SearchRequest Message с элементом управления Sync Request Control, системный агент каталога (directory system agent, DSA или сервер) отвечает нулём или более сообщений SearchResultEntry Message, каждое из которых содержит элемент управления Sync State Control; нулём или более сообщений SearchResultReference Message, каждое из которых содержит элемент управления Sync State Control; нулём или более сообщений Sync Info Intermediate Response Message; и сообщением SearchResultDone Message с элементом управления Sync Done Control.
Для того, чтобы клиенты могли определить, поддерживает ли сервер данную операцию, серверам, осуществляющим данную операцию, следует (SHOULD) публиковать 1.3.6.1.4.1.4203.1.9.1.1 в качестве значения атрибута 'supportedControl' [RFC4512] в корне своей DSA-specific entry (DSE). Сервер может (MAY) избрать тактику афиширования данного расширения только в том случае, когда клиент авторизован (имеет право) использовать его.
2.1. Общие элементы ASN.1
2.1.1. syncUUID
Тип данных syncUUID — строка октетов (OCTET STRING), содержащая 128-битный (16-октетный) универсальный уникальный идентификатор (Universally Unique Identifier, UUID) [UUID].
syncUUID ::= OCTET STRING (SIZE(16)) -- constrained to UUID
2.1.2. syncCookie
syncCookie — введённая для удобства обозначения формулировка, указывающая на то, что, хотя тип syncCookie кодируется как строка октетов (OCTET STRING), его значение — непрозрачная величина, содержащая информацию о синхронизационной сессии и её состоянии. Как правило, информация о сессии включает в себя хэш операционных параметров, которые по требованию сервера нельзя изменять, а информация о состоянии синхронизации включает в себя порядковый номер подтверждения (журнала), порядковый номер изменения или отметку времени. Для удобства описания термин "нет куки" ("no cookie") указывает либо на нулевой куки, либо на куки с предварительно проинициализированным состоянием синхронизации.
syncCookie ::= OCTET STRING
2.2. Sync Request Control
Sync Request Control — элемент управления LDAP [RFC4511], в котором controlType — идентификатор объекта 1.3.6.1.4.1.4203.1.9.1.1, а controlValue — строка октетов (OCTET STRING), содержащая syncRequestValue, закодированное BER. Поле criticality элемента управления — либо TRUE, либо FALSE.
syncRequestValue ::= SEQUENCE { mode ENUMERATED { -- 0 unused refreshOnly (1), -- 2 reserved refreshAndPersist (3) }, cookie syncCookie OPTIONAL, reloadHint BOOLEAN DEFAULT FALSE }
Элемент управления Sync Request Control может применяться только для сообщений SearchRequest Message.