summaryrefslogtreecommitdiff
path: root/src/authorization/anastasis_authorization_plugin_file.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/authorization/anastasis_authorization_plugin_file.c')
-rw-r--r--src/authorization/anastasis_authorization_plugin_file.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/authorization/anastasis_authorization_plugin_file.c b/src/authorization/anastasis_authorization_plugin_file.c
index 38939a0..db9dc67 100644
--- a/src/authorization/anastasis_authorization_plugin_file.c
+++ b/src/authorization/anastasis_authorization_plugin_file.c
@@ -21,6 +21,8 @@
#include "platform.h"
#include "anastasis_authorization_plugin.h"
#include <taler/taler_mhd_lib.h>
+#include <gnunet/gnunet_db_lib.h>
+#include "anastasis_database_lib.h"
/**
@@ -125,7 +127,20 @@ file_start (void *cls,
{
const struct ANASTASIS_AuthorizationContext *ac = cls;
struct ANASTASIS_AUTHORIZATION_State *as;
-
+ enum GNUNET_DB_QueryStatus qs;
+
+ /* If the user can show this challenge code, this
+ plugin is already happy (no additional
+ requirements), so mark this challenge as
+ already satisfied from the start. */
+ qs = ac->db->mark_challenge_code_satisfied (ac->db->cls,
+ truth_uuid,
+ code);
+ if (qs <= 0)
+ {
+ GNUNET_break (0);
+ return NULL;
+ }
as = GNUNET_new (struct ANASTASIS_AUTHORIZATION_State);
as->cls = cls;
as->truth_uuid = *truth_uuid;