diff options
-rw-r--r-- | utils/gssd/gss_names.c | 15 | ||||
-rw-r--r-- | utils/gssd/gss_names.h | 2 |
2 files changed, 17 insertions, 0 deletions
diff --git a/utils/gssd/gss_names.c b/utils/gssd/gss_names.c index aa61e4d..047069d 100644 --- a/utils/gssd/gss_names.c +++ b/utils/gssd/gss_names.c @@ -121,3 +121,18 @@ out_rel_buf: out_err: return res; } + +void +get_hostbased_client_buffer(gss_name_t client_name, gss_OID mech, + gss_buffer_t buf) +{ + char *hname; + + if (!get_hostbased_client_name(client_name, mech, &hname)) { + buf->length = strlen(hname) + 1; + buf->value = hname; + } else { + buf->length = 0; + buf->value = NULL; + } +} diff --git a/utils/gssd/gss_names.h b/utils/gssd/gss_names.h index 1d5f49c..ce182f7 100644 --- a/utils/gssd/gss_names.h +++ b/utils/gssd/gss_names.h @@ -32,3 +32,5 @@ extern int get_hostbased_client_name(gss_name_t client_name, gss_OID mech, char **hostbased_name); +extern void get_hostbased_client_buffer(gss_name_t client_name, + gss_OID mech, gss_buffer_t buf); |