summaryrefslogtreecommitdiffstats
path: root/proxy/src/gp_export.c
diff options
context:
space:
mode:
Diffstat (limited to 'proxy/src/gp_export.c')
-rw-r--r--proxy/src/gp_export.c49
1 files changed, 19 insertions, 30 deletions
diff --git a/proxy/src/gp_export.c b/proxy/src/gp_export.c
index 284bca6..0ef3128 100644
--- a/proxy/src/gp_export.c
+++ b/proxy/src/gp_export.c
@@ -372,21 +372,16 @@ enum exp_ctx_types {
int gp_get_exported_context_type(struct gssx_call_ctx *ctx)
{
- struct gssx_option *val;
- int i;
-
- for (i = 0; i < ctx->options.options_len; i++) {
- val = &ctx->options.options_val[i];
- if (val->option.octet_string_len == sizeof(EXP_CTX_TYPE_OPTION) &&
- strncmp(EXP_CTX_TYPE_OPTION,
- val->option.octet_string_val,
- val->option.octet_string_len) == 0) {
- if (strncmp(LINUX_LUCID_V1,
- val->value.octet_string_val,
- val->value.octet_string_len) == 0) {
- return EXP_CTX_LINUX_LUCID_V1;
- }
- return -1;
+ struct gssx_option *val = NULL;
+
+ gp_options_find(val, ctx->options,
+ EXP_CTX_TYPE_OPTION, sizeof(EXP_CTX_TYPE_OPTION));
+ if (val) {
+ if (gp_option_value_match(val, LINUX_LUCID_V1,
+ sizeof(LINUX_LUCID_V1))) {
+ return EXP_CTX_LINUX_LUCID_V1;
+ } else {
+ return EXP_CTX_PARTIAL;
}
}
@@ -661,22 +656,16 @@ enum exp_creds_types {
int gp_get_export_creds_type(struct gssx_call_ctx *ctx)
{
- struct gssx_option *val;
- int i;
-
- for (i = 0; i < ctx->options.options_len; i++) {
- val = &ctx->options.options_val[i];
- if (val->option.octet_string_len == sizeof(EXP_CREDS_TYPE_OPTION) &&
- strncmp(EXP_CREDS_TYPE_OPTION,
- val->option.octet_string_val,
- val->option.octet_string_len) == 0) {
- if (strncmp(LINUX_CREDS_V1,
- val->value.octet_string_val,
- val->value.octet_string_len) == 0) {
- return EXP_CREDS_LINUX_V1;
- }
- return -1;
+ struct gssx_option *val = NULL;
+
+ gp_options_find(val, ctx->options,
+ EXP_CTX_TYPE_OPTION, sizeof(EXP_CTX_TYPE_OPTION));
+ if (val) {
+ if (gp_option_value_match(val, LINUX_CREDS_V1,
+ sizeof(LINUX_CREDS_V1))) {
+ return EXP_CREDS_LINUX_V1;
}
+ return -1;
}
return EXP_CREDS_NO_CREDS;