Annotation of 43BSD/contrib/xns/morexnslib/ch/clearinghouse.3, revision 1.1.1.1

1.1       root        1: .TH ClearinghouseSupport 3 Cornell
                      2: .SH NAME
                      3: CH_StringToName,
                      4: CH_LookupAddr,
                      5: CH_GetFirstCH,
                      6: CH_GetOtherCH,
                      7: CH_Enumerate,
                      8: CH_EnumerateAliases
                      9: \- Clearinghouse support routines.
                     10: .SH SYNOPSIS
                     11: .nf
                     12: .B "#include <courier/CH.h>"
                     13: .B "#include <courier/Clearinghouse2.h>
                     14: .PP
                     15: .B "Clearinghouse2_ObjectName CH_StringToName(str, defaults)"
                     16: .B "   char *str;"
                     17: .B "   Clearinghouse2_ObjectName *defaults;"
                     18: .PP
                     19: .B "CourierConnection * CH_GetFirstCH()"
                     20: .PP
                     21: .B "CourierConnection * CH_GetOtherCH(conn, hint)"
                     22: .B "   CourierConnection *conn;"
                     23: .B "   Clearinghouse2_ObjectName hint;"
                     24: .PP
                     25: .B "struct xn_addr * CH_LookupAddr(pattern,property)"
                     26: .B "   Clearinghouse2_ObjectNamePattern pattern;"
                     27: .B "   Clearinghouse2_Property property;"
                     28: .PP
                     29: .B "int CH_Enumerate(pattern, property, eachName)"
                     30: .B "   Clearinghouse2_ObjectNamePattern pattern;"
                     31: .B "   Clearinghouse2_Property property;"
                     32: .B "   int (*eachName)();"
                     33: .PP
                     34: .B "CH_EnumerateAliases(pattern,eachName)"
                     35: .B "   Clearinghouse2_ObjectNamePattern pattern;"
                     36: .B "   int (*eachName)();"
                     37: .B "int eachName(name)"
                     38: .B "   Clearinghouse2_ObjectName name;"
                     39: .f
                     40: .PP
                     41: Link with
                     42: .BR "-lcourier" .
                     43: .SH DESCRIPTION
                     44: .PP
                     45: Given a string in standard format (e.g. ``jqj:Computer Science:cornell-univ''),
                     46: .I CH_StringToName
                     47: returns an ObjectName containing broken out fields for object, domain, and
                     48: organization.  If the string is incomplete, e.g. ``jqj'' or 
                     49: ``::cornell-univ'', the unspecified values are filled in from
                     50: .IR defaults .
                     51: .I Defaults
                     52: may be NULL, in which case 0-length strings are used as defaults.
                     53: .PP
                     54: Given a Clearinghouse three part name (possibly containing wild cards)
                     55: and the property number on which a NetworkAddress is expected to occur,
                     56: .I CH_LookupAddr
                     57: returns a pointer to an xn_addr structure associated with that name.
                     58: Note that the xn_addr structure is statically allocated!
                     59: If
                     60: .I property
                     61: is given as 0, then the addressList property (actually 4) is used;
                     62: this is the typical property for storing Clearinghouse addresses of
                     63: objects.  Returns 0 if any error occurs, if the name given is not
                     64: registered, or if it does not have the specified property.
                     65: If a name has several network addresses (e.g. a gateway machine), only
                     66: the first or primary address is returned; to obtain all addresses use
                     67: the remote procedure
                     68: .IR Clearinghouse2_RetrieveAddresses .
                     69: Users who require greater control than is provided by
                     70: .I CH_LookupAddress
                     71: should call
                     72: .I Clearinghouse2_RetrieveItem
                     73: directly.
                     74: .PP
                     75: The routine
                     76: .I CH_GetFirstCH
                     77: returns an XNS Courier connection to a nearby clearinghouse, useful
                     78: for Clearinghouse remote procedure calls.  Since the Clearinghouse is
                     79: distributed, that instance of the CH may not contain the data desired;
                     80: in such cases, a remote CH procedure call will return the error
                     81: ``WrongServer'' with a hint as to the correct server, and the user
                     82: may retry the operation after connecting (using 
                     83: .IR CH_GetOtherCH )
                     84: to the clearinghouse specified by the hint.
                     85: .nf
                     86: conn = CH_GetFirstCH();
                     87: DURING
                     88:     objectname = Clearinghouse2_LookupObject(name, agent);
                     89: HANDLER {
                     90:     if (Exception.Code == Clearinghouse2_WrongServer) {
                     91:         hint = CourierErrArgs(Clearinghouse2_WrongServerArgs, hint);
                     92:        ch2conn = CH_GetOtherCH(conn, hint);
                     93:        CourierClose(conn);
                     94:        objectname = Clearinghouse2_LookupObject(name, agent);
                     95:     }
                     96:     else exit(1);
                     97: END_HANDLER
                     98: }
                     99: .f
                    100: .PP
                    101: .I CH_Enumerate
                    102: and
                    103: .I CH_EnumerateAliases
                    104: each accept a pointer to a user-supplied function 
                    105: .I eachProc
                    106: which is called once for each name in the local Clearinghouse
                    107: satisfying the 
                    108: .I pattern
                    109: (which may contain wildcards in its local object part only) supplied.
                    110: .I CH_Enumerate
                    111: enumerates over all distinguished objects (i.e. no aliases) matching
                    112: the specified pattern and having the specified
                    113: .IR property .
                    114: If no specific property is desired, 0 should be used to obtain all
                    115: names.
                    116: .I CH_EnumerateAliases
                    117: is similar, except that
                    118: .I eachProc
                    119: is called once for each alias matching the specified pattern.
                    120: .SH FILES
                    121: /usr/lib/local/libcourier.a    -lcourier library.
                    122: .SH SEE ALSO
                    123: clearinghouse(3N)
                    124: .br
                    125: ``XNS Courier Under Unix''.
                    126: .br
                    127: ``Clearinghouse Protocol,'' XSIS 078404 (April 1984).
                    128: .SH DIAGNOSTICS
                    129: .SH BUGS
                    130: Probably lots of them.
                    131: .SH AUTHOR
                    132: J.Q. Johnson

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.