krb5_krbhst_init krb5_krbhst_next krb5_krbhst_next_as_string krb5_krbhst_reset krb5_krbhst_free krb5_krbhst_format_string krb5_krbhst_get_addrinfo - lookup Kerberos KDC hosts
Kerberos 5 Library (libkrb5, -lkrb5)
First a handle to a particular service is obtained by calling
krb5_krbhst_init ();
with the
Fa realm
of interest and the type of service to lookup. The
Fa type
can be one of:
The Fa handle is returned to the caller, and should be passed to the other functions.
For each call to
krb5_krbhst_next ();
information a new host is returned. The former function returns in
Fa host
a pointer to a structure containing information about the host, such
as protocol, hostname, and port:
typedef struct krb5_krbhst_info { enum { KRB5_KRBHST_UDP, KRB5_KRBHST_TCP, KRB5_KRBHST_HTTP } proto; unsigned short port; struct addrinfo *ai; struct krb5_krbhst_info *next; char hostname[1]; } krb5_krbhst_info;
The related function,
krb5_krbhst_next_as_string (,);
return the same information as a url-like string.
When there are no more hosts, these functions return KRB5_KDC_UNREACH
To re-iterate over all hosts, call
krb5_krbhst_reset ();
and the next call to
krb5_krbhst_next ();
will return the first host.
When done with the handle,
krb5_krbhst_free ();
should be called.
To use a
krb5_krbhst_info
there are two functions:
krb5_krbhst_format_string ();
that will return a printable representation of that struct
and
krb5_krbhst_get_addrinfo ();
that will return a
struct addrinfo
that can then be used for communicating with the server mentioned.
krb5_krbhst_handle handle; char host[MAXHOSTNAMELEN]; krb5_krbhst_init(context, "MY.REALM", KRB5_KRBHST_KDC, &handle); while(krb5_krbhst_next_as_string(context, handle, host, sizeof(host)) == 0) printf("%s\n", host); krb5_krbhst_free(context, handle);
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |