cc[ flag... ] file... -lldap[ library... ] #include <lber.h> #include <ldap.h>
char *ldap_friendly_name(char *filename, char *name, FriendlyMap **map);
void ldap_free_friendlymap(FriendlyMap **map);
This function is used to map one set of strings to another. Typically, this is done for country names, to map from the two-letter country codes to longer more readable names. The mechanism is general enough to be used with other things, though.
filename is the name of a file containing the unfriendly to friendly mapping, name is the unfriendly name to map to a friendly name, and map is a result-parameter that should be set to NULL on the first call. It is then used to hold the mapping in core so that the file need not be read on subsequent calls.
FriendlyMap *map = NULL; printf( "unfriendly %s => friendly %s\n", name, ldap_friendly_name( "ETCDIR/ldapfriendly", name, &map ) );
The mapping file should contain lines like this: unfriendlyname\tfriendlyname. Lines that begin with a '#' character are comments and are ignored.
The ldap_free_friendlymap() call is used to free structures allocated by ldap_friendly_name() when no more calls to ldap_friendly_name() are to be made.
NULL is returned by ldap_friendly_name() if there is an error opening filename, or if the file has a bad format, or if the map parameter is NULL.
See attributes(5) for a description of the following attributes: