diff --git a/doc/taler-exchange-httpd.1 b/doc/taler-exchange-httpd.1 index 2f0c37f6a..a02619d16 100644 --- a/doc/taler-exchange-httpd.1 +++ b/doc/taler-exchange-httpd.1 @@ -22,6 +22,9 @@ Use the configuration and other resources for the exchange to operate from DIRNA .IP "\-h, \-\-help" Print short help on options. .B +.IP "\-i, \-\-init-db" +Initialize the database by creating tables and indices if necessary. +.B .IP "\-v, \-\-version" Print version information. .B diff --git a/src/exchange-lib/afl-generate.sh b/src/exchange-lib/afl-generate.sh index 6ae833087..b0afcab35 100644 --- a/src/exchange-lib/afl-generate.sh +++ b/src/exchange-lib/afl-generate.sh @@ -31,4 +31,4 @@ # # Must be run from this directory. # -$AFL_HOME/afl-fuzz -i baseline/ -m 250 -o afl-tests/ -f /tmp/afl-input taler-exchange-httpd -f /tmp/afl-input -d test-exchange-home/ -C +$AFL_HOME/afl-fuzz -i baseline/ -m 250 -o afl-tests/ -f /tmp/afl-input taler-exchange-httpd -i -f /tmp/afl-input -d test-exchange-home/ -C diff --git a/src/exchange-lib/test_exchange_api.c b/src/exchange-lib/test_exchange_api.c index 7f6e86a4a..289c88741 100644 --- a/src/exchange-lib/test_exchange_api.c +++ b/src/exchange-lib/test_exchange_api.c @@ -3139,6 +3139,7 @@ main (int argc, "taler-exchange-httpd", "taler-exchange-httpd", "-c", "test_exchange_api.conf", + "-i", NULL); /* give child time to start and bind against the socket */ fprintf (stderr, diff --git a/src/exchange-lib/test_exchange_api.conf b/src/exchange-lib/test_exchange_api.conf index 03dd6f992..e815a0bbf 100644 --- a/src/exchange-lib/test_exchange_api.conf +++ b/src/exchange-lib/test_exchange_api.conf @@ -24,9 +24,6 @@ MASTER_PUBLIC_KEY = 98NJW3CQHZQGQXTY3K85K531XKPAPAVV4Q5V8PYYRR00NJGZWNVG # How to access our database DB = postgres -# Is this is a testcase, use transient DB actions? -TESTRUN = YES - [exchangedb-postgres] DB_CONN_STR = "postgres:///talercheck" diff --git a/src/exchange/exchange.conf b/src/exchange/exchange.conf index 333e9a58a..39151ea67 100644 --- a/src/exchange/exchange.conf +++ b/src/exchange/exchange.conf @@ -17,9 +17,6 @@ KEYDIR = ${TALER_DATA_HOME}/exchange/live-keys/ # How to access our database DB = postgres -# Is this is a testcase, use transient DB actions? -# TESTRUN = YES - # Where do we store the offline master private key of the exchange? MASTER_PRIV_FILE = ${TALER_DATA_HOME}/exchange/offline-keys/master.priv diff --git a/src/exchange/taler-exchange-httpd.c b/src/exchange/taler-exchange-httpd.c index d6dfb0358..f1661b003 100644 --- a/src/exchange/taler-exchange-httpd.c +++ b/src/exchange/taler-exchange-httpd.c @@ -100,6 +100,11 @@ static struct MHD_Daemon *mhd_admin; */ static int no_admin; +/** + * Initialize the database by creating tables and indices. + */ +static int init_db; + /** * Port to run the daemon on. */ @@ -656,13 +661,10 @@ exchange_serve_process_config () TEH_VALIDATION_done (); return GNUNET_SYSERR; } - if (GNUNET_YES == - GNUNET_CONFIGURATION_get_value_yesno (cfg, - "exchange", - "TESTRUN")) + if (0 != init_db) { GNUNET_log (GNUNET_ERROR_TYPE_INFO, - "Running in TEST mode! Database contents will not persist!\n"); + "Ensuring that tables and indices are created!\n"); TEH_plugin->create_tables (TEH_plugin->cls); } @@ -938,6 +940,9 @@ main (int argc, {'D', "disable-admin", NULL, "do not run the /admin-HTTP server", 0, &GNUNET_GETOPT_set_one, &no_admin}, + {'i', "init-db", NULL, + "create database tables and indicies if necessary", 0, + &GNUNET_GETOPT_set_one, &init_db}, {'t', "timeout", "SECONDS", "after how long do connections timeout by default (in seconds)", 1, &GNUNET_GETOPT_set_uint, &connection_timeout}, diff --git a/src/exchange/test_taler_exchange_httpd.conf b/src/exchange/test_taler_exchange_httpd.conf index 19f448f3b..e1c30615b 100644 --- a/src/exchange/test_taler_exchange_httpd.conf +++ b/src/exchange/test_taler_exchange_httpd.conf @@ -23,11 +23,6 @@ MASTER_PUBLIC_KEY = 98NJW3CQHZQGQXTY3K85K531XKPAPAVV4Q5V8PYYRR00NJGZWNVG # How to access our database DB = postgres -# Is this is a testcase, use transient DB actions? -TESTRUN = YES - - - [exchangedb-postgres] DB_CONN_STR = "postgres:///talercheck" diff --git a/src/exchange/test_taler_exchange_httpd.sh b/src/exchange/test_taler_exchange_httpd.sh index 6e51e06c1..7cd2e2762 100755 --- a/src/exchange/test_taler_exchange_httpd.sh +++ b/src/exchange/test_taler_exchange_httpd.sh @@ -27,7 +27,7 @@ unset XDG_CONFIG_HOME # Setup keys. taler-exchange-keyup -c test_taler_exchange_httpd.conf # Run Exchange HTTPD (in background) -taler-exchange-httpd -c test_taler_exchange_httpd.conf & +taler-exchange-httpd -c test_taler_exchange_httpd.conf -i & # Give HTTP time to start sleep 5 # Finally run test...