diff options
Diffstat (limited to 'src/backend/taler-merchant-httpd.c')
-rw-r--r-- | src/backend/taler-merchant-httpd.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/backend/taler-merchant-httpd.c b/src/backend/taler-merchant-httpd.c index ee3ccb6e..21eb1834 100644 --- a/src/backend/taler-merchant-httpd.c +++ b/src/backend/taler-merchant-httpd.c @@ -694,6 +694,7 @@ wireformat_iterator_cb (void *cls, json_t *j; enum TALER_ErrorCode ec; struct GNUNET_HashCode h_wire; + char *wire_file_mode; if (0 != strncasecmp (section, "account-", @@ -862,6 +863,31 @@ wireformat_iterator_cb (void *cls, } GNUNET_free (fn); + if (GNUNET_OK == GNUNET_CONFIGURATION_get_value_string + (iic->config, + section, + "WIRE_FILE_MODE", + &wire_file_mode)) + { + errno = 0; + mode_t mode = (mode_t) strtoul (wire_file_mode, NULL, 8); + if (0 != errno) + { + GNUNET_log_config_invalid (GNUNET_ERROR_TYPE_ERROR, + section, + "WIRE_FILE_MODE", + "Must be octal number\n"); + iic->ret = GNUNET_SYSERR; + return; + } + if (0 != chmod (fn, mode)) + { + TALER_LOG_ERROR ("chmod failed on %s\n", fn); + iic->ret = GNUNET_SYSERR; + return; + } + } + if (GNUNET_OK != TALER_JSON_merchant_wire_signature_hash (j, &h_wire)) |