| Filename | /usr/share/perl5/Net/LDAP/ASN.pm |
| Statements | Executed 17 statements in 697µs |
| Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine |
|---|---|---|---|---|---|
| 2 | 2 | 2 | 34µs | 60µs | Net::LDAP::ASN::import |
| 1 | 1 | 1 | 26µs | 49µs | Net::LDAP::ASN::BEGIN@6 |
| Line | State ments |
Time on line |
Calls | Time in subs |
Code |
|---|---|---|---|---|---|
| 1 | |||||
| 2 | package Net::LDAP::ASN; | ||||
| 3 | |||||
| 4 | 1 | 600ns | $VERSION = "0.08"; | ||
| 5 | |||||
| 6 | 3 | 636µs | 2 | 72µs | # spent 49µs (26+23) within Net::LDAP::ASN::BEGIN@6 which was called:
# once (26µs+23µs) by Net::LDAP::Message::BEGIN@8 at line 6 # spent 49µs making 1 call to Net::LDAP::ASN::BEGIN@6
# spent 23µs making 1 call to Exporter::import |
| 7 | |||||
| 8 | 1 | 6µs | 1 | 51µs | my $asn = Convert::ASN1->new; # spent 51µs making 1 call to Convert::ASN1::new |
| 9 | |||||
| 10 | # spent 60µs (34+25) within Net::LDAP::ASN::import which was called 2 times, avg 30µs/call:
# once (22µs+17µs) by Net::LDAP::Message::BEGIN@8 at line 8 of Net/LDAP/Message.pm
# once (13µs+9µs) by Net::LDAP::BEGIN@14 at line 14 of Net/LDAP.pm | ||||
| 11 | 2 | 2µs | my $pkg = shift; | ||
| 12 | 2 | 3µs | my $caller = caller; | ||
| 13 | |||||
| 14 | 2 | 9µs | foreach my $macro (@_) { | ||
| 15 | 2 | 6µs | 2 | 25µs | my $obj = $asn->find($macro) # spent 25µs making 2 calls to Convert::ASN1::find, avg 13µs/call |
| 16 | or require Carp and Carp::croak("Unknown macro '$macro'"); | ||||
| 17 | |||||
| 18 | 2 | 13µs | *{"$caller\::$macro"} = \$obj; | ||
| 19 | } | ||||
| 20 | } | ||||
| 21 | |||||
| 22 | 1 | 4µs | 1 | 71.1ms | $asn->prepare(<<LDAP_ASN) or die $asn->error; # spent 71.1ms making 1 call to Convert::ASN1::prepare |
| 23 | |||||
| 24 | -- We have split LDAPMessage into LDAPResponse and LDAPRequest | ||||
| 25 | -- The purpose of this is two fold | ||||
| 26 | -- 1) for encode we don't want the protocolOp | ||||
| 27 | -- in the hierarchy as it is not really needed | ||||
| 28 | -- 2) For decode we do want it, this allows Net::LDAP::Message::decode | ||||
| 29 | -- to be much simpler. Decode will also be faster due to | ||||
| 30 | -- less elements in the CHOICE | ||||
| 31 | |||||
| 32 | LDAPRequest ::= SEQUENCE { | ||||
| 33 | messageID MessageID, | ||||
| 34 | --protocolOp | ||||
| 35 | CHOICE { | ||||
| 36 | bindRequest BindRequest, | ||||
| 37 | unbindRequest UnbindRequest, | ||||
| 38 | searchRequest SearchRequest, | ||||
| 39 | modifyRequest ModifyRequest, | ||||
| 40 | addRequest AddRequest, | ||||
| 41 | delRequest DelRequest, | ||||
| 42 | modDNRequest ModifyDNRequest, | ||||
| 43 | compareRequest CompareRequest, | ||||
| 44 | abandonRequest AbandonRequest, | ||||
| 45 | extendedReq ExtendedRequest} | ||||
| 46 | controls [0] Controls OPTIONAL } | ||||
| 47 | |||||
| 48 | LDAPResponse ::= SEQUENCE { | ||||
| 49 | messageID MessageID, | ||||
| 50 | protocolOp CHOICE { | ||||
| 51 | bindResponse BindResponse, | ||||
| 52 | searchResEntry SearchResultEntry, | ||||
| 53 | searchResDone SearchResultDone, | ||||
| 54 | searchResRef SearchResultReference, | ||||
| 55 | modifyResponse ModifyResponse, | ||||
| 56 | addResponse AddResponse, | ||||
| 57 | delResponse DelResponse, | ||||
| 58 | modDNResponse ModifyDNResponse, | ||||
| 59 | compareResponse CompareResponse, | ||||
| 60 | extendedResp ExtendedResponse, | ||||
| 61 | intermediateResponse IntermediateResponse } | ||||
| 62 | controls [0] Controls OPTIONAL } | ||||
| 63 | |||||
| 64 | MessageID ::= INTEGER -- (0 .. maxInt) | ||||
| 65 | |||||
| 66 | -- maxInt INTEGER ::= 2147483647 -- (2^^31 - 1) -- | ||||
| 67 | |||||
| 68 | LDAPString ::= OCTET STRING -- UTF8String ?? | ||||
| 69 | |||||
| 70 | LDAPOID ::= OCTET STRING | ||||
| 71 | |||||
| 72 | LDAPDN ::= LDAPString | ||||
| 73 | |||||
| 74 | RelativeLDAPDN ::= LDAPString | ||||
| 75 | |||||
| 76 | AttributeType ::= LDAPString | ||||
| 77 | |||||
| 78 | AttributeDescription ::= LDAPString | ||||
| 79 | |||||
| 80 | AttributeDescriptionList ::= SEQUENCE OF | ||||
| 81 | AttributeDescription | ||||
| 82 | |||||
| 83 | AttributeValue ::= OCTET STRING | ||||
| 84 | |||||
| 85 | AttributeValueAssertion ::= SEQUENCE { | ||||
| 86 | attributeDesc AttributeDescription, | ||||
| 87 | assertionValue AssertionValue } | ||||
| 88 | |||||
| 89 | AssertionValue ::= OCTET STRING | ||||
| 90 | |||||
| 91 | Attribute ::= SEQUENCE { | ||||
| 92 | type AttributeDescription, | ||||
| 93 | vals SET OF AttributeValue } | ||||
| 94 | |||||
| 95 | MatchingRuleId ::= LDAPString | ||||
| 96 | |||||
| 97 | LDAPResult ::= SEQUENCE { | ||||
| 98 | resultCode ENUMERATED { | ||||
| 99 | success (0), | ||||
| 100 | operationsError (1), | ||||
| 101 | protocolError (2), | ||||
| 102 | timeLimitExceeded (3), | ||||
| 103 | sizeLimitExceeded (4), | ||||
| 104 | compareFalse (5), | ||||
| 105 | compareTrue (6), | ||||
| 106 | authMethodNotSupported (7), | ||||
| 107 | strongAuthRequired (8), | ||||
| 108 | -- 9 reserved -- | ||||
| 109 | referral (10), -- new | ||||
| 110 | adminLimitExceeded (11), -- new | ||||
| 111 | unavailableCriticalExtension (12), -- new | ||||
| 112 | confidentialityRequired (13), -- new | ||||
| 113 | saslBindInProgress (14), -- new | ||||
| 114 | noSuchAttribute (16), | ||||
| 115 | undefinedAttributeType (17), | ||||
| 116 | inappropriateMatching (18), | ||||
| 117 | constraintViolation (19), | ||||
| 118 | attributeOrValueExists (20), | ||||
| 119 | invalidAttributeSyntax (21), | ||||
| 120 | -- 22-31 unused -- | ||||
| 121 | noSuchObject (32), | ||||
| 122 | aliasProblem (33), | ||||
| 123 | invalidDNSyntax (34), | ||||
| 124 | -- 35 reserved for undefined isLeaf -- | ||||
| 125 | aliasDereferencingProblem (36), | ||||
| 126 | -- 37-47 unused -- | ||||
| 127 | inappropriateAuthentication (48), | ||||
| 128 | invalidCredentials (49), | ||||
| 129 | insufficientAccessRights (50), | ||||
| 130 | busy (51), | ||||
| 131 | unavailable (52), | ||||
| 132 | unwillingToPerform (53), | ||||
| 133 | loopDetect (54), | ||||
| 134 | -- 55-63 unused -- | ||||
| 135 | namingViolation (64), | ||||
| 136 | objectClassViolation (65), | ||||
| 137 | notAllowedOnNonLeaf (66), | ||||
| 138 | notAllowedOnRDN (67), | ||||
| 139 | entryAlreadyExists (68), | ||||
| 140 | objectClassModsProhibited (69), | ||||
| 141 | -- 70 reserved for CLDAP -- | ||||
| 142 | affectsMultipleDSAs (71), -- new | ||||
| 143 | -- 72-79 unused -- | ||||
| 144 | other (80)} | ||||
| 145 | -- 81-90 reserved for APIs -- | ||||
| 146 | matchedDN LDAPDN, | ||||
| 147 | errorMessage LDAPString, | ||||
| 148 | referral [3] Referral OPTIONAL } | ||||
| 149 | |||||
| 150 | Referral ::= SEQUENCE OF LDAPURL | ||||
| 151 | |||||
| 152 | LDAPURL ::= LDAPString -- limited to characters permitted in URLs | ||||
| 153 | |||||
| 154 | Controls ::= SEQUENCE OF Control | ||||
| 155 | |||||
| 156 | -- Names changed here for backwards compat with previous | ||||
| 157 | -- Net::LDAP --GMB | ||||
| 158 | Control ::= SEQUENCE { | ||||
| 159 | type LDAPOID, -- controlType | ||||
| 160 | critical BOOLEAN OPTIONAL, -- DEFAULT FALSE, -- criticality | ||||
| 161 | value OCTET STRING OPTIONAL } -- controlValue | ||||
| 162 | |||||
| 163 | BindRequest ::= [APPLICATION 0] SEQUENCE { | ||||
| 164 | version INTEGER, -- (1 .. 127), | ||||
| 165 | name LDAPDN, | ||||
| 166 | authentication AuthenticationChoice } | ||||
| 167 | |||||
| 168 | AuthenticationChoice ::= CHOICE { | ||||
| 169 | simple [0] OCTET STRING, | ||||
| 170 | -- 1 and 2 reserved | ||||
| 171 | sasl [3] SaslCredentials } | ||||
| 172 | |||||
| 173 | SaslCredentials ::= SEQUENCE { | ||||
| 174 | mechanism LDAPString, | ||||
| 175 | credentials OCTET STRING OPTIONAL } | ||||
| 176 | |||||
| 177 | BindResponse ::= [APPLICATION 1] SEQUENCE { | ||||
| 178 | COMPONENTS OF LDAPResult, | ||||
| 179 | serverSaslCreds [7] OCTET STRING OPTIONAL } | ||||
| 180 | |||||
| 181 | UnbindRequest ::= [APPLICATION 2] NULL | ||||
| 182 | |||||
| 183 | SearchRequest ::= [APPLICATION 3] SEQUENCE { | ||||
| 184 | baseObject LDAPDN, | ||||
| 185 | scope ENUMERATED { | ||||
| 186 | baseObject (0), | ||||
| 187 | singleLevel (1), | ||||
| 188 | wholeSubtree (2) } | ||||
| 189 | derefAliases ENUMERATED { | ||||
| 190 | neverDerefAliases (0), | ||||
| 191 | derefInSearching (1), | ||||
| 192 | derefFindingBaseObj (2), | ||||
| 193 | derefAlways (3) } | ||||
| 194 | sizeLimit INTEGER , -- (0 .. maxInt), | ||||
| 195 | timeLimit INTEGER , -- (0 .. maxInt), | ||||
| 196 | typesOnly BOOLEAN, | ||||
| 197 | filter Filter, | ||||
| 198 | attributes AttributeDescriptionList } | ||||
| 199 | |||||
| 200 | Filter ::= CHOICE { | ||||
| 201 | and [0] SET OF Filter, | ||||
| 202 | or [1] SET OF Filter, | ||||
| 203 | not [2] Filter, | ||||
| 204 | equalityMatch [3] AttributeValueAssertion, | ||||
| 205 | substrings [4] SubstringFilter, | ||||
| 206 | greaterOrEqual [5] AttributeValueAssertion, | ||||
| 207 | lessOrEqual [6] AttributeValueAssertion, | ||||
| 208 | present [7] AttributeDescription, | ||||
| 209 | approxMatch [8] AttributeValueAssertion, | ||||
| 210 | extensibleMatch [9] MatchingRuleAssertion } | ||||
| 211 | |||||
| 212 | SubstringFilter ::= SEQUENCE { | ||||
| 213 | type AttributeDescription, | ||||
| 214 | -- at least one must be present | ||||
| 215 | substrings SEQUENCE OF CHOICE { | ||||
| 216 | initial [0] LDAPString, | ||||
| 217 | any [1] LDAPString, | ||||
| 218 | final [2] LDAPString } } | ||||
| 219 | |||||
| 220 | MatchingRuleAssertion ::= SEQUENCE { | ||||
| 221 | matchingRule [1] MatchingRuleId OPTIONAL, | ||||
| 222 | type [2] AttributeDescription OPTIONAL, | ||||
| 223 | matchValue [3] AssertionValue, | ||||
| 224 | dnAttributes [4] BOOLEAN OPTIONAL } -- DEFAULT FALSE } | ||||
| 225 | |||||
| 226 | SearchResultEntry ::= [APPLICATION 4] SEQUENCE { | ||||
| 227 | objectName LDAPDN, | ||||
| 228 | attributes PartialAttributeList } | ||||
| 229 | |||||
| 230 | PartialAttributeList ::= SEQUENCE OF SEQUENCE { | ||||
| 231 | type AttributeDescription, | ||||
| 232 | vals SET OF AttributeValue } | ||||
| 233 | |||||
| 234 | SearchResultReference ::= [APPLICATION 19] SEQUENCE OF LDAPURL | ||||
| 235 | |||||
| 236 | SearchResultDone ::= [APPLICATION 5] LDAPResult | ||||
| 237 | |||||
| 238 | ModifyRequest ::= [APPLICATION 6] SEQUENCE { | ||||
| 239 | object LDAPDN, | ||||
| 240 | modification SEQUENCE OF SEQUENCE { | ||||
| 241 | operation ENUMERATED { | ||||
| 242 | add (0), | ||||
| 243 | delete (1), | ||||
| 244 | replace (2), | ||||
| 245 | increment (3) } -- increment from RFC 4525 | ||||
| 246 | modification AttributeTypeAndValues } } | ||||
| 247 | |||||
| 248 | AttributeTypeAndValues ::= SEQUENCE { | ||||
| 249 | type AttributeDescription, | ||||
| 250 | vals SET OF AttributeValue } | ||||
| 251 | |||||
| 252 | ModifyResponse ::= [APPLICATION 7] LDAPResult | ||||
| 253 | |||||
| 254 | AddRequest ::= [APPLICATION 8] SEQUENCE { | ||||
| 255 | objectName LDAPDN, | ||||
| 256 | attributes AttributeList } | ||||
| 257 | |||||
| 258 | AttributeList ::= SEQUENCE OF SEQUENCE { | ||||
| 259 | type AttributeDescription, | ||||
| 260 | vals SET OF AttributeValue } | ||||
| 261 | |||||
| 262 | AddResponse ::= [APPLICATION 9] LDAPResult | ||||
| 263 | |||||
| 264 | DelRequest ::= [APPLICATION 10] LDAPDN | ||||
| 265 | |||||
| 266 | DelResponse ::= [APPLICATION 11] LDAPResult | ||||
| 267 | |||||
| 268 | ModifyDNRequest ::= [APPLICATION 12] SEQUENCE { | ||||
| 269 | entry LDAPDN, | ||||
| 270 | newrdn RelativeLDAPDN, | ||||
| 271 | deleteoldrdn BOOLEAN, | ||||
| 272 | newSuperior [0] LDAPDN OPTIONAL } | ||||
| 273 | |||||
| 274 | ModifyDNResponse ::= [APPLICATION 13] LDAPResult | ||||
| 275 | |||||
| 276 | CompareRequest ::= [APPLICATION 14] SEQUENCE { | ||||
| 277 | entry LDAPDN, | ||||
| 278 | ava AttributeValueAssertion } | ||||
| 279 | |||||
| 280 | CompareResponse ::= [APPLICATION 15] LDAPResult | ||||
| 281 | |||||
| 282 | AbandonRequest ::= [APPLICATION 16] MessageID | ||||
| 283 | |||||
| 284 | ExtendedRequest ::= [APPLICATION 23] SEQUENCE { | ||||
| 285 | requestName [0] LDAPOID, | ||||
| 286 | requestValue [1] OCTET STRING OPTIONAL } | ||||
| 287 | |||||
| 288 | ExtendedResponse ::= [APPLICATION 24] SEQUENCE { | ||||
| 289 | COMPONENTS OF LDAPResult, | ||||
| 290 | responseName [10] LDAPOID OPTIONAL, | ||||
| 291 | response [11] OCTET STRING OPTIONAL } | ||||
| 292 | |||||
| 293 | IntermediateResponse ::= [APPLICATION 25] SEQUENCE { | ||||
| 294 | responseName [0] LDAPOID OPTIONAL, | ||||
| 295 | responseValue [1] OCTET STRING OPTIONAL } | ||||
| 296 | |||||
| 297 | |||||
| 298 | -- Virtual List View Control | ||||
| 299 | VirtualListViewRequest ::= SEQUENCE { | ||||
| 300 | beforeCount INTEGER , --(0 .. maxInt), | ||||
| 301 | afterCount INTEGER , --(0 .. maxInt), | ||||
| 302 | CHOICE { | ||||
| 303 | byoffset [0] SEQUENCE { | ||||
| 304 | offset INTEGER , --(0 .. maxInt), | ||||
| 305 | contentCount INTEGER } --(0 .. maxInt) } | ||||
| 306 | byValue [1] AssertionValue } | ||||
| 307 | -- byValue [1] greaterThanOrEqual assertionValue } | ||||
| 308 | contextID OCTET STRING OPTIONAL } | ||||
| 309 | |||||
| 310 | VirtualListViewResponse ::= SEQUENCE { | ||||
| 311 | targetPosition INTEGER , --(0 .. maxInt), | ||||
| 312 | contentCount INTEGER , --(0 .. maxInt), | ||||
| 313 | virtualListViewResult ENUMERATED { | ||||
| 314 | success (0), | ||||
| 315 | operatonsError (1), | ||||
| 316 | unwillingToPerform (53), | ||||
| 317 | insufficientAccessRights (50), | ||||
| 318 | busy (51), | ||||
| 319 | timeLimitExceeded (3), | ||||
| 320 | adminLimitExceeded (11), | ||||
| 321 | sortControlMissing (60), | ||||
| 322 | indexRangeError (61), | ||||
| 323 | other (80) } | ||||
| 324 | contextID OCTET STRING OPTIONAL } | ||||
| 325 | |||||
| 326 | |||||
| 327 | LDAPEntry ::= COMPONENTS OF AddRequest | ||||
| 328 | |||||
| 329 | -- RFC-2891 Server Side Sorting Control | ||||
| 330 | -- Current parser does not allow a named entity following the ::= | ||||
| 331 | -- so we use a COMPONENTS OF hack | ||||
| 332 | SortRequestDummy ::= SEQUENCE { | ||||
| 333 | order SEQUENCE OF SEQUENCE { | ||||
| 334 | type OCTET STRING, | ||||
| 335 | orderingRule [0] OCTET STRING OPTIONAL, | ||||
| 336 | reverseOrder [1] BOOLEAN OPTIONAL } } | ||||
| 337 | |||||
| 338 | SortRequest ::= COMPONENTS OF SortRequestDummy | ||||
| 339 | |||||
| 340 | SortResult ::= SEQUENCE { | ||||
| 341 | sortResult ENUMERATED { | ||||
| 342 | success (0), -- results are sorted | ||||
| 343 | operationsError (1), -- server internal failure | ||||
| 344 | timeLimitExceeded (3), -- timelimit reached before | ||||
| 345 | -- sorting was completed | ||||
| 346 | strongAuthRequired (8), -- refused to return sorted | ||||
| 347 | -- results via insecure | ||||
| 348 | -- protocol | ||||
| 349 | adminLimitExceeded (11), -- too many matching entries | ||||
| 350 | -- for the server to sort | ||||
| 351 | noSuchAttribute (16), -- unrecognized attribute | ||||
| 352 | -- type in sort key | ||||
| 353 | inappropriateMatching (18), -- unrecognized or inappro- | ||||
| 354 | -- priate matching rule in | ||||
| 355 | -- sort key | ||||
| 356 | insufficientAccessRights (50), -- refused to return sorted | ||||
| 357 | -- results to this client | ||||
| 358 | busy (51), -- too busy to process | ||||
| 359 | unwillingToPerform (53), -- unable to sort | ||||
| 360 | other (80) } | ||||
| 361 | attributeType [0] AttributeDescription OPTIONAL } | ||||
| 362 | |||||
| 363 | -- RFC-2696 Paged Results Control | ||||
| 364 | realSearchControlValue ::= SEQUENCE { | ||||
| 365 | size INTEGER, -- (0..maxInt), | ||||
| 366 | -- requested page size from client | ||||
| 367 | -- result set size estimate from server | ||||
| 368 | cookie OCTET STRING } | ||||
| 369 | |||||
| 370 | -- draft-behera-ldap-password-policy-09 | ||||
| 371 | ppControlResponse ::= SEQUENCE { | ||||
| 372 | warning [0] PPWarning OPTIONAL, | ||||
| 373 | error [1] PPError OPTIONAL | ||||
| 374 | } | ||||
| 375 | PPWarning ::= CHOICE { | ||||
| 376 | timeBeforeExpiration [0] INTEGER, -- (0..maxInt), | ||||
| 377 | graceAuthNsRemaining [1] INTEGER -- (0..maxInt) | ||||
| 378 | } | ||||
| 379 | PPError ::= ENUMERATED { | ||||
| 380 | passwordExpired (0), | ||||
| 381 | accountLocked (1), | ||||
| 382 | changeAfterReset (2), | ||||
| 383 | passwordModNotAllowed (3), | ||||
| 384 | mustSupplyOldPassword (4), | ||||
| 385 | insufficientPasswordQuality (5), | ||||
| 386 | passwordTooShort (6), | ||||
| 387 | passwordTooYoung (7), | ||||
| 388 | passwordInHistory (8) | ||||
| 389 | } | ||||
| 390 | |||||
| 391 | -- RFC-4370 Proxied Authorization Control | ||||
| 392 | proxyAuthValue ::= SEQUENCE { | ||||
| 393 | proxyDN LDAPDN | ||||
| 394 | } | ||||
| 395 | |||||
| 396 | -- RFC-3296 ManageDsaIT Control | ||||
| 397 | ManageDsaIT ::= SEQUENCE { | ||||
| 398 | dummy INTEGER OPTIONAL -- it really is unused | ||||
| 399 | } | ||||
| 400 | |||||
| 401 | -- Persistent Search Control | ||||
| 402 | PersistentSearch ::= SEQUENCE { | ||||
| 403 | changeTypes INTEGER, | ||||
| 404 | changesOnly BOOLEAN, | ||||
| 405 | returnECs BOOLEAN | ||||
| 406 | } | ||||
| 407 | |||||
| 408 | -- Entry Change Notification Control | ||||
| 409 | EntryChangeNotification ::= SEQUENCE { | ||||
| 410 | changeType ENUMERATED { | ||||
| 411 | add (1), | ||||
| 412 | delete (2), | ||||
| 413 | modify (4), | ||||
| 414 | modDN (8) | ||||
| 415 | } | ||||
| 416 | previousDN LDAPDN OPTIONAL, -- modifyDN ops. only | ||||
| 417 | changeNumber INTEGER OPTIONAL -- if supported | ||||
| 418 | } | ||||
| 419 | |||||
| 420 | -- RFC-3876 Matched Values Control | ||||
| 421 | ValuesReturnFilter ::= SEQUENCE OF SimpleFilterItem | ||||
| 422 | |||||
| 423 | SimpleFilterItem ::= CHOICE { | ||||
| 424 | equalityMatch [3] AttributeValueAssertion, | ||||
| 425 | substrings [4] SubstringFilter, | ||||
| 426 | greaterOrEqual [5] AttributeValueAssertion, | ||||
| 427 | lessOrEqual [6] AttributeValueAssertion, | ||||
| 428 | present [7] AttributeDescription, | ||||
| 429 | approxMatch [8] AttributeValueAssertion, | ||||
| 430 | extensibleMatch [9] SimpleMatchingAssertion } | ||||
| 431 | |||||
| 432 | SimpleMatchingAssertion ::= SEQUENCE { | ||||
| 433 | matchingRule [1] MatchingRuleId OPTIONAL, | ||||
| 434 | type [2] AttributeDescription OPTIONAL, | ||||
| 435 | --- at least one of the above must be present | ||||
| 436 | matchValue [3] AssertionValue } | ||||
| 437 | |||||
| 438 | -- RFC-4527 Pre-/Post-read Control | ||||
| 439 | -- note: this is SearchResultEntry without the APPLICATION tag | ||||
| 440 | prSearchResultEntry ::= SEQUENCE { | ||||
| 441 | objectName LDAPDN, | ||||
| 442 | attributes PartialAttributeList } | ||||
| 443 | |||||
| 444 | -- RFC-4533 LDAP Content Synchronization Operation | ||||
| 445 | |||||
| 446 | syncUUID ::= OCTET STRING -- (SIZE(16)) | ||||
| 447 | |||||
| 448 | syncCookie ::= OCTET STRING | ||||
| 449 | |||||
| 450 | syncRequestValue ::= SEQUENCE { | ||||
| 451 | mode ENUMERATED { | ||||
| 452 | -- 0 unused | ||||
| 453 | refreshOnly (1), | ||||
| 454 | -- 2 reserved | ||||
| 455 | refreshAndPersist (3) | ||||
| 456 | } | ||||
| 457 | cookie syncCookie OPTIONAL, | ||||
| 458 | reloadHint BOOLEAN OPTIONAL -- DEFAULT FALSE | ||||
| 459 | } | ||||
| 460 | |||||
| 461 | syncStateValue ::= SEQUENCE { | ||||
| 462 | state ENUMERATED { | ||||
| 463 | present (0), | ||||
| 464 | add (1), | ||||
| 465 | modify (2), | ||||
| 466 | delete (3) | ||||
| 467 | } | ||||
| 468 | entryUUID syncUUID, | ||||
| 469 | cookie syncCookie OPTIONAL | ||||
| 470 | } | ||||
| 471 | |||||
| 472 | syncDoneValue ::= SEQUENCE { | ||||
| 473 | cookie syncCookie OPTIONAL, | ||||
| 474 | refreshDeletes BOOLEAN OPTIONAL -- DEFAULT FALSE | ||||
| 475 | } | ||||
| 476 | |||||
| 477 | syncInfoValue ::= CHOICE { | ||||
| 478 | newcookie [0] syncCookie, | ||||
| 479 | refreshDelete [1] SEQUENCE { | ||||
| 480 | cookie syncCookie OPTIONAL, | ||||
| 481 | refreshDone BOOLEAN OPTIONAL -- DEFAULT TRUE | ||||
| 482 | } | ||||
| 483 | refreshPresent [2] SEQUENCE { | ||||
| 484 | cookie syncCookie OPTIONAL, | ||||
| 485 | refreshDone BOOLEAN OPTIONAL -- DEFAULT TRUE | ||||
| 486 | } | ||||
| 487 | syncIdSet [3] SEQUENCE { | ||||
| 488 | cookie syncCookie OPTIONAL, | ||||
| 489 | refreshDeletes BOOLEAN OPTIONAL, -- DEFAULT FALSE | ||||
| 490 | syncUUIDs SET OF syncUUID | ||||
| 491 | } | ||||
| 492 | } | ||||
| 493 | |||||
| 494 | LDAP_ASN | ||||
| 495 | |||||
| 496 | 1 | 17µs | 1; | ||
| 497 |