Adapted Namestore and reclaim REST
authorMarkus Voggenreiter <Markus.Voggenreiter@tum.de>
Wed, 9 Oct 2019 17:51:40 +0000 (19:51 +0200)
committerSchanzenbach, Martin <mschanzenbach@posteo.de>
Mon, 13 Jan 2020 12:31:00 +0000 (13:31 +0100)
src/include/gnunet_gnsrecord_lib.h
src/reclaim/plugin_gnsrecord_reclaim.c
src/reclaim/plugin_rest_reclaim.c

index 3a49d98b9fc286ba0081812c984a6d56765d4941..41e23e1aba0cfa791856430bf6f0052415b7c89f 100644 (file)
@@ -140,6 +140,11 @@ extern "C" {
  */
 #define GNUNET_GNSRECORD_TYPE_RECLAIM_OIDC_REDIRECT 65553
 
+/**
+ * Record type for reclaim attestation records
+ */
+#define GNUNET_GNSRECORD_TYPE_RECLAIM_ATTEST_ATTR 65554
+
 /**
  * Flags that can be set for a record.
  */
index d530ef01d9309c93d987a6e86eca9675cbd64ddb..58345edc4f13494333cec174929b717a1654f18e 100644 (file)
@@ -54,6 +54,7 @@ value_to_string (void *cls, uint32_t type, const void *data, size_t data_size)
   case GNUNET_GNSRECORD_TYPE_RECLAIM_ATTR_REF:
   case GNUNET_GNSRECORD_TYPE_RECLAIM_TICKET:
   case GNUNET_GNSRECORD_TYPE_RECLAIM_MASTER:
+  case GNUNET_GNSRECORD_TYPE_RECLAIM_ATTEST_ATTR:
     return GNUNET_STRINGS_data_to_string_alloc (data, data_size);
 
   default:
@@ -93,6 +94,7 @@ string_to_value (void *cls, uint32_t type, const char *s, void **data,
   case GNUNET_GNSRECORD_TYPE_RECLAIM_ATTR_REF:
   case GNUNET_GNSRECORD_TYPE_RECLAIM_MASTER:
   case GNUNET_GNSRECORD_TYPE_RECLAIM_TICKET:
+  case GNUNET_GNSRECORD_TYPE_RECLAIM_ATTEST_ATTR:
     return GNUNET_STRINGS_string_to_data (s, strlen (s), *data, *data_size);
 
   default:
@@ -112,6 +114,7 @@ static struct
 } name_map[] = {
   { "RECLAIM_ATTR", GNUNET_GNSRECORD_TYPE_RECLAIM_ATTR },
   { "RECLAIM_ATTR_REF", GNUNET_GNSRECORD_TYPE_RECLAIM_ATTR_REF },
+  { "RECLAIM_ATTEST", GNUNET_GNSRECORD_TYPE_RECLAIM_ATTEST_ATTR },
   { "RECLAIM_MASTER", GNUNET_GNSRECORD_TYPE_RECLAIM_MASTER },
   { "RECLAIM_OIDC_CLIENT", GNUNET_GNSRECORD_TYPE_RECLAIM_OIDC_CLIENT },
   { "RECLAIM_OIDC_REDIRECT", GNUNET_GNSRECORD_TYPE_RECLAIM_OIDC_REDIRECT },
index 9a75b2d16cb2281bfb43605907c0fc8d9ab3312b..c58b1560b754b01991b0834b3685f8c80c79841a 100644 (file)
  */
 #define GNUNET_REST_API_NS_RECLAIM_ATTRIBUTES "/reclaim/attributes"
 
+/**
+   * Attestation namespace
+   */
+#define GNUNET_REST_API_NS_RECLAIM_ATTESTATION_REFERENCE "/reclaim/attestation"
+
 /**
  * Ticket namespace
  */
@@ -432,7 +437,36 @@ ticket_collect (void *cls, const struct GNUNET_RECLAIM_Ticket *ticket)
   GNUNET_free (tmp);
   GNUNET_RECLAIM_ticket_iteration_next (handle->ticket_it);
 }
+static void
+add_attestation_cont (struct GNUNET_REST_RequestHandle *con_handle,
+                      const char *url,
+                      void *cls)
+{
+  GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Adding Attestations not supported\n");
+  GNUNET_SCHEDULER_add_now (&do_error, handle);
+  return;
+}
+/*Placeholder*/
+static void
+list_attestation_cont (struct GNUNET_REST_RequestHandle *con_handle,
+                       const char *url,
+                       void *cls)
+{
+  GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Listing Attestations not supported\n");
+  GNUNET_SCHEDULER_add_now (&do_error, handle);
+  return;
+}
 
+/*Placeholder*/
+static void
+delete_attestation_cont (struct GNUNET_REST_RequestHandle *con_handle,
+                         const char *url,
+                         void *cls)
+{
+  GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Deleting Attestations not supported\n");
+  GNUNET_SCHEDULER_add_now (&do_error, handle);
+  return;
+}
 
 /**
  * List tickets for identity request
@@ -968,6 +1002,15 @@ init_cont (struct RequestHandle *handle)
     { MHD_HTTP_METHOD_DELETE,
       GNUNET_REST_API_NS_RECLAIM_ATTRIBUTES,
       &delete_attribute_cont },
+    { MHD_HTTP_METHOD_GET,
+      GNUNET_REST_API_NS_RECLAIM_ATTESTATION_REFERENCE,
+      &list_attestation_cont },
+    { MHD_HTTP_METHOD_POST,
+      GNUNET_REST_API_NS_RECLAIM_ATTESTATION_REFERENCE,
+      &add_attestation_cont },
+    { MHD_HTTP_METHOD_DELETE,
+      GNUNET_REST_API_NS_RECLAIM_ATTESTATION_REFERENCE,
+      &delete_attestation_cont },
     { MHD_HTTP_METHOD_GET,
       GNUNET_REST_API_NS_IDENTITY_TICKETS,
       &list_tickets_cont },