diff options
-rw-r--r-- | src/appl/gss-sample/gss-server.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/appl/gss-sample/gss-server.c b/src/appl/gss-sample/gss-server.c index e833267..30ae606 100644 --- a/src/appl/gss-sample/gss-server.c +++ b/src/appl/gss-sample/gss-server.c @@ -69,6 +69,8 @@ static OM_uint32 enumerateAttributes(OM_uint32 *minor, gss_name_t name, int noisy); +static OM_uint32 +showLocalIdentity(OM_uint32 *minor, gss_name_t name); static void usage() @@ -267,6 +269,7 @@ server_establish_context(int s, gss_cred_id_t server_creds, return -1; } enumerateAttributes(&min_stat, client, TRUE); + showLocalIdentity(&min_stat, client); maj_stat = gss_release_name(&min_stat, &client); if (maj_stat != GSS_S_COMPLETE) { display_status("releasing name", maj_stat, min_stat); @@ -876,3 +879,19 @@ enumerateAttributes(OM_uint32 *minor, return major; } + +static OM_uint32 +showLocalIdentity(OM_uint32 *minor, gss_name_t name) +{ + OM_uint32 major; + uid_t uid; + + major = gss_pname_to_uid(minor, name, GSS_C_NO_OID, &uid); + if (major == GSS_S_COMPLETE) { + printf("UID: %d\n", uid); + } else if (major != GSS_S_UNAVAILABLE) { + display_status("gss_pname_to_uid", major, *minor); + } + + return major; +} |