summaryrefslogtreecommitdiffstats
path: root/proxy/src
diff options
context:
space:
mode:
authorSimo Sorce <simo@redhat.com>2012-05-30 16:42:35 -0400
committerGünther Deschner <gdeschner@redhat.com>2012-06-26 14:44:43 +0200
commitb7e423f60750fd99f7fbd9767f504f60ab0b6e60 (patch)
treed5178fa84dd108cd30cd2962ad616cb7fcc8a600 /proxy/src
parentc8e32a412d45016368a969317bf8f073c9933af3 (diff)
downloadgss-proxy-b7e423f60750fd99f7fbd9767f504f60ab0b6e60.tar.gz
gss-proxy-b7e423f60750fd99f7fbd9767f504f60ab0b6e60.tar.xz
gss-proxy-b7e423f60750fd99f7fbd9767f504f60ab0b6e60.zip
Add loop avoidance in proxy daemon and gssapi plugin
Diffstat (limited to 'proxy/src')
-rw-r--r--proxy/src/gp_init.c3
-rw-r--r--proxy/src/mechglue/gss_plugin.c8
2 files changed, 11 insertions, 0 deletions
diff --git a/proxy/src/gp_init.c b/proxy/src/gp_init.c
index 4d5f9db..ba5417d 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 8612dc6..ba41e80 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;