diff options
author | Simo Sorce <simo@redhat.com> | 2012-05-30 16:42:35 -0400 |
---|---|---|
committer | Simo Sorce <simo@redhat.com> | 2012-10-25 15:52:02 -0400 |
commit | d7033ead5fc0b7b72a14348ce25401a9ec9098d4 (patch) | |
tree | 97ac81a12c7cbe33e1b37b85621731b26e20581e /proxy/src | |
parent | c9fb982ac154433f8ca48fcd1ea2527e09f8ad42 (diff) | |
download | gss-proxy-d7033ead5fc0b7b72a14348ce25401a9ec9098d4.tar.gz gss-proxy-d7033ead5fc0b7b72a14348ce25401a9ec9098d4.tar.xz gss-proxy-d7033ead5fc0b7b72a14348ce25401a9ec9098d4.zip |
Add loop avoidance in proxy daemon and gssapi plugin
Diffstat (limited to 'proxy/src')
-rw-r--r-- | proxy/src/gp_init.c | 3 | ||||
-rw-r--r-- | proxy/src/mechglue/gss_plugin.c | 8 |
2 files changed, 11 insertions, 0 deletions
diff --git a/proxy/src/gp_init.c b/proxy/src/gp_init.c index 9ad4ff1..835c049 100644 --- a/proxy/src/gp_init.c +++ b/proxy/src/gp_init.c @@ -65,6 +65,9 @@ void init_server(bool daemonize) /* Set up neutral locale */ setlocale(LC_ALL, ""); + /* Set env var to avoid looping to ourselves in GSSAPI */ + setenv("_GSSPROXY_LOOPS", "NO", 0); + gp_logging_init(); } diff --git a/proxy/src/mechglue/gss_plugin.c b/proxy/src/mechglue/gss_plugin.c index bc968c6..8a90da3 100644 --- a/proxy/src/mechglue/gss_plugin.c +++ b/proxy/src/mechglue/gss_plugin.c @@ -66,6 +66,14 @@ gss_OID_set gss_mech_interposer(gss_OID mech_type) { gss_OID_set interposed_mechs; OM_uint32 maj, min; + char *envval; + + /* avoid looping in the gssproxy daemon by avoiding to interpose + * any mechanism */ + envval = getenv("_GSSPROXY_LOOPS"); + if (envval && strcmp(envval, "NO") == 0) { + return NULL; + } interposed_mechs = NULL; maj = 0; |