diff options
| author | Simo Sorce <simo@redhat.com> | 2013-11-16 17:09:45 -0500 |
|---|---|---|
| committer | Simo Sorce <simo@redhat.com> | 2013-11-16 17:28:51 -0500 |
| commit | f2cd6b2fc3d766355fd3a53290696bf60bf04fb8 (patch) | |
| tree | 4f97910df56b7d4b00420a4e206c829529b85043 /proxy/src | |
| parent | af477c1d8e5e9ce57ea3c740e1fdd7871b485e7d (diff) | |
| download | gss-proxy-f2cd6b2fc3d766355fd3a53290696bf60bf04fb8.tar.gz gss-proxy-f2cd6b2fc3d766355fd3a53290696bf60bf04fb8.tar.xz gss-proxy-f2cd6b2fc3d766355fd3a53290696bf60bf04fb8.zip | |
server: Implement flag filtering enforcement
Diffstat (limited to 'proxy/src')
| -rw-r--r-- | proxy/src/gp_creds.c | 6 | ||||
| -rw-r--r-- | proxy/src/gp_rpc_creds.h | 3 | ||||
| -rw-r--r-- | proxy/src/gp_rpc_init_sec_context.c | 2 |
3 files changed, 11 insertions, 0 deletions
diff --git a/proxy/src/gp_creds.c b/proxy/src/gp_creds.c index 5337390..60c4e12 100644 --- a/proxy/src/gp_creds.c +++ b/proxy/src/gp_creds.c @@ -548,3 +548,9 @@ done: return ret_maj; } + +void gp_filter_flags(struct gp_call_ctx *gpcall, uint32_t *flags) +{ + *flags |= gpcall->service->enforce_flags; + *flags &= ~gpcall->service->filter_flags; +} diff --git a/proxy/src/gp_rpc_creds.h b/proxy/src/gp_rpc_creds.h index 6389ebe..4c8febb 100644 --- a/proxy/src/gp_rpc_creds.h +++ b/proxy/src/gp_rpc_creds.h @@ -46,4 +46,7 @@ uint32_t gp_add_krb5_creds(uint32_t *min, gss_OID_set *actual_mechs, uint32_t *initiator_time_rec, uint32_t *acceptor_time_rec); + +void gp_filter_flags(struct gp_call_ctx *gpcall, uint32_t *flags); + #endif /* _GP_RPC_CREDS_H_ */ diff --git a/proxy/src/gp_rpc_init_sec_context.c b/proxy/src/gp_rpc_init_sec_context.c index 76ffaab..5e5d6f1 100644 --- a/proxy/src/gp_rpc_init_sec_context.c +++ b/proxy/src/gp_rpc_init_sec_context.c @@ -119,6 +119,8 @@ int gp_init_sec_context(struct gp_call_ctx *gpcall, } } + gp_filter_flags(gpcall, &req_flags); + ret_maj = gss_init_sec_context(&ret_min, ich, &ctx, |
