summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBenjamin Dauvergne <bdauvergne@entrouvert.com>2011-12-22 18:13:48 +0100
committerBenjamin Dauvergne <bdauvergne@entrouvert.com>2011-12-22 18:13:48 +0100
commit7498143628640ecd5606f2e05457118cb6aaadde (patch)
tree5a1f13de587539229a5a90fa4c73cac185e7b53d
parentb6466549f650fe81024df25f91cc1523a16ad96f (diff)
downloadlasso-7498143628640ecd5606f2e05457118cb6aaadde.tar.gz
lasso-7498143628640ecd5606f2e05457118cb6aaadde.tar.xz
lasso-7498143628640ecd5606f2e05457118cb6aaadde.zip
[core] add support for thin-sessions environment flag, to reduce size of LassoSession dumps
-rw-r--r--lasso/debug.h1
-rw-r--r--lasso/id-ff/session.c3
-rw-r--r--lasso/lasso.c5
3 files changed, 9 insertions, 0 deletions
diff --git a/lasso/debug.h b/lasso/debug.h
index ce294ac7..f98f7882 100644
--- a/lasso/debug.h
+++ b/lasso/debug.h
@@ -37,6 +37,7 @@ LASSO_EXPORT extern gboolean lasso_flag_memory_debug;
LASSO_EXPORT extern gboolean lasso_flag_strict_checking;
LASSO_EXPORT extern gboolean lasso_flag_add_signature;
LASSO_EXPORT extern gboolean lasso_flag_sign_messages;
+LASSO_EXPORT extern gboolean lasso_flag_thin_sessions;
#ifdef __cplusplus
}
diff --git a/lasso/id-ff/session.c b/lasso/id-ff/session.c
index 6aad9160..d5294ff3 100644
--- a/lasso/id-ff/session.c
+++ b/lasso/id-ff/session.c
@@ -195,6 +195,9 @@ lasso_session_add_assertion_simple(LassoSession *session, const char *providerID
g_return_val_if_fail(providerID != NULL, LASSO_PARAM_ERROR_INVALID_VALUE);
g_return_val_if_fail(assertion != NULL, LASSO_PARAM_ERROR_INVALID_VALUE);
+ if (lasso_flag_thin_sessions) { /* do not store the full assertion */
+ return 0;
+ }
g_hash_table_insert(session->assertions, g_strdup(providerID),
g_object_ref(assertion));
diff --git a/lasso/lasso.c b/lasso/lasso.c
index 98248dac..3d127f9b 100644
--- a/lasso/lasso.c
+++ b/lasso/lasso.c
@@ -95,6 +95,8 @@ gboolean lasso_flag_add_signature = TRUE;
static void lasso_flag_parse_environment_variable();
/* do not sign messages */
gboolean lasso_flag_sign_messages = TRUE;
+/* thin sessions */
+gboolean lasso_flag_thin_sessions = FALSE;
#ifndef LASSO_FLAG_ENV_VAR
#define LASSO_FLAG_ENV_VAR "LASSO_FLAG"
@@ -317,6 +319,9 @@ void lasso_set_flag(char *flag) {
lasso_flag_sign_messages = value;
continue;
}
+ if (lasso_strisequal(flag,"thin-sessions")) {
+ lasso_flag_thin_sessions = value;
+ }
} while (FALSE);
}