gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-donau] branch master updated: fixed httpd errors added metrics


From: gnunet
Subject: [taler-donau] branch master updated: fixed httpd errors added metrics
Date: Sun, 07 Jan 2024 16:01:47 +0100

This is an automated email from the git hooks/post-receive script.

johannes-casaburi pushed a commit to branch master
in repository donau.

The following commit(s) were added to refs/heads/master by this push:
     new 9839b09  fixed httpd errors added metrics
9839b09 is described below

commit 9839b09b4ca27b7a217dbde078700420738d35fa
Author: Casaburi Johannes <johannes.casaburi@students.bfh.ch>
AuthorDate: Sun Jan 7 16:00:58 2024 +0100

    fixed httpd errors added metrics
---
 src/donau/Makefile.am                |   5 +-
 src/donau/donau-httpd_charity.h      |   3 +-
 src/donau/donau-httpd_db.c           |  95 ++++++++++----------
 src/donau/donau-httpd_get-charity.c  |  10 +--
 src/donau/donau-httpd_metrics.c      | 165 +++++++++++++++++++++++++++++++++++
 src/donau/donau-httpd_metrics.h      | 136 +++++++++++++++++++++++++++++
 src/donau/donau-httpd_post-charity.c |   9 +-
 7 files changed, 366 insertions(+), 57 deletions(-)

diff --git a/src/donau/Makefile.am b/src/donau/Makefile.am
index 1225358..e89f2ff 100644
--- a/src/donau/Makefile.am
+++ b/src/donau/Makefile.am
@@ -37,9 +37,12 @@ donau_httpd_LDADD = \
 
 donau_httpd_SOURCES = \
   donau-httpd.c donau-httpd.h \
+  donau-httpd_metrics.c donau-httpd_metrics.h \
+  donau-httpd_db.c donau-httpd_db.h \
   donau-httpd_keys.c donau-httpd_keys.h \
   donau-httpd_config.c donau-httpd_config.h \
-  donau-httpd_get-charities.c donau_httpd_charity.h
+  donau-httpd_get-charities.c donau_httpd_charity.h \
+  donau-httpd_get-charity.c donau-httpd_post-charity.c
 
 # Testcases
 
diff --git a/src/donau/donau-httpd_charity.h b/src/donau/donau-httpd_charity.h
index 4210cfa..f16c764 100644
--- a/src/donau/donau-httpd_charity.h
+++ b/src/donau/donau-httpd_charity.h
@@ -22,7 +22,7 @@
 #define DONAU_HTTPD_CHARITY_H
 
 #include <microhttpd.h>
-// #include "donau-httpd.h"
+#include "donau-httpd.h"
 
 
 /**
@@ -50,6 +50,7 @@ DH_handler_charity_get (
   struct DH_RequestContext *rc,
   const char *const args[]);
 
+
 /**
  * Handle a GET "/charities" request.
  *
diff --git a/src/donau/donau-httpd_db.c b/src/donau/donau-httpd_db.c
index c0cad70..5073edd 100644
--- a/src/donau/donau-httpd_db.c
+++ b/src/donau/donau-httpd_db.c
@@ -26,7 +26,7 @@
 #include "taler/taler_mhd_lib.h"
 #include "donaudb_lib.h"
 #include "donau-httpd_db.h"
-#include "donau-httpd_responses.h"
+// #include "donau-httpd_responses.h"
 
 
 enum GNUNET_GenericReturnValue
@@ -39,17 +39,17 @@ DH_DB_run_transaction (struct MHD_Connection *connection,
 {
   if (NULL != mhd_ret)
     *mhd_ret = -1; /* set to invalid value, to help detect bugs */
-  // if (GNUNET_OK !=
-  //    DH_plugin->preflight (DH_plugin->cls))
-  // {
-  //  GNUNET_break (0);
-  //  if (NULL != mhd_ret)
-  //    *mhd_ret = TALER_MHD_reply_with_error (connection,
-  //                                           MHD_HTTP_INTERNAL_SERVER_ERROR,
-  //                                           
TALER_EC_GENERIC_DB_SETUP_FAILED,
-  //                                           NULL);
-  //  return GNUNET_SYSERR;
-  // }
+  if (GNUNET_OK !=
+      DH_plugin->preflight (DH_plugin->cls))
+  {
+    GNUNET_break (0);
+    if (NULL != mhd_ret)
+      *mhd_ret = TALER_MHD_reply_with_error (connection,
+                                             MHD_HTTP_INTERNAL_SERVER_ERROR,
+                                             TALER_EC_GENERIC_DB_SETUP_FAILED,
+                                             NULL);
+    return GNUNET_SYSERR;
+  }
   GNUNET_assert (mt < DH_MT_REQUEST_COUNT);
   DH_METRICS_num_requests[mt]++;
   for (unsigned int retries = 0;
@@ -58,43 +58,46 @@ DH_DB_run_transaction (struct MHD_Connection *connection,
   {
     enum GNUNET_DB_QueryStatus qs;
 
-    // if (GNUNET_OK !=
-    //    DH_plugin->start (DH_plugin->cls,
-    //                      name))
-    // {
-    //  GNUNET_break (0);
-    //  if (NULL != mhd_ret)
-    //    *mhd_ret = TALER_MHD_reply_with_error (connection,
-    //                                           
MHD_HTTP_INTERNAL_SERVER_ERROR,
-    //                                           
TALER_EC_GENERIC_DB_START_FAILED,
-    //                                           NULL);
-    //  return GNUNET_SYSERR;
-    // }
+    if (GNUNET_OK !=
+        DH_plugin->start (DH_plugin->cls,
+                          name))
+    {
+      GNUNET_break (0);
+      if (NULL != mhd_ret)
+        *mhd_ret = TALER_MHD_reply_with_error (connection,
+                                               MHD_HTTP_INTERNAL_SERVER_ERROR,
+                                               
TALER_EC_GENERIC_DB_START_FAILED,
+                                               NULL);
+      return GNUNET_SYSERR;
+    }
     qs = cb (cb_cls,
              connection,
              mhd_ret);
-    // if (0 > qs)
-    // {
-    //  DH_plugin->rollback (DH_plugin->cls);
-    //  if (GNUNET_DB_STATUS_HARD_ERROR == qs)
-    //    return GNUNET_SYSERR;
-    // }
-    // else
-    // {
-    //  qs = DH_plugin->commit (DH_plugin->cls);
-    //  if (GNUNET_DB_STATUS_HARD_ERROR == qs)
-    //  {
-    //    DH_plugin->rollback (DH_plugin->cls);
-    //    if (NULL != mhd_ret)
-    //      *mhd_ret = TALER_MHD_reply_with_error (connection,
-    //                                             
MHD_HTTP_INTERNAL_SERVER_ERROR,
-    //                                             
TALER_EC_GENERIC_DB_COMMIT_FAILED,
-    //                                             NULL);
-    //    return GNUNET_SYSERR;
-    //  }
-    //  if (0 > qs)
-    //    DH_plugin->rollback (DH_plugin->cls);
-    // }
+    if (0 > qs)
+    {
+      DH_plugin->rollback (DH_plugin->cls);
+      if (GNUNET_DB_STATUS_HARD_ERROR == qs)
+        return GNUNET_SYSERR;
+    }
+    else
+    {
+      qs = DH_plugin->commit (DH_plugin->cls);
+      if (GNUNET_DB_STATUS_HARD_ERROR == qs)
+      {
+        DH_plugin->rollback (DH_plugin->cls);
+        if (NULL != mhd_ret)
+          *mhd_ret = TALER_MHD_reply_with_error (connection,
+                                                 
MHD_HTTP_INTERNAL_SERVER_ERROR,
+                                                 
TALER_EC_GENERIC_DB_COMMIT_FAILED,
+                                                 NULL);
+        return GNUNET_SYSERR;
+      }
+      if (0 > qs)
+        DH_plugin->rollback (DH_plugin->cls);
+    }
+    /* make sure callback did not violate invariants! */
+    GNUNET_assert ( (NULL == mhd_ret) ||
+                    (-1 == (int) *mhd_ret) );
     if (0 <= qs)
       return GNUNET_OK;
     DH_METRICS_num_conflict[mt]++;
diff --git a/src/donau/donau-httpd_get-charity.c 
b/src/donau/donau-httpd_get-charity.c
index 24798e8..4f9852a 100644
--- a/src/donau/donau-httpd_get-charity.c
+++ b/src/donau/donau-httpd_get-charity.c
@@ -18,7 +18,7 @@
  * @brief Return summary information about AML decision
  * @author Johannes Casaburi
  */
-#include "platform.h"
+#include "taler/platform.h"
 #include <gnunet/gnunet_util_lib.h>
 #include <jansson.h>
 #include <microhttpd.h>
@@ -26,9 +26,9 @@
 #include "taler/taler_json_lib.h"
 #include "taler/taler_mhd_lib.h"
 #include "taler/taler_signatures.h"
-#include "donau-httpd.h"
 #include "donaudb_plugin.h"
 #include "donau-httpd_charity.h"
+// #include "donau-httpd.h"
 // #include "donau-httpd_metrics.h"
 
 
@@ -70,7 +70,6 @@ DH_handler_charity_get (
     bool none = false;
     MHD_RESULT result;
 
-    GNUNET_assert (NULL != charity_info);
     qs = DH_plugin->get_charity (DH_plugin->cls,
                                  charity_id,
                                  &charity_url,
@@ -100,9 +99,8 @@ DH_handler_charity_get (
     }
 
     result = TALER_MHD_REPLY_JSON_PACK (
-      connection,
-      http_status,
-      TALER_MHD_PACK_EC (ec),
+      rc->connection,
+      MHD_HTTP_OK,
       GNUNET_JSON_pack_string ("url",
                                charity_url),
       GNUNET_JSON_pack_string ("name",
diff --git a/src/donau/donau-httpd_metrics.c b/src/donau/donau-httpd_metrics.c
new file mode 100644
index 0000000..c37e094
--- /dev/null
+++ b/src/donau/donau-httpd_metrics.c
@@ -0,0 +1,165 @@
+/*
+  This file is part of TALER
+  Copyright (C) 2015-2021 Taler Systems SA
+
+  TALER is free software; you can redistribute it and/or modify it under the
+  terms of the GNU Affero General Public License as published by the Free 
Software
+  Foundation; either version 3, or (at your option) any later version.
+
+  TALER is distributed in the hope that it will be useful, but WITHOUT ANY
+  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+  A PARTICULAR PURPOSE.  See the GNU Affero General Public License for more 
details.
+
+  You should have received a copy of the GNU Affero General Public License 
along with
+  TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
+*/
+/**
+ * @file donau-httpd_metrics.c
+ * @brief Handle /metrics requests
+ * @author Christian Grothoff
+ */
+#include "taler/platform.h"
+#include <gnunet/gnunet_json_lib.h>
+#include "taler/taler_dbevents.h"
+// #include "donau-httpd_responses.h"
+#include "donau-httpd_keys.h"
+#include "donau-httpd_metrics.h"
+#include "taler/taler_json_lib.h"
+#include "taler/taler_mhd_lib.h"
+#include <jansson.h>
+
+
+unsigned long long DH_METRICS_num_requests[DH_MT_REQUEST_COUNT];
+
+unsigned long long DH_METRICS_batch_withdraw_num_coins;
+
+unsigned long long DH_METRICS_num_conflict[DH_MT_REQUEST_COUNT];
+
+unsigned long long DH_METRICS_num_signatures[DH_MT_SIGNATURE_COUNT];
+
+unsigned long long DH_METRICS_num_verifications[DH_MT_SIGNATURE_COUNT];
+
+unsigned long long DH_METRICS_num_keyexchanges[DH_MT_KEYX_COUNT];
+
+unsigned long long DH_METRICS_num_success[DH_MT_SUCCESS_COUNT];
+
+
+MHD_RESULT
+DH_handler_metrics (struct DH_RequestContext *rc,
+                    const char *const args[])
+{
+  char *reply;
+  struct MHD_Response *resp;
+  MHD_RESULT ret;
+
+  (void) args;
+  GNUNET_asprintf (&reply,
+                   "taler_exchange_success_transactions{type=\"%s\"} %llu\n"
+                   "taler_exchange_success_transactions{type=\"%s\"} %llu\n"
+                   "taler_exchange_success_transactions{type=\"%s\"} %llu\n"
+                   "taler_exchange_success_transactions{type=\"%s\"} %llu\n"
+                   "taler_exchange_success_transactions{type=\"%s\"} %llu\n"
+                   "# HELP taler_exchange_serialization_failures "
+                   " number of database serialization errors by type\n"
+                   "# TYPE taler_exchange_serialization_failures counter\n"
+                   "taler_exchange_serialization_failures{type=\"%s\"} %llu\n"
+                   "taler_exchange_serialization_failures{type=\"%s\"} %llu\n"
+                   "taler_exchange_serialization_failures{type=\"%s\"} %llu\n"
+                   "taler_exchange_serialization_failures{type=\"%s\"} %llu\n"
+                   "# HELP taler_exchange_received_requests "
+                   " number of received requests by type\n"
+                   "# TYPE taler_exchange_received_requests counter\n"
+                   "taler_exchange_received_requests{type=\"%s\"} %llu\n"
+                   "taler_exchange_received_requests{type=\"%s\"} %llu\n"
+                   "taler_exchange_received_requests{type=\"%s\"} %llu\n"
+                   "taler_exchange_received_requests{type=\"%s\"} %llu\n"
+                   "taler_exchange_idempotent_requests{type=\"%s\"} %llu\n"
+#if NOT_YET_IMPLEMENTED
+                   "taler_exchange_idempotent_requests{type=\"%s\"} %llu\n"
+                   "taler_exchange_idempotent_requests{type=\"%s\"} %llu\n"
+#endif
+                   "taler_exchange_idempotent_requests{type=\"%s\"} %llu\n"
+                   "# HELP taler_exchange_num_signatures "
+                   " number of signatures created by cipher\n"
+                   "# TYPE taler_exchange_num_signatures counter\n"
+                   "taler_exchange_num_signatures{type=\"%s\"} %llu\n"
+                   "taler_exchange_num_signatures{type=\"%s\"} %llu\n"
+                   "taler_exchange_num_signatures{type=\"%s\"} %llu\n"
+                   "# HELP taler_exchange_num_signature_verifications "
+                   " number of signatures verified by cipher\n"
+                   "# TYPE taler_exchange_num_signature_verifications 
counter\n"
+                   "taler_exchange_num_signature_verifications{type=\"%s\"} 
%llu\n"
+                   "taler_exchange_num_signature_verifications{type=\"%s\"} 
%llu\n"
+                   "taler_exchange_num_signature_verifications{type=\"%s\"} 
%llu\n"
+                   "# HELP taler_exchange_num_keyexchanges "
+                   " number of key exchanges done by cipher\n"
+                   "# TYPE taler_exchange_num_keyexchanges counter\n"
+                   "taler_exchange_num_keyexchanges{type=\"%s\"} %llu\n"
+                   "# HELP taler_exchange_batch_withdraw_num_coins "
+                   " number of coins withdrawn in a batch-withdraw request\n"
+                   "# TYPE taler_exchange_batch_withdraw_num_coins counter\n"
+                   "taler_exchange_batch_withdraw_num_coins{} %llu\n",
+                   "deposit",
+                   DH_METRICS_num_success[DH_MT_SUCCESS_DEPOSIT],
+                   "withdraw",
+                   DH_METRICS_num_success[DH_MT_SUCCESS_WITHDRAW],
+                   "batch-withdraw",
+                   DH_METRICS_num_success[DH_MT_SUCCESS_BATCH_WITHDRAW],
+                   "melt",
+                   DH_METRICS_num_success[DH_MT_SUCCESS_MELT],
+                   "refresh-reveal",
+                   DH_METRICS_num_success[DH_MT_SUCCESS_REFRESH_REVEAL],
+                   "other",
+                   DH_METRICS_num_conflict[DH_MT_REQUEST_OTHER],
+                   "deposit",
+                   DH_METRICS_num_conflict[DH_MT_REQUEST_DEPOSIT],
+                   "withdraw",
+                   DH_METRICS_num_conflict[DH_MT_REQUEST_WITHDRAW],
+                   "melt",
+                   DH_METRICS_num_conflict[DH_MT_REQUEST_MELT],
+                   "other",
+                   DH_METRICS_num_requests[DH_MT_REQUEST_OTHER],
+                   "deposit",
+                   DH_METRICS_num_requests[DH_MT_REQUEST_DEPOSIT],
+                   "withdraw",
+                   DH_METRICS_num_requests[DH_MT_REQUEST_WITHDRAW],
+                   "melt",
+                   DH_METRICS_num_requests[DH_MT_REQUEST_MELT],
+                   "withdraw",
+                   DH_METRICS_num_requests[DH_MT_REQUEST_IDEMPOTENT_WITHDRAW],
+#if NOT_YET_IMPLEMENTED
+                   "deposit",
+                   DH_METRICS_num_requests[DH_MT_REQUEST_IDEMPOTENT_DEPOSIT],
+                   "melt",
+                   DH_METRICS_num_requests[DH_MT_REQUEST_IDEMPOTENT_MELT],
+#endif
+                   "batch-withdraw",
+                   DH_METRICS_num_requests[
+                     DH_MT_REQUEST_IDEMPOTENT_BATCH_WITHDRAW],
+                   "rsa",
+                   DH_METRICS_num_signatures[DH_MT_SIGNATURE_RSA],
+                   "cs",
+                   DH_METRICS_num_signatures[DH_MT_SIGNATURE_CS],
+                   "eddsa",
+                   DH_METRICS_num_signatures[DH_MT_SIGNATURE_EDDSA],
+                   "rsa",
+                   DH_METRICS_num_verifications[DH_MT_SIGNATURE_RSA],
+                   "cs",
+                   DH_METRICS_num_verifications[DH_MT_SIGNATURE_CS],
+                   "eddsa",
+                   DH_METRICS_num_verifications[DH_MT_SIGNATURE_EDDSA],
+                   "ecdh",
+                   DH_METRICS_num_keyexchanges[DH_MT_KEYX_ECDH],
+                   DH_METRICS_batch_withdraw_num_coins);
+  resp = MHD_create_response_from_buffer (strlen (reply),
+                                          reply,
+                                          MHD_RESPMEM_MUST_FREE);
+  ret = MHD_queue_response (rc->connection,
+                            MHD_HTTP_OK,
+                            resp);
+  MHD_destroy_response (resp);
+  return ret;
+}
+
+
+/* end of donau-httpd_metrics.c */
diff --git a/src/donau/donau-httpd_metrics.h b/src/donau/donau-httpd_metrics.h
new file mode 100644
index 0000000..ee2149b
--- /dev/null
+++ b/src/donau/donau-httpd_metrics.h
@@ -0,0 +1,136 @@
+/*
+  This file is part of TALER
+  Copyright (C) 2014--2021 Taler Systems SA
+
+  TALER is free software; you can redistribute it and/or modify it under the
+  terms of the GNU Affero General Public License as published by the Free 
Software
+  Foundation; either version 3, or (at your option) any later version.
+
+  TALER is distributed in the hope that it will be useful, but WITHOUT ANY
+  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+  A PARTICULAR PURPOSE.  See the GNU Affero General Public License for more 
details.
+
+  You should have received a copy of the GNU Affero General Public License 
along with
+  TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
+*/
+/**
+ * @file donau-httpd_metrics.h
+ * @brief Handle /metrics requests
+ * @author Christian Grothoff
+ */
+#ifndef DONAU_HTTPD_METRICS_H
+#define DONAU_HTTPD_METRICS_H
+
+#include <gnunet/gnunet_util_lib.h>
+#include <microhttpd.h>
+#include "donau-httpd.h"
+
+
+/**
+ * Request types for which we collect metrics.
+ */
+enum DH_MetricTypeRequest
+{
+  DH_MT_REQUEST_OTHER = 0,
+  DH_MT_REQUEST_DEPOSIT = 1,
+  DH_MT_REQUEST_WITHDRAW = 2,
+  DH_MT_REQUEST_AGE_WITHDRAW = 3,
+  DH_MT_REQUEST_MELT = 4,
+  DH_MT_REQUEST_PURSE_CREATE = 5,
+  DH_MT_REQUEST_PURSE_MERGE = 6,
+  DH_MT_REQUEST_RESERVE_PURSE = 7,
+  DH_MT_REQUEST_PURSE_DEPOSIT = 8,
+  DH_MT_REQUEST_IDEMPOTENT_DEPOSIT = 9,
+  DH_MT_REQUEST_IDEMPOTENT_WITHDRAW = 10,
+  DH_MT_REQUEST_IDEMPOTENT_AGE_WITHDRAW = 11,
+  DH_MT_REQUEST_IDEMPOTENT_MELT = 12,
+  DH_MT_REQUEST_IDEMPOTENT_BATCH_WITHDRAW = 13,
+  DH_MT_REQUEST_BATCH_DEPOSIT = 14,
+  DH_MT_REQUEST_POLICY_FULFILLMENT = 15,
+  DH_MT_REQUEST_COUNT = 16 /* MUST BE LAST! */
+};
+
+/**
+ * Success types for which we collect metrics.
+ */
+enum DH_MetricTypeSuccess
+{
+  DH_MT_SUCCESS_DEPOSIT = 0,
+  DH_MT_SUCCESS_WITHDRAW = 1,
+  DH_MT_SUCCESS_AGE_WITHDRAW = 2,
+  DH_MT_SUCCESS_BATCH_WITHDRAW = 3,
+  DH_MT_SUCCESS_MELT = 4,
+  DH_MT_SUCCESS_REFRESH_REVEAL = 5,
+  DH_MT_SUCCESS_AGE_WITHDRAW_REVEAL = 6,
+  DH_MT_SUCCESS_COUNT = 7 /* MUST BE LAST! */
+};
+
+/**
+ * Cipher types for which we collect signature metrics.
+ */
+enum DH_MetricTypeSignature
+{
+  DH_MT_SIGNATURE_RSA = 0,
+  DH_MT_SIGNATURE_CS = 1,
+  DH_MT_SIGNATURE_EDDSA = 2,
+  DH_MT_SIGNATURE_COUNT = 3
+};
+
+/**
+ * Cipher types for which we collect key exchange metrics.
+ */
+enum DH_MetricTypeKeyX
+{
+  DH_MT_KEYX_ECDH = 0,
+  DH_MT_KEYX_COUNT = 1
+};
+
+/**
+ * Number of requests handled of the respective type.
+ */
+extern unsigned long long DH_METRICS_num_requests[DH_MT_REQUEST_COUNT];
+
+/**
+ * Number of successful requests handled of the respective type.
+ */
+extern unsigned long long DH_METRICS_num_success[DH_MT_SUCCESS_COUNT];
+
+/**
+ * Number of coins withdrawn in a batch-withdraw request
+ */
+extern unsigned long long DH_METRICS_batch_withdraw_num_coins;
+
+/**
+ * Number of serialization errors encountered when
+ * handling requests of the respective type.
+ */
+extern unsigned long long DH_METRICS_num_conflict[DH_MT_REQUEST_COUNT];
+
+/**
+ * Number of signatures created by the respective cipher.
+ */
+extern unsigned long long DH_METRICS_num_signatures[DH_MT_SIGNATURE_COUNT];
+
+/**
+ * Number of signatures verified by the respective cipher.
+ */
+extern unsigned long long DH_METRICS_num_verifications[DH_MT_SIGNATURE_COUNT];
+
+/**
+ * Number of key exchanges done with the respective cipher.
+ */
+extern unsigned long long DH_METRICS_num_keyexchanges[DH_MT_KEYX_COUNT];
+
+/**
+ * Handle a "/metrics" request.
+ *
+ * @param rc request context
+ * @param args array of additional options (must be empty for this function)
+ * @return MHD result code
+ */
+MHD_RESULT
+DH_handler_metrics (struct DH_RequestContext *rc,
+                    const char *const args[]);
+
+
+#endif
diff --git a/src/donau/donau-httpd_post-charity.c 
b/src/donau/donau-httpd_post-charity.c
index 99008a4..1268445 100644
--- a/src/donau/donau-httpd_post-charity.c
+++ b/src/donau/donau-httpd_post-charity.c
@@ -18,7 +18,7 @@
  * @brief Handle request to insert a charity.
  * @author Johannes Casaburi
  */
-#include "platform.h"
+#include "taler/platform.h"
 #include <gnunet/gnunet_util_lib.h>
 #include <gnunet/gnunet_json_lib.h>
 #include <jansson.h>
@@ -27,7 +27,10 @@
 #include "taler/taler_json_lib.h"
 #include "taler/taler_mhd_lib.h"
 #include "taler/taler_signatures.h"
-#include "taler/taler-exchange-httpd_responses.h"
+#include "donaudb_plugin.h"
+#include "donau-httpd_charity.h"
+#include "donau-httpd_db.h"
+#include "donau-httpd_metrics.h"
 
 
 /**
@@ -128,7 +131,7 @@ DH_handler_charity_post (
     if (GNUNET_OK !=
         DH_DB_run_transaction (connection,
                                "insert_charity",
-                               TEH_MT_REQUEST_OTHER,
+                               DH_MT_REQUEST_OTHER,
                                &mhd_ret,
                                &insert_charity,
                                &icc))

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]