|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T e
Length: 4609 (0x1201) Types: TextFile Names: »entities.tex«
└─⟦2d1937cfd⟧ Bits:30007241 EUUGD22: P.P 5.0 └─⟦35176feda⟧ »EurOpenD22/isode/isode-6.tar.Z« └─⟦de7628f85⟧ └─⟦this⟧ »isode-6.0/doc/manual/entities.tex«
% run this through LaTeX with the appropriate wrapper \f \chapter {The ISODE Entities Database}\label{isoentities} The database \file{isoentities} in the ISODE \verb"ETCDIR" directory (usually \file{/usr/etc/}) contains a simple mapping between appli\-cat\-ion-entity information and presentation addresses. This database is used by the stub-directory service. The database itself is an ordinary ASCII text file containing information regarding the known ap\-pli\-ca\-tion-entities on the network. Each entry contains: \begin{itemize} \item the object descriptor of the application-entity information, realized as a designator-qualifier (host/service) pair (the distinguished designator \verb"default" is used for a template entry); \item the object identifier of the application-entity information expressed in dot-notation (if no application-entity information is desired, the string ``NULL'' should be used instead); and, \item the presentation address expressed in the string format described in Section~\ref{addr:encodings} on page~\pageref{addr:encodings} in \volone/. Note that since double-quotes are often used in the new string format, it is {\bf very\/} important to quote them correctly in the \man isoentities(5) file. Usually preceeding the first character of the address with backslash (``\verb"\"'') is adequate. \end{itemize} Blanks and/or tab characters are used to seperate items. However, double-quotes may be used to prevent separation for items containing embedded whitspace. This is useful for defining the presetnation address. The sharp character (`\verb"#"') at the beginning of a line indicates a commentary line. It is suggested for readability purposes that a blank line should seperate entries. \subsection* {RFC1085 Support} Since applications using RFC1085 (the lightweight presentation protocol) usually demultiplex on the basis of TCP or UDP port, a further definition for the qualifier is placed in \file{/etc/services}, one of: \begin{quote}\small\begin{verbatim} qualifier portno/lpp qualifier portno/tcp qualifier portno/udp \end{verbatim}\end{quote} The first alternative says that the service lives on both TCP and UDP; the second alternative says that the service lives on TCP only; and, the third alternative says that the service lives on UDP only. \f \section {Accessing the Database}\label{isoentity} The \man libacsap(3n) library contains the routines used to access the database. The high-level routines, \verb"str2aei", which forms an object descriptor and returns application-entity information, and \verb"aei2addr", which maps the ap\-pli\-ca\-tion-entity information into a presentation address have already been discussed in Section~\ref{acs:aei}. Similarly, the ``old-style'' routines, \verb"is2paddr", \verb"is2saddr", \verb"is2taddr", which maps a host and service directly into a prsentation, session, or transport address (respectively) are discussed in Sections~\ref{psap:addresses}, \ref{ssap:addresses}, and~\ref{tsap:addresses} of \voltwo/ (respectively). Hence, for the remainder of this chapter, we need only consider the internal form used by the library in querying the database. The \verb"isoentity" structure is the internal form. \begin{quote}\index{isoentity}\small\begin{verbatim} struct isoentity { OIDentifier ie_identifier; char *ie_descriptor; struct PSAPaddr ie_addr; }; \end{verbatim}\end{quote} The elements of this structure are: \begin{describe} \item[\verb"ie\_identifier":] an object identifier used to form application-entity information; \item[\verb"ie\_identifier":] the corresponding object descriptor; and, \item[\verb"ie\_addr":] the presentation address. \end{describe} The routine \verb"getisoentity" reads the next entry in the database, opening the database if necessary. \begin{quote}\index{getisoentity}\small\begin{verbatim} struct isoentity *getisoentity () \end{verbatim}\end{quote} It returns the manifest constant \verb"NULL" on error or end-of-file. The routine \verb"setisoentity" opens and rewinds the database. \begin{quote}\index{setisoentity}\small\begin{verbatim} int setisoentity (f) int f; \end{verbatim}\end{quote} The parameter to this procedure is: \begin{describe} \item[\verb"f":] the ``stayopen'' indicator, if non-zero, then the database will remain open over subsequent calls to the library. \end{describe} The routine \verb"endisoentity" closes the database. \begin{quote}\index{endisoentity}\small\begin{verbatim} int endisoentity () \end{verbatim}\end{quote} Both of these routines return non-zero on success and zero otherwise.