directory-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Apache Wiki <wikidi...@apache.org>
Subject [Directory Wiki] Update of "Asn1Home" by EmmanuelLecharny
Date Thu, 31 Mar 2005 20:17:32 GMT
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Directory Wiki" for change notification.

The following page has been changed by EmmanuelLecharny:
http://wiki.apache.org/directory/Asn1Home

------------------------------------------------------------------------------
  
  == LDAP ASN.1 State Automaton ==
  
- LDAP Grammar can be seen as a State Automaton. 
+ LDAP Grammar can be seen as a State Automaton. It starts with the following diagram :
  
  attachment:ldapMessage.png
  
+ The next part (''protocol``Op'') will contains all the different type of possible messages.
:
+ 
+ attachment:protocolOp.png
+ 
+ Each message is described in the next chapters.
+ 
+ It can be followed by an optionnal control part, which automaton state is  shown below :
+ 
+ attachment:controls.png
+ 
+ === LdapResult ===
+ 
+ Many Ldap``Message while return a result. A specific sub-diagram is dedicated to this Ldap``Result
:
+ 
+ This picture is the specific state Ldap``Result :
+ 
+ attachment:ldapresult.png
+ 
  === BindRequest ===
+ 
+ The Bind``Request Ldap Message state diagram is shown below :
  
  attachment:bindRequest.png
  
- Here is the LDAP state automaton :
+ The decoding of a Bind``Request message is simple, as we just need to build an engine that
walks through the state automaton, checking at each state that the next transition is valid,
and execute the associated action. In the real world, it's a little bit more complicated,
because states are not those that we have in the pictures. We have to split each 'state' to
sub-states : one sub-state for the '''Type''', one sub-state for the '''Length''' and another
one for the '''Value''', if necessary. 
  
- attachment:ldap.png
+ Those sub-states are just usefull to stop the decoding if anything goes wrong (for instance,
if an inner PDU '''Length''' is above its encapsulating PDU).
  
- This picture is the specific state LdapResult that can be found on the above picture :
+ But basically, it's the way the decoder works.
  
- attachment:ldapresult.png
+ It is also able to stop in the middle of a PDU and start again when the missing data arrive
(of course, there must be an action from the caller !).
  
+ === BindResponse ===
  
- Here is the Controls state :
+ The Ldap Bind``Response message is also made up of four elements : a ''Ldap``Message'',
the ''Bind``Response'', a ''Ldap``Result'' element and optionnaly a final ''Controls''. Here
is the inner ''Bind``Response'' element :
  
- attachment:controls.png
+ attachment:bindResponse.png
  
Mime
View raw message