add missing default configs for auditor-httpd, make -u not mandatory as it is not needed for -r and check URL is well-formed if given; fix auditordb exchange insertion/removal logic

This commit is contained in:
Christian Grothoff 2018-11-04 10:48:22 +01:00
parent dce058af76
commit b39c3f9ca6
No known key found for this signature in database
GPG Key ID: 939E6BE1E29FC3CC
4 changed files with 48 additions and 10 deletions

View File

@ -10,3 +10,16 @@ AUDITOR_PRIV_FILE = ${TALER_DATA_HOME}/auditor/offline-keys/auditor.priv
# What is the Web site of the auditor (i.e. to file complaints about
# a misbehaving exchange)?
# AUDITOR_URL = https://auditor.taler.net/
# Network configuration for the normal API/service HTTP server
# serve via tcp socket (on PORT)
SERVE = tcp
# Unix domain socket to listen on,
# only effective with "SERVE = unix"
UNIXPATH = ${TALER_RUNTIME_DIR}/exchange.http
UNIXPATH_MODE = 660
# HTTP port the auditor listens to
PORT = 8082

View File

@ -73,12 +73,11 @@ main (int argc,
"KEY",
"public key of the exchange (Crockford base32 encoded)",
&master_public_key)),
GNUNET_GETOPT_option_mandatory
(GNUNET_GETOPT_option_string ('u',
"exchange-url",
"URL",
"base URL of the exchange",
&exchange_url)),
GNUNET_GETOPT_option_string ('u',
"exchange-url",
"URL",
"base URL of the exchange",
&exchange_url),
GNUNET_GETOPT_option_flag ('r',
"remove",
"remove the exchange's key (default is to add)",
@ -93,7 +92,7 @@ main (int argc,
NULL));
if (GNUNET_GETOPT_run ("taler-auditor-exchange",
options,
argc, argv) < 0)
argc, argv) <= 0)
return 1;
cfg = GNUNET_CONFIGURATION_create ();
if (GNUNET_SYSERR ==
@ -108,6 +107,32 @@ main (int argc,
}
GNUNET_free_non_null (cfgfile);
if (! remove_flag)
{
if (NULL == exchange_url)
{
FPRINTF (stderr,
_("Missing either `%s' or `%s'.\n"),
"-u URL",
"--remove");
return 1;
}
if ( (0 == strlen (exchange_url)) ||
( (0 != strncasecmp ("http://",
exchange_url,
strlen ("http://"))) &&
(0 != strncasecmp ("https://",
exchange_url,
strlen ("https://"))) ) ||
('/' != exchange_url[strlen(exchange_url)-1]) )
{
fprintf (stderr,
"Exchange URL must begin with `http://` or `https://` and end with `/'\n");
return 3;
}
}
if (NULL ==
(adb = TALER_AUDITORDB_plugin_load (cfg)))
{

View File

@ -193,7 +193,7 @@ main (int argc,
NULL));
if (GNUNET_GETOPT_run ("taler-auditor-sign",
options,
argc, argv) < 0)
argc, argv) <= 0)
return 1;
cfg = GNUNET_CONFIGURATION_create ();
if (GNUNET_SYSERR ==

View File

@ -1219,7 +1219,7 @@ postgres_insert_exchange (void *cls,
const char *exchange_url)
{
struct GNUNET_PQ_QueryParam params[] = {
GNUNET_PQ_query_param_auto_from_type (&master_pub),
GNUNET_PQ_query_param_auto_from_type (master_pub),
GNUNET_PQ_query_param_string (exchange_url),
GNUNET_PQ_query_param_end
};
@ -1246,7 +1246,7 @@ postgres_delete_exchange (void *cls,
const struct TALER_MasterPublicKeyP *master_pub)
{
struct GNUNET_PQ_QueryParam params[] = {
GNUNET_PQ_query_param_auto_from_type (&master_pub),
GNUNET_PQ_query_param_auto_from_type (master_pub),
GNUNET_PQ_query_param_end
};