summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2015-04-11 16:38:09 +0200
committerChristian Grothoff <christian@grothoff.org>2015-04-11 16:38:09 +0200
commitbd2372f20ef7259d87c44e92de32c66b26e6632f (patch)
tree1ddbbd74087d40143042e194881ca0f2a0e90e5d
parent929a99cdbb579e53fe458752b147c10344c92aca (diff)
downloadexchange-bd2372f20ef7259d87c44e92de32c66b26e6632f.tar.gz
exchange-bd2372f20ef7259d87c44e92de32c66b26e6632f.tar.bz2
exchange-bd2372f20ef7259d87c44e92de32c66b26e6632f.zip
implementing #3740
-rw-r--r--contrib/mint-template/config/mint-common.conf14
-rw-r--r--src/mint/taler-mint-httpd.c24
-rw-r--r--src/mint/taler-mint-httpd.h5
-rw-r--r--src/mint/taler-mint-httpd_parsing.c6
-rw-r--r--src/mint/taler-mint-httpd_refresh.c4
5 files changed, 40 insertions, 13 deletions
diff --git a/contrib/mint-template/config/mint-common.conf b/contrib/mint-template/config/mint-common.conf
index 4e13a3ef..00cbc82f 100644
--- a/contrib/mint-template/config/mint-common.conf
+++ b/contrib/mint-template/config/mint-common.conf
@@ -1,6 +1,12 @@
[mint]
-db = postgres:///taler
-port = 4241
-TMH_master_public_key = ...
-refresh_security_parameter = 3
+# Currency supported by the mint (can only be one)
+CURRENCY = EUR
+# How to access our database
+DB = postgres:///taler
+
+# HTTP port the mint listens to
+PORT = 4241
+
+# Master public key used to sign the mint's various keys
+TMH_MASTER_PUBLIC_KEY = ...
diff --git a/src/mint/taler-mint-httpd.c b/src/mint/taler-mint-httpd.c
index 1315ba20..dd1e234c 100644
--- a/src/mint/taler-mint-httpd.c
+++ b/src/mint/taler-mint-httpd.c
@@ -36,6 +36,10 @@
#include "taler-mint-httpd_keystate.h"
#include "taler_mintdb_plugin.h"
+/**
+ * Which currency is used by this mint?
+ */
+char *TMH_mint_currency_string;
/**
* Base directory of the mint (global)
@@ -248,12 +252,30 @@ mint_serve_process_config (const char *mint_directory)
if (NULL == cfg)
{
fprintf (stderr,
- "can't load mint configuration\n");
+ "Failed to load mint configuration\n");
return 1;
}
if (GNUNET_OK !=
GNUNET_CONFIGURATION_get_value_string (cfg,
"mint",
+ "currency",
+ &TMH_mint_currency_string))
+ {
+ fprintf (stderr,
+ "No currency given in mint configuration.");
+ return GNUNET_NO;
+ }
+ if (strlen (TMH_mint_currency_string) >= TALER_CURRENCY_LEN)
+ {
+ fprintf (stderr,
+ "Currency `%s' longer than the allowed limit of %u characters.",
+ TMH_mint_currency_string,
+ (unsigned int) TALER_CURRENCY_LEN);
+ return GNUNET_NO;
+ }
+ if (GNUNET_OK !=
+ GNUNET_CONFIGURATION_get_value_string (cfg,
+ "mint",
"master_public_key",
&TMH_master_public_key_str))
{
diff --git a/src/mint/taler-mint-httpd.h b/src/mint/taler-mint-httpd.h
index 5a65ba43..c674a9da 100644
--- a/src/mint/taler-mint-httpd.h
+++ b/src/mint/taler-mint-httpd.h
@@ -28,10 +28,9 @@
#include <microhttpd.h>
/**
- * For now, we just do EUR. Should become configurable in the future! (#3740)
+ * Which currency is used by this mint?
*/
-#define TMH_MINT_CURRENCY "EUR"
-
+extern char *TMH_mint_currency_string;
/**
* The mint's configuration.
diff --git a/src/mint/taler-mint-httpd_parsing.c b/src/mint/taler-mint-httpd_parsing.c
index c492ecce..d079da5c 100644
--- a/src/mint/taler-mint-httpd_parsing.c
+++ b/src/mint/taler-mint-httpd_parsing.c
@@ -1025,7 +1025,7 @@ TMH_PARSE_amount_json (struct MHD_Connection *connection,
return GNUNET_NO;
}
if (0 != strcmp (currency,
- TMH_MINT_CURRENCY))
+ TMH_mint_currency_string))
{
TALER_LOG_WARNING ("Currency specified not supported by this mint\n");
if (MHD_YES !=
@@ -1039,8 +1039,8 @@ TMH_PARSE_amount_json (struct MHD_Connection *connection,
}
amount->value = (uint64_t) value;
amount->fraction = (uint32_t) fraction;
- GNUNET_assert (strlen (TMH_MINT_CURRENCY) < TALER_CURRENCY_LEN);
- strcpy (amount->currency, TMH_MINT_CURRENCY);
+ GNUNET_assert (strlen (TMH_mint_currency_string) < TALER_CURRENCY_LEN);
+ strcpy (amount->currency, TMH_mint_currency_string);
TALER_amount_normalize (amount);
return GNUNET_OK;
}
diff --git a/src/mint/taler-mint-httpd_refresh.c b/src/mint/taler-mint-httpd_refresh.c
index ffe65911..805d4f9c 100644
--- a/src/mint/taler-mint-httpd_refresh.c
+++ b/src/mint/taler-mint-httpd_refresh.c
@@ -75,7 +75,7 @@ handle_refresh_melt_binary (struct MHD_Connection *connection,
struct TALER_Amount total_melt;
GNUNET_assert (GNUNET_OK ==
- TALER_amount_get_zero (TMH_MINT_CURRENCY,
+ TALER_amount_get_zero (TMH_mint_currency_string,
&total_cost));
key_state = TMH_KS_acquire ();
for (i=0;i<num_new_denoms;i++)
@@ -102,7 +102,7 @@ handle_refresh_melt_binary (struct MHD_Connection *connection,
}
GNUNET_assert (GNUNET_OK ==
- TALER_amount_get_zero (TMH_MINT_CURRENCY,
+ TALER_amount_get_zero (TMH_mint_currency_string,
&total_melt));
for (i=0;i<coin_count;i++)
{