Merge branch 'master' of git+ssh://git.taler.net/exchange
This commit is contained in:
commit
0c94dcb79e
@ -1,6 +1,7 @@
|
|||||||
[Unit]
|
[Unit]
|
||||||
Description=GNU Taler payment system exchange aggregator service
|
Description=GNU Taler payment system exchange aggregator service
|
||||||
PartOf=taler-exchange.target
|
PartOf=taler-exchange.target
|
||||||
|
After=postgres.service
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
User=taler-exchange-aggregator
|
User=taler-exchange-aggregator
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
[Unit]
|
[Unit]
|
||||||
Description=GNU Taler payment system exchange closer service
|
Description=GNU Taler payment system exchange closer service
|
||||||
PartOf=taler-exchange.target
|
PartOf=taler-exchange.target
|
||||||
|
After=network.target postgres.service
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
User=taler-exchange-closer
|
User=taler-exchange-closer
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
[Unit]
|
[Unit]
|
||||||
Description=GNU Taler payment system exchange expire service
|
Description=GNU Taler payment system exchange expire service
|
||||||
PartOf=taler-exchange.target
|
PartOf=taler-exchange.target
|
||||||
|
After=postgres.service
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
User=taler-exchange-expire
|
User=taler-exchange-expire
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
[Unit]
|
[Unit]
|
||||||
Description=Taler Exchange Transfer Service
|
Description=Taler Exchange Transfer Service
|
||||||
After=network.target
|
After=network.target postgres.service
|
||||||
PartOf=taler-exchange.target
|
PartOf=taler-exchange.target
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
[Unit]
|
[Unit]
|
||||||
Description=GNU Taler payment system exchange wirewatch service
|
Description=GNU Taler payment system exchange wirewatch service
|
||||||
After=network.target
|
After=network.target postgres.service
|
||||||
PartOf=taler-exchange.target
|
PartOf=taler-exchange.target
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
|
@ -1775,13 +1775,16 @@ conclude_account (struct WireAccount *wa)
|
|||||||
GNUNET_log (GNUNET_ERROR_TYPE_INFO,
|
GNUNET_log (GNUNET_ERROR_TYPE_INFO,
|
||||||
"Reconciling CREDIT processing of account `%s'\n",
|
"Reconciling CREDIT processing of account `%s'\n",
|
||||||
wa->ai->section_name);
|
wa->ai->section_name);
|
||||||
GNUNET_CONTAINER_multihashmap_iterate (in_map,
|
if (NULL != in_map)
|
||||||
&complain_in_not_found,
|
{
|
||||||
wa);
|
GNUNET_CONTAINER_multihashmap_iterate (in_map,
|
||||||
/* clean up before 2nd phase */
|
&complain_in_not_found,
|
||||||
GNUNET_CONTAINER_multihashmap_iterate (in_map,
|
wa);
|
||||||
&free_rii,
|
/* clean up before 2nd phase */
|
||||||
NULL);
|
GNUNET_CONTAINER_multihashmap_iterate (in_map,
|
||||||
|
&free_rii,
|
||||||
|
NULL);
|
||||||
|
}
|
||||||
process_credits (wa->next);
|
process_credits (wa->next);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -240,7 +240,13 @@ function audit_only () {
|
|||||||
echo -n "."
|
echo -n "."
|
||||||
$VALGRIND taler-helper-auditor-reserves -i -L DEBUG -c $CONF -m $MASTER_PUB > test-audit-reserves-inc.json 2> ${MY_TMP_DIR}/test-audit-reserves-inc.log || exit_fail "incremental reserves audit failed"
|
$VALGRIND taler-helper-auditor-reserves -i -L DEBUG -c $CONF -m $MASTER_PUB > test-audit-reserves-inc.json 2> ${MY_TMP_DIR}/test-audit-reserves-inc.log || exit_fail "incremental reserves audit failed"
|
||||||
echo -n "."
|
echo -n "."
|
||||||
$VALGRIND taler-helper-auditor-wire -i -L DEBUG -c $CONF -m $MASTER_PUB > test-audit-wire.json 2> ${MY_TMP_DIR}/test-wire-audit.log || exit_fail "wire audit failed"
|
rm -f ${MY_TMP_DIR}/test-wire-audit.log
|
||||||
|
thaw() {
|
||||||
|
$VALGRIND taler-helper-auditor-wire -i -L DEBUG -c $CONF -m $MASTER_PUB > test-audit-wire.json 2>> ${MY_TMP_DIR}/test-wire-audit.log
|
||||||
|
}
|
||||||
|
thaw || ( echo -e " FIRST CALL TO taler-helper-auditor-wire FAILED,\nRETRY AFTER TWO SECONDS..." | tee -a ${MY_TMP_DIR}/test-wire-audit.log
|
||||||
|
sleep 2
|
||||||
|
thaw || exit_fail "wire audit failed" )
|
||||||
echo -n "."
|
echo -n "."
|
||||||
$VALGRIND taler-helper-auditor-wire -i -L DEBUG -c $CONF -m $MASTER_PUB > test-audit-wire-inc.json 2> ${MY_TMP_DIR}/test-wire-audit-inc.log || exit_fail "wire audit inc failed"
|
$VALGRIND taler-helper-auditor-wire -i -L DEBUG -c $CONF -m $MASTER_PUB > test-audit-wire-inc.json 2> ${MY_TMP_DIR}/test-wire-audit-inc.log || exit_fail "wire audit inc failed"
|
||||||
echo -n "."
|
echo -n "."
|
||||||
|
@ -20,6 +20,7 @@
|
|||||||
#include "platform.h"
|
#include "platform.h"
|
||||||
#include <gnunet/gnunet_json_lib.h>
|
#include <gnunet/gnunet_json_lib.h>
|
||||||
#include "taler_dbevents.h"
|
#include "taler_dbevents.h"
|
||||||
|
#include "taler-exchange-httpd_keys.h"
|
||||||
#include "taler-exchange-httpd_responses.h"
|
#include "taler-exchange-httpd_responses.h"
|
||||||
#include "taler-exchange-httpd_extensions.h"
|
#include "taler-exchange-httpd_extensions.h"
|
||||||
#include "taler_json_lib.h"
|
#include "taler_json_lib.h"
|
||||||
@ -156,6 +157,10 @@ extension_update_event_cb (void *cls,
|
|||||||
TALER_age_mask_to_string (&conf->mask));
|
TALER_age_mask_to_string (&conf->mask));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Finally, call TEH_keys_update_states in order to refresh the cached
|
||||||
|
// values.
|
||||||
|
TEH_keys_update_states ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -2623,8 +2623,8 @@ TEH_keys_update_states ()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
struct TEH_KeyStateHandle *
|
static struct TEH_KeyStateHandle *
|
||||||
TEH_keys_get_state2 (bool management_only)
|
keys_get_state (bool management_only)
|
||||||
{
|
{
|
||||||
struct TEH_KeyStateHandle *old_ksh;
|
struct TEH_KeyStateHandle *old_ksh;
|
||||||
struct TEH_KeyStateHandle *ksh;
|
struct TEH_KeyStateHandle *ksh;
|
||||||
@ -2659,20 +2659,29 @@ TEH_keys_get_state2 (bool management_only)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
struct TEH_KeyStateHandle *
|
||||||
|
TEH_keys_get_state_for_management_only (void)
|
||||||
|
{
|
||||||
|
return keys_get_state (true);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
struct TEH_KeyStateHandle *
|
struct TEH_KeyStateHandle *
|
||||||
TEH_keys_get_state (void)
|
TEH_keys_get_state (void)
|
||||||
{
|
{
|
||||||
struct TEH_KeyStateHandle *ksh;
|
struct TEH_KeyStateHandle *ksh;
|
||||||
|
|
||||||
ksh = TEH_keys_get_state2 (false);
|
ksh = keys_get_state (false);
|
||||||
if (NULL == ksh)
|
if (NULL == ksh)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if (ksh->management_only)
|
if (ksh->management_only)
|
||||||
{
|
{
|
||||||
if (GNUNET_OK !=
|
if (GNUNET_OK !=
|
||||||
finish_keys_response (ksh))
|
finish_keys_response (ksh))
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
return ksh;
|
return ksh;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2715,6 +2724,7 @@ TEH_keys_denomination_by_hash (
|
|||||||
NULL);
|
NULL);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
return TEH_keys_denomination_by_hash2 (ksh,
|
return TEH_keys_denomination_by_hash2 (ksh,
|
||||||
h_denom_pub,
|
h_denom_pub,
|
||||||
conn,
|
conn,
|
||||||
@ -3410,7 +3420,7 @@ TEH_keys_get_timing (const struct TALER_ExchangePublicKeyP *exchange_pub,
|
|||||||
struct HelperSignkey *hsk;
|
struct HelperSignkey *hsk;
|
||||||
struct GNUNET_PeerIdentity pid;
|
struct GNUNET_PeerIdentity pid;
|
||||||
|
|
||||||
ksh = TEH_keys_get_state2 (true);
|
ksh = TEH_keys_get_state_for_management_only ();
|
||||||
if (NULL == ksh)
|
if (NULL == ksh)
|
||||||
{
|
{
|
||||||
GNUNET_break (0);
|
GNUNET_break (0);
|
||||||
@ -3580,7 +3590,7 @@ TEH_keys_management_get_keys_handler (const struct TEH_RequestHandler *rh,
|
|||||||
json_t *reply;
|
json_t *reply;
|
||||||
|
|
||||||
(void) rh;
|
(void) rh;
|
||||||
ksh = TEH_keys_get_state2 (true);
|
ksh = TEH_keys_get_state_for_management_only ();
|
||||||
if (NULL == ksh)
|
if (NULL == ksh)
|
||||||
{
|
{
|
||||||
return TALER_MHD_reply_with_error (connection,
|
return TALER_MHD_reply_with_error (connection,
|
||||||
|
@ -168,18 +168,12 @@ TEH_check_invariants (void);
|
|||||||
struct TEH_KeyStateHandle *
|
struct TEH_KeyStateHandle *
|
||||||
TEH_keys_get_state (void);
|
TEH_keys_get_state (void);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Obtain the key state. Should ONLY be used
|
* Obtain the key state if we should NOT run finish_keys_response() because we
|
||||||
* directly if @a management_only is true. Otherwise use #TEH_keys_get_state().
|
* only need the state for the /management/keys API
|
||||||
*
|
|
||||||
* @param management_only if we should NOT run finish_keys_response()
|
|
||||||
* because we only need the state for the /management/keys API
|
|
||||||
* @return NULL on error
|
|
||||||
*/
|
*/
|
||||||
struct TEH_KeyStateHandle *
|
struct TEH_KeyStateHandle *
|
||||||
TEH_keys_get_state2 (bool management_only);
|
TEH_keys_get_state_for_management_only (void);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Something changed in the database. Rebuild all key states. This function
|
* Something changed in the database. Rebuild all key states. This function
|
||||||
|
@ -376,8 +376,7 @@ TEH_handler_management_post_keys (
|
|||||||
}
|
}
|
||||||
GNUNET_log (GNUNET_ERROR_TYPE_INFO,
|
GNUNET_log (GNUNET_ERROR_TYPE_INFO,
|
||||||
"Received /management/keys\n");
|
"Received /management/keys\n");
|
||||||
akc.ksh = TEH_keys_get_state2 (true); /* may start its own transaction, thus
|
akc.ksh = TEH_keys_get_state_for_management_only (); /* may start its own transaction, thus must be done here, before we run ours! */
|
||||||
must be done here, before we run ours! */
|
|
||||||
if (NULL == akc.ksh)
|
if (NULL == akc.ksh)
|
||||||
{
|
{
|
||||||
GNUNET_break_op (0);
|
GNUNET_break_op (0);
|
||||||
|
@ -90,8 +90,7 @@ TALER_TESTING_history_entry_cmp (
|
|||||||
(GNUNET_TIME_timestamp_cmp (
|
(GNUNET_TIME_timestamp_cmp (
|
||||||
h1->details.history_details.request_timestamp,
|
h1->details.history_details.request_timestamp,
|
||||||
==,
|
==,
|
||||||
h2->details.history_details.
|
h2->details.history_details.request_timestamp)) &&
|
||||||
request_timestamp)) &&
|
|
||||||
(0 ==
|
(0 ==
|
||||||
GNUNET_memcmp (&h1->details.history_details.reserve_sig,
|
GNUNET_memcmp (&h1->details.history_details.reserve_sig,
|
||||||
&h2->details.history_details.reserve_sig)) )
|
&h2->details.history_details.reserve_sig)) )
|
||||||
@ -131,10 +130,42 @@ TALER_TESTING_history_entry_cmp (
|
|||||||
return 0;
|
return 0;
|
||||||
return 1;
|
return 1;
|
||||||
case TALER_EXCHANGE_RTT_OPEN:
|
case TALER_EXCHANGE_RTT_OPEN:
|
||||||
// FIXME: verify response...
|
if ( (0 ==
|
||||||
|
TALER_amount_cmp (&h1->amount,
|
||||||
|
&h2->amount)) &&
|
||||||
|
(GNUNET_TIME_timestamp_cmp (
|
||||||
|
h1->details.open_request.request_timestamp,
|
||||||
|
==,
|
||||||
|
h2->details.open_request.request_timestamp)) &&
|
||||||
|
(GNUNET_TIME_timestamp_cmp (
|
||||||
|
h1->details.open_request.reserve_expiration,
|
||||||
|
==,
|
||||||
|
h2->details.open_request.reserve_expiration)) &&
|
||||||
|
(h1->details.open_request.purse_limit ==
|
||||||
|
h2->details.open_request.purse_limit) &&
|
||||||
|
(0 ==
|
||||||
|
TALER_amount_cmp (&h1->details.open_request.reserve_payment,
|
||||||
|
&h2->details.open_request.reserve_payment)) &&
|
||||||
|
(0 ==
|
||||||
|
GNUNET_memcmp (&h1->details.open_request.reserve_sig,
|
||||||
|
&h2->details.open_request.reserve_sig)) )
|
||||||
|
return 0;
|
||||||
return 1;
|
return 1;
|
||||||
case TALER_EXCHANGE_RTT_CLOSE:
|
case TALER_EXCHANGE_RTT_CLOSE:
|
||||||
// FIXME: verify response...
|
if ( (0 ==
|
||||||
|
TALER_amount_cmp (&h1->amount,
|
||||||
|
&h2->amount)) &&
|
||||||
|
(GNUNET_TIME_timestamp_cmp (
|
||||||
|
h1->details.close_request.request_timestamp,
|
||||||
|
==,
|
||||||
|
h2->details.close_request.request_timestamp)) &&
|
||||||
|
(0 ==
|
||||||
|
GNUNET_memcmp (&h1->details.close_request.target_account_h_payto,
|
||||||
|
&h2->details.close_request.target_account_h_payto)) &&
|
||||||
|
(0 ==
|
||||||
|
GNUNET_memcmp (&h1->details.close_request.reserve_sig,
|
||||||
|
&h2->details.close_request.reserve_sig)) )
|
||||||
|
return 0;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
GNUNET_assert (0);
|
GNUNET_assert (0);
|
||||||
|
Loading…
Reference in New Issue
Block a user