\documentclass{report}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{textcomp}
\usepackage{geometry}
\geometry{top=15mm, bottom=15mm, left=1cm, right=1cm}
\usepackage[french]{babel}
\usepackage{pslatex}
\usepackage[colorlinks=true,urlcolor=black]{hyperref}
\usepackage{graphicx}
\usepackage{fancyhdr}
\pagestyle{fancy}
\renewcommand{\footrulewidth}{0.4pt}
\fancyfoot[L]{Uubu.fr}
\fancyfoot[R]{sam. oct. 12 15:42:47 CEST 2013}
\lfoot{\Large \textit{Uubu.fr}}
\hypersetup{pdfinfo={
Title={slapo-retcode},
Author={Sylvain Girod},
Creator={Bash script from uubu.fr's format version 1},
Producer={Bash script and PDFLaTeX},
Subject={Overlay retcode},
CreationDate={D:20131012154247},
ModDate={D:20131012154247},
Keywords={LDAP;OpenLDAP;Lightweight Directory Access Protocol}
}}
\begin{document}
 
\begin{center}
{\Huge slapo-retcode }
\end{center}
\vspace{1cm}
 
\begin{flushleft}
 
{\large Overlay retcode}
 
\vspace{10mm}
 
\hspace{1mm}  Utile pour des tests, les réponses sont générées en accord avec différentes stratégies. Dans le premier cas, pour toutes les opérations ciblées dans une sous-arborecence, la recherche est effectuées et vérifiée pour le code de retour, plus un message textuel optionnel. Les codes de réponse connus sont fournis dans retcodes.conf. Dans le second cas, les classes d'objet qui héritent de errAbsObject comme errObject ou errAuxObject, retournent un code dicté par ce contenu. Un Troisième cas recherche l'objet dans une base pour découvrir si leur classe hérite de errAbsObject. Dans ce cas, leur contenu est utilisé pour calculer la réponse correspondante. Désactivé en utilisant le contrôle manageDSAit.
\vspace{5mm} \\
 
 
\vspace{1cm}{\huge OPTIONS }
 
\
 
\begin{description} \normalsize
\item[\hspace{1mm} retcode-parent <DN>]{Définis le DN parent où les entrées générées dynamiquement résident.}
\item[\hspace{1mm} retcode-item <RDN> <errCode> \texttt{[}op=<oplist>\texttt{]} \texttt{[}text=<message>\texttt{]} \texttt{[}ref=<referral>\texttt{]} md]{}
\item[\hspace{1mm} \texttt{[}unsolicited=<OID>\texttt{[} :<data>\texttt{]}\texttt{]} \texttt{[}flags=\texttt{[}pre|post-\texttt{]}disconnect\texttt{[},...\texttt{]}\texttt{]}]{Une entrée générée dynamiquement sous retcode-parent. \textbf{errCode} est le numéro du code de réponse. \textbf{oplist} est une liste d'opérations qui génère la génération du code. \textbf{matched} est le DN matché qui est retourné avec l'erreur. \textbf{text} est le message optionnel, \textbf{ref} est permis pour le code referral. \textbf{sleeptime} secondes avant de traiter l'opération. \textbf{unsolicited} peut être utilisé pour forcer un message de réponse unsolicited rfc4511. \textbf{OID} si non 0, génère une réponse étendue avec data ajouté. \textbf{flags} contient disconnect ou pre-disconnect (fore la déconnection sans notification) ou post-disconnect (déconnection après avoir envoyé la réponse)}
\item[\hspace{1mm} retcode-indir]{Active l'exploitation de errAbsObject.}
\item[\hspace{1mm} retcode-sleep \texttt{[}-\texttt{]}<n>]{Secondes d'attente avant de manipuler les opérations. une valeur négative indique une valeur aléatoire entre 0 et la valeur indiquée.}
\end{description}
 
\vspace{1cm}{\huge Schéma }
 
\
 
\hspace{1mm} Le code d'erreur:
 
{\ttfamily
( 1.3.6.1.4.1.4203.666.11.4.1.1 NAME ( 'errCode' ) DESC 'LDAP error code' EQUALITY integerMatch ORDERING integerOrderingMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )\\
}
\vspace{8mm}
 
\hspace{1mm} L'opération qui déclenche le code de réponse:
 
{\ttfamily
( 1.3.6.1.4.1.4203.666.11.4.1.2 NAME ( 'errOp' ) DESC 'Operations the errObject applies to' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )\\
}
\vspace{8mm}
 
\hspace{1mm} le message textuel:
 
{\ttfamily
( 1.3.6.1.4.1.4203.666.11.4.1.3 NAME ( 'errText' ) DESC 'LDAP error textual description' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )\\
}
\vspace{8mm}
 
\hspace{1mm} Temps d'attente avant de retourner la réponse:
 
{\ttfamily
( 1.3.6.1.4.1.4203.666.11.4.1.4 NAME ( 'errSleepTime' ) DESC 'Time to wait before returning the error' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )\\
}
\vspace{8mm}
 
\hspace{1mm} DN retourné au client:
 
{\ttfamily
( 1.3.6.1.4.1.4203.666.11.4.1.5 NAME ( 'errMatchedDN' ) DESC 'Value to be returned as matched DN' EQUALITY distinguishedNameMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 SINGLE-VALUE )\\
}
\vspace{8mm}
 
\hspace{1mm} OID retourné comme réponse étendue unsolicited responses:
 
{\ttfamily
( 1.3.6.1.4.1.4203.666.11.4.1.6 NAME ( 'errUnsolicitedOID' ) DESC 'OID to be returned within unsolicited response' EQUALITY objectIdentifierMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.38 SINGLE-VALUE )\\
}
\vspace{8mm}
 
\hspace{1mm} Chaîne d'octet à retourner comme donnée de réponse étendue:
 
{\ttfamily
( 1.3.6.1.4.1.4203.666.11.4.1.7 NAME ( 'errUnsolicitedData' ) DESC 'Data to be returned within unsolicited response' SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 SINGLE-VALUE )\\
}
\vspace{8mm}
 
\hspace{1mm} Mode de déconnexion:
 
{\ttfamily
( 1.3.6.1.4.1.4203.666.11.4.1.8 NAME ( 'errDisconnect' ) DESC 'Disconnect without notice' SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE )\\
}
\vspace{8mm}
 
\hspace{1mm} Déclencheur de l'overlay:
 
{\ttfamily
( 1.3.6.1.4.1.4203.666.11.4.3.0 NAME ( 'errAbsObject' ) SUP top ABSTRACT MUST ( errCode ) MAY ( cn \$ description \$ errOp \$ errText \$ errSleepTime \$ errMatchedDN ) )\\ \hspace{2mm}\\ ( 1.3.6.1.4.1.4203.666.11.4.3.1 NAME ( 'errObject' ) SUP errAbsObject STRUCTURAL )\\ \hspace{2mm}\\ ( 1.3.6.1.4.1.4203.666.11.4.3.2 NAME ( 'errAuxObject' ) SUP errAbsObject AUXILIARY )\\
}
\vspace{8mm}
 
\vspace{1cm}{\huge Exemples }
 
\
 
\hspace{1mm} retcode.conf se trouve dans tests/data/ \\
\hspace{1mm} \textbf{include ./retcode.conf} \\
\hspace{1mm} Attendre 10 secondes, puis retourner un succès (0x00) \\
\hspace{1mm} \textbf{retcode-item "cn=Success after 10 seconds" 0x00 sleeptime=10} \\
\hspace{1mm} Attendre 10 secondes, puis retouner timelimitExceeded (0x03) \\
\hspace{1mm} \textbf{retcode-item "cn=Timelimit after 10 seconds" 0x03 sleeptime=10} \\
\end{flushleft}
\end{document}
