summaryrefslogtreecommitdiff
path: root/src/exchange/taler-exchange-httpd_keystate.c
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2019-06-26 23:58:48 +0200
committerChristian Grothoff <christian@grothoff.org>2019-06-27 00:04:20 +0200
commit19e0b66f8780f97f15f0a40a739eb277244750f1 (patch)
tree1823f46f36a74e7b54bbc4be4640eef5a95a666d /src/exchange/taler-exchange-httpd_keystate.c
parent9a69fd81ed1eb5de13509f565947f01de8bdf38c (diff)
downloadexchange-19e0b66f8780f97f15f0a40a739eb277244750f1.tar.gz
exchange-19e0b66f8780f97f15f0a40a739eb277244750f1.tar.bz2
exchange-19e0b66f8780f97f15f0a40a739eb277244750f1.zip
first steps on #5777
Diffstat (limited to 'src/exchange/taler-exchange-httpd_keystate.c')
-rw-r--r--src/exchange/taler-exchange-httpd_keystate.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/exchange/taler-exchange-httpd_keystate.c b/src/exchange/taler-exchange-httpd_keystate.c
index 24eef36ea..7d67b8768 100644
--- a/src/exchange/taler-exchange-httpd_keystate.c
+++ b/src/exchange/taler-exchange-httpd_keystate.c
@@ -1907,6 +1907,9 @@ TEH_KS_denomination_key_lookup_by_hash (const struct TEH_KS_StateHandle *key_sta
map = (TEH_KS_DKU_PAYBACK == use) ? key_state->revoked_map : key_state->denomkey_map;
dki = GNUNET_CONTAINER_multihashmap_get (map,
denom_pub_hash);
+ if ( (NULL == dki) && (TEH_KS_DKU_ZOMBIE == use))
+ dki = GNUNET_CONTAINER_multihashmap_get (key_state->revoked_map,
+ denom_pub_hash);
if (NULL == dki)
return NULL;
now = GNUNET_TIME_absolute_get ();
@@ -1958,6 +1961,16 @@ TEH_KS_denomination_key_lookup_by_hash (const struct TEH_KS_StateHandle *key_sta
return NULL;
}
break;
+ case TEH_KS_DKU_ZOMBIE:
+ if (now.abs_value_us >
+ GNUNET_TIME_absolute_ntoh (dki->issue.properties.expire_legal).abs_value_us)
+ {
+ GNUNET_log (GNUNET_ERROR_TYPE_INFO,
+ "Not returning DKI for %s, as legal expiration of coin has passed\n",
+ GNUNET_h2s (denom_pub_hash));
+ return NULL;
+ }
+ break;
}
return dki;
}