aboutsummaryrefslogtreecommitdiff
path: root/src/include
diff options
context:
space:
mode:
authorSchanzenbach, Martin <mschanzenbach@posteo.de>2019-04-14 15:23:44 +0200
committerSchanzenbach, Martin <mschanzenbach@posteo.de>2019-04-14 15:23:44 +0200
commit494af3383d2a5d3402e1f03209cb574af86079a8 (patch)
tree6b457d61846e2f18c3f1b4ace0e3e58480e3e15c /src/include
parenta277e037fefe605c93d81869ac514f87cad25768 (diff)
downloadgnunet-494af3383d2a5d3402e1f03209cb574af86079a8.tar.gz
gnunet-494af3383d2a5d3402e1f03209cb574af86079a8.zip
RECLAIM: bugfixes; add delete attribute API
Diffstat (limited to 'src/include')
-rw-r--r--src/include/gnunet_protocols.h90
-rw-r--r--src/include/gnunet_reclaim_plugin.h123
-rw-r--r--src/include/gnunet_reclaim_service.h19
3 files changed, 62 insertions, 170 deletions
diff --git a/src/include/gnunet_protocols.h b/src/include/gnunet_protocols.h
index f461249eb..e402460c0 100644
--- a/src/include/gnunet_protocols.h
+++ b/src/include/gnunet_protocols.h
@@ -43,9 +43,8 @@
43#define GNUNET_PROTOCOLS_H 43#define GNUNET_PROTOCOLS_H
44 44
45#ifdef __cplusplus 45#ifdef __cplusplus
46extern "C" 46extern "C" {
47{ 47#if 0 /* keep Emacsens' auto-indent happy */
48#if 0 /* keep Emacsens' auto-indent happy */
49} 48}
50#endif 49#endif
51#endif 50#endif
@@ -252,7 +251,8 @@ extern "C"
252#define GNUNET_MESSAGE_TYPE_DV_DISCONNECT 50 251#define GNUNET_MESSAGE_TYPE_DV_DISCONNECT 50
253 252
254/** 253/**
255 * P2P DV message telling plugin that a message transmission failed (negative ACK) 254 * P2P DV message telling plugin that a message transmission failed (negative
255 * ACK)
256 */ 256 */
257#define GNUNET_MESSAGE_TYPE_DV_SEND_NACK 51 257#define GNUNET_MESSAGE_TYPE_DV_SEND_NACK 51
258 258
@@ -622,37 +622,37 @@ extern "C"
622/** 622/**
623 * Receive information about transiting GETs 623 * Receive information about transiting GETs
624 */ 624 */
625#define GNUNET_MESSAGE_TYPE_DHT_MONITOR_GET 149 625#define GNUNET_MESSAGE_TYPE_DHT_MONITOR_GET 149
626 626
627/** 627/**
628 * Receive information about transiting GET responses 628 * Receive information about transiting GET responses
629 */ 629 */
630#define GNUNET_MESSAGE_TYPE_DHT_MONITOR_GET_RESP 150 630#define GNUNET_MESSAGE_TYPE_DHT_MONITOR_GET_RESP 150
631 631
632/** 632/**
633 * Receive information about transiting PUTs 633 * Receive information about transiting PUTs
634 */ 634 */
635#define GNUNET_MESSAGE_TYPE_DHT_MONITOR_PUT 151 635#define GNUNET_MESSAGE_TYPE_DHT_MONITOR_PUT 151
636 636
637/** 637/**
638 * Receive information about transiting PUT responses (TODO) 638 * Receive information about transiting PUT responses (TODO)
639 */ 639 */
640#define GNUNET_MESSAGE_TYPE_DHT_MONITOR_PUT_RESP 152 640#define GNUNET_MESSAGE_TYPE_DHT_MONITOR_PUT_RESP 152
641 641
642/** 642/**
643 * Request information about transiting messages 643 * Request information about transiting messages
644 */ 644 */
645#define GNUNET_MESSAGE_TYPE_DHT_MONITOR_START 153 645#define GNUNET_MESSAGE_TYPE_DHT_MONITOR_START 153
646 646
647/** 647/**
648 * Stop information about transiting messages 648 * Stop information about transiting messages
649 */ 649 */
650#define GNUNET_MESSAGE_TYPE_DHT_MONITOR_STOP 154 650#define GNUNET_MESSAGE_TYPE_DHT_MONITOR_STOP 154
651 651
652/** 652/**
653 * Certain results are already known to the client, filter those. 653 * Certain results are already known to the client, filter those.
654 */ 654 */
655#define GNUNET_MESSAGE_TYPE_DHT_CLIENT_GET_RESULTS_KNOWN 156 655#define GNUNET_MESSAGE_TYPE_DHT_CLIENT_GET_RESULTS_KNOWN 156
656 656
657/** 657/**
658 * Further X-VINE DHT messages continued from 880 658 * Further X-VINE DHT messages continued from 880
@@ -829,7 +829,6 @@ extern "C"
829#define GNUNET_MESSAGE_TYPE_DNS_HELPER 214 829#define GNUNET_MESSAGE_TYPE_DNS_HELPER 214
830 830
831 831
832
833/******************************************************************************* 832/*******************************************************************************
834 * CHAT message types START 833 * CHAT message types START
835 ******************************************************************************/ 834 ******************************************************************************/
@@ -1490,7 +1489,8 @@ extern "C"
1490#define GNUNET_MESSAGE_TYPE_TESTBED_SLAVE_CONFIGURATION 480 1489#define GNUNET_MESSAGE_TYPE_TESTBED_SLAVE_CONFIGURATION 480
1491 1490
1492/** 1491/**
1493 * Message to signal the result of #GNUNET_MESSAGE_TYPE_TESTBED_LINK_CONTROLLERS request 1492 * Message to signal the result of #GNUNET_MESSAGE_TYPE_TESTBED_LINK_CONTROLLERS
1493 * request
1494 */ 1494 */
1495#define GNUNET_MESSAGE_TYPE_TESTBED_LINK_CONTROLLERS_RESULT 481 1495#define GNUNET_MESSAGE_TYPE_TESTBED_LINK_CONTROLLERS_RESULT 481
1496 1496
@@ -1600,8 +1600,8 @@ extern "C"
1600#define GNUNET_MESSAGE_TYPE_CONSENSUS_CLIENT_CONCLUDE 524 1600#define GNUNET_MESSAGE_TYPE_CONSENSUS_CLIENT_CONCLUDE 524
1601 1601
1602/** 1602/**
1603 * Sent by service to client in order to signal a completed consensus conclusion. 1603 * Sent by service to client in order to signal a completed consensus
1604 * Last message sent in a consensus session. 1604 * conclusion. Last message sent in a consensus session.
1605 */ 1605 */
1606#define GNUNET_MESSAGE_TYPE_CONSENSUS_CLIENT_CONCLUDE_DONE 525 1606#define GNUNET_MESSAGE_TYPE_CONSENSUS_CLIENT_CONCLUDE_DONE 525
1607 1607
@@ -1646,7 +1646,8 @@ extern "C"
1646#define GNUNET_MESSAGE_TYPE_CONSENSUS_P2P_HELLO 546 1646#define GNUNET_MESSAGE_TYPE_CONSENSUS_P2P_HELLO 546
1647 1647
1648/** 1648/**
1649 * Report that the peer is synced with the partner after successfuly decoding the invertible bloom filter. 1649 * Report that the peer is synced with the partner after successfuly decoding
1650 * the invertible bloom filter.
1650 */ 1651 */
1651#define GNUNET_MESSAGE_TYPE_CONSENSUS_P2P_SYNCED 547 1652#define GNUNET_MESSAGE_TYPE_CONSENSUS_P2P_SYNCED 547
1652 1653
@@ -1871,7 +1872,6 @@ extern "C"
1871#define GNUNET_MESSAGE_TYPE_TESTBED_LOGGER_ACK 601 1872#define GNUNET_MESSAGE_TYPE_TESTBED_LOGGER_ACK 601
1872 1873
1873 1874
1874
1875/** 1875/**
1876 * Advertise regex capability. 1876 * Advertise regex capability.
1877 */ 1877 */
@@ -2023,9 +2023,6 @@ extern "C"
2023#define GNUNET_MESSAGE_TYPE_SCALARPRODUCT_ECC_BOB_CRYPTODATA 652 2023#define GNUNET_MESSAGE_TYPE_SCALARPRODUCT_ECC_BOB_CRYPTODATA 652
2024 2024
2025 2025
2026
2027
2028
2029/******************************************************************************* 2026/*******************************************************************************
2030 * PSYCSTORE message types 2027 * PSYCSTORE message types
2031 ******************************************************************************/ 2028 ******************************************************************************/
@@ -2122,8 +2119,10 @@ extern "C"
2122/** S<--C: PSYC message which contains one or more message parts. */ 2119/** S<--C: PSYC message which contains one or more message parts. */
2123#define GNUNET_MESSAGE_TYPE_PSYC_MESSAGE 691 2120#define GNUNET_MESSAGE_TYPE_PSYC_MESSAGE 691
2124 2121
2125/** M<->S<->C: PSYC message which contains a header and one or more message parts. */ 2122/** M<->S<->C: PSYC message which contains a header and one or more message
2126#define GNUNET_MESSAGE_TYPE_PSYC_MESSAGE_HEADER 692 // FIXME: start using this where appropriate 2123 * parts. */
2124#define GNUNET_MESSAGE_TYPE_PSYC_MESSAGE_HEADER \
2125 692 // FIXME: start using this where appropriate
2127 2126
2128/** Message part: method */ 2127/** Message part: method */
2129#define GNUNET_MESSAGE_TYPE_PSYC_MESSAGE_METHOD 693 2128#define GNUNET_MESSAGE_TYPE_PSYC_MESSAGE_METHOD 693
@@ -2333,7 +2332,6 @@ extern "C"
2333#define GNUNET_MESSAGE_TYPE_MULTICAST_REPLAY_RESPONSE_END 762 2332#define GNUNET_MESSAGE_TYPE_MULTICAST_REPLAY_RESPONSE_END 762
2334 2333
2335 2334
2336
2337/******************************************************************************* 2335/*******************************************************************************
2338 * SECRETSHARING message types 2336 * SECRETSHARING message types
2339 ******************************************************************************/ 2337 ******************************************************************************/
@@ -2544,7 +2542,7 @@ extern "C"
2544/** 2542/**
2545 * Acknowledge receiving ACT MALICIOUS request 2543 * Acknowledge receiving ACT MALICIOUS request
2546 */ 2544 */
2547#define GNUNET_MESSAGE_TYPE_DHT_CLIENT_ACT_MALICIOUS_OK 894 2545#define GNUNET_MESSAGE_TYPE_DHT_CLIENT_ACT_MALICIOUS_OK 894
2548 2546
2549#endif 2547#endif
2550 2548
@@ -2606,23 +2604,22 @@ extern "C"
2606/** 2604/**
2607 * RPS check liveliness message to check liveliness of other peer 2605 * RPS check liveliness message to check liveliness of other peer
2608 */ 2606 */
2609#define GNUNET_MESSAGE_TYPE_RPS_PP_CHECK_LIVE 950 2607#define GNUNET_MESSAGE_TYPE_RPS_PP_CHECK_LIVE 950
2610 2608
2611/** 2609/**
2612 * RPS PUSH message to push own ID to another peer 2610 * RPS PUSH message to push own ID to another peer
2613 */ 2611 */
2614#define GNUNET_MESSAGE_TYPE_RPS_PP_PUSH 951 2612#define GNUNET_MESSAGE_TYPE_RPS_PP_PUSH 951
2615 2613
2616/** 2614/**
2617 * RPS PULL REQUEST message to request the local view of another peer 2615 * RPS PULL REQUEST message to request the local view of another peer
2618 */ 2616 */
2619#define GNUNET_MESSAGE_TYPE_RPS_PP_PULL_REQUEST 952 2617#define GNUNET_MESSAGE_TYPE_RPS_PP_PULL_REQUEST 952
2620 2618
2621/** 2619/**
2622 * RPS PULL REPLY message which contains the view of the other peer 2620 * RPS PULL REPLY message which contains the view of the other peer
2623 */ 2621 */
2624#define GNUNET_MESSAGE_TYPE_RPS_PP_PULL_REPLY 953 2622#define GNUNET_MESSAGE_TYPE_RPS_PP_PULL_REPLY 953
2625
2626 2623
2627 2624
2628/* Client-Service Messages */ 2625/* Client-Service Messages */
@@ -2631,25 +2628,25 @@ extern "C"
2631/** 2628/**
2632 * RPS CS SEED Message for the Client to seed peers into rps 2629 * RPS CS SEED Message for the Client to seed peers into rps
2633 */ 2630 */
2634#define GNUNET_MESSAGE_TYPE_RPS_CS_SEED 954 2631#define GNUNET_MESSAGE_TYPE_RPS_CS_SEED 954
2635 2632
2636#if ENABLE_MALICIOUS 2633#if ENABLE_MALICIOUS
2637/** 2634/**
2638 * Turn RPS service malicious 2635 * Turn RPS service malicious
2639 */ 2636 */
2640#define GNUNET_MESSAGE_TYPE_RPS_ACT_MALICIOUS 955 2637#define GNUNET_MESSAGE_TYPE_RPS_ACT_MALICIOUS 955
2641 2638
2642#endif /* ENABLE_MALICIOUS */ 2639#endif /* ENABLE_MALICIOUS */
2643 2640
2644/** 2641/**
2645 * RPS client-service message to start a sub sampler 2642 * RPS client-service message to start a sub sampler
2646 */ 2643 */
2647#define GNUNET_MESSAGE_TYPE_RPS_CS_SUB_START 956 2644#define GNUNET_MESSAGE_TYPE_RPS_CS_SUB_START 956
2648 2645
2649/** 2646/**
2650 * RPS client-service message to stop a sub sampler 2647 * RPS client-service message to stop a sub sampler
2651 */ 2648 */
2652#define GNUNET_MESSAGE_TYPE_RPS_CS_SUB_STOP 957 2649#define GNUNET_MESSAGE_TYPE_RPS_CS_SUB_STOP 957
2653 2650
2654/* Debugging API continues at 1130 */ 2651/* Debugging API continues at 1130 */
2655 2652
@@ -2662,7 +2659,7 @@ extern "C"
2662 */ 2659 */
2663#define GNUNET_MESSAGE_TYPE_RECLAIM_ATTRIBUTE_STORE 961 2660#define GNUNET_MESSAGE_TYPE_RECLAIM_ATTRIBUTE_STORE 961
2664 2661
2665#define GNUNET_MESSAGE_TYPE_RECLAIM_ATTRIBUTE_STORE_RESPONSE 962 2662#define GNUNET_MESSAGE_TYPE_RECLAIM_SUCCESS_RESPONSE 962
2666 2663
2667#define GNUNET_MESSAGE_TYPE_RECLAIM_ATTRIBUTE_ITERATION_START 963 2664#define GNUNET_MESSAGE_TYPE_RECLAIM_ATTRIBUTE_ITERATION_START 963
2668 2665
@@ -2690,11 +2687,13 @@ extern "C"
2690 2687
2691#define GNUNET_MESSAGE_TYPE_RECLAIM_TICKET_ITERATION_NEXT 975 2688#define GNUNET_MESSAGE_TYPE_RECLAIM_TICKET_ITERATION_NEXT 975
2692 2689
2690#define GNUNET_MESSAGE_TYPE_RECLAIM_ATTRIBUTE_DELETE 976
2691
2693/************************************************** 2692/**************************************************
2694 * 2693 *
2695 * CREDENTIAL MESSAGE TYPES 2694 * CREDENTIAL MESSAGE TYPES
2696 */ 2695 */
2697#define GNUNET_MESSAGE_TYPE_CREDENTIAL_VERIFY 981 2696#define GNUNET_MESSAGE_TYPE_CREDENTIAL_VERIFY 981
2698 2697
2699#define GNUNET_MESSAGE_TYPE_CREDENTIAL_VERIFY_RESULT 982 2698#define GNUNET_MESSAGE_TYPE_CREDENTIAL_VERIFY_RESULT 982
2700 2699
@@ -2776,7 +2775,6 @@ extern "C"
2776#define GNUNET_MESSAGE_TYPE_CADET_TUNNEL_KX_AUTH 1009 2775#define GNUNET_MESSAGE_TYPE_CADET_TUNNEL_KX_AUTH 1009
2777 2776
2778 2777
2779
2780/********************************** Channel *********************************/ 2778/********************************** Channel *********************************/
2781 2779
2782/** 2780/**
@@ -2964,7 +2962,8 @@ extern "C"
2964#define GNUNET_MESSAGE_TYPE_NAT_AUTO_CFG_RESULT 1068 2962#define GNUNET_MESSAGE_TYPE_NAT_AUTO_CFG_RESULT 1068
2965 2963
2966 2964
2967/* 1080-1109 reserved for TMCG (Heiko Stamer, see gnunet-developers, January 2017) */ 2965/* 1080-1109 reserved for TMCG (Heiko Stamer, see gnunet-developers, January
2966 * 2017) */
2968 2967
2969 2968
2970/******************************************************************************/ 2969/******************************************************************************/
@@ -2987,7 +2986,6 @@ extern "C"
2987#define GNUNET_MESSAGE_TYPE_AUCTION_CLIENT_OUTCOME 1112 2986#define GNUNET_MESSAGE_TYPE_AUCTION_CLIENT_OUTCOME 1112
2988 2987
2989 2988
2990
2991/******************************************************************************/ 2989/******************************************************************************/
2992/********************************* RPS DEBUG ********************************/ 2990/********************************* RPS DEBUG ********************************/
2993/******************************************************************************/ 2991/******************************************************************************/
@@ -3000,12 +2998,12 @@ extern "C"
3000/** 2998/**
3001 * @brief Send update of the view 2999 * @brief Send update of the view
3002 */ 3000 */
3003#define GNUNET_MESSAGE_TYPE_RPS_CS_DEBUG_VIEW_REPLY 1131 3001#define GNUNET_MESSAGE_TYPE_RPS_CS_DEBUG_VIEW_REPLY 1131
3004 3002
3005/** 3003/**
3006 * @brief Cancel getting updates of the view 3004 * @brief Cancel getting updates of the view
3007 */ 3005 */
3008#define GNUNET_MESSAGE_TYPE_RPS_CS_DEBUG_VIEW_CANCEL 1132 3006#define GNUNET_MESSAGE_TYPE_RPS_CS_DEBUG_VIEW_CANCEL 1132
3009 3007
3010 3008
3011/** 3009/**
@@ -3016,12 +3014,12 @@ extern "C"
3016/** 3014/**
3017 * @brief Send peer of biased stream 3015 * @brief Send peer of biased stream
3018 */ 3016 */
3019#define GNUNET_MESSAGE_TYPE_RPS_CS_DEBUG_STREAM_REPLY 1134 3017#define GNUNET_MESSAGE_TYPE_RPS_CS_DEBUG_STREAM_REPLY 1134
3020 3018
3021/** 3019/**
3022 * @brief Cancel getting biased strem 3020 * @brief Cancel getting biased strem
3023 */ 3021 */
3024#define GNUNET_MESSAGE_TYPE_RPS_CS_DEBUG_STREAM_CANCEL 1135 3022#define GNUNET_MESSAGE_TYPE_RPS_CS_DEBUG_STREAM_CANCEL 1135
3025 3023
3026 3024
3027/******************************************************* 3025/*******************************************************
@@ -3190,8 +3188,8 @@ extern "C"
3190#define GNUNET_MESSAGE_TYPE_TRANSPORT_SUGGEST_CANCEL 1301 3188#define GNUNET_MESSAGE_TYPE_TRANSPORT_SUGGEST_CANCEL 1301
3191 3189
3192/** 3190/**
3193 * Type of the 'struct RequestHelloValidationMessage' send by clients to TRANSPORT 3191 * Type of the 'struct RequestHelloValidationMessage' send by clients to
3194 * to trigger validation of addresses. 3192 * TRANSPORT to trigger validation of addresses.
3195 */ 3193 */
3196#define GNUNET_MESSAGE_TYPE_TRANSPORT_REQUEST_HELLO_VALIDATION 1302 3194#define GNUNET_MESSAGE_TYPE_TRANSPORT_REQUEST_HELLO_VALIDATION 1302
3197 3195
@@ -3207,7 +3205,6 @@ extern "C"
3207#define GNUNET_MESSAGE_TYPE_TRANSPORT_ADDRESS_VALIDATION_RESPONSE 1304 3205#define GNUNET_MESSAGE_TYPE_TRANSPORT_ADDRESS_VALIDATION_RESPONSE 1304
3208 3206
3209 3207
3210
3211/* ************** NEW (NG) ATS Messages ************* */ 3208/* ************** NEW (NG) ATS Messages ************* */
3212/* NOTE: it is not clear ATS will survive in TNG */ 3209/* NOTE: it is not clear ATS will survive in TNG */
3213 3210
@@ -3286,14 +3283,13 @@ extern "C"
3286 */ 3283 */
3287 3284
3288 3285
3289
3290/** 3286/**
3291 * Type used to match 'all' message types. 3287 * Type used to match 'all' message types.
3292 */ 3288 */
3293#define GNUNET_MESSAGE_TYPE_ALL 65535 3289#define GNUNET_MESSAGE_TYPE_ALL 65535
3294 3290
3295 3291
3296#if 0 /* keep Emacsens' auto-indent happy */ 3292#if 0 /* keep Emacsens' auto-indent happy */
3297{ 3293{
3298#endif 3294#endif
3299#ifdef __cplusplus 3295#ifdef __cplusplus
diff --git a/src/include/gnunet_reclaim_plugin.h b/src/include/gnunet_reclaim_plugin.h
deleted file mode 100644
index 72a4bc218..000000000
--- a/src/include/gnunet_reclaim_plugin.h
+++ /dev/null
@@ -1,123 +0,0 @@
1/*
2 This file is part of GNUnet
3 Copyright (C) 2012, 2013 GNUnet e.V.
4
5 GNUnet is free software: you can redistribute it and/or modify it
6 under the terms of the GNU Affero General Public License as published
7 by the Free Software Foundation, either version 3 of the License,
8 or (at your option) any later version.
9
10 GNUnet is distributed in the hope that it will be useful, but
11 WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Affero General Public License for more details.
14
15 You should have received a copy of the GNU Affero General Public License
16 along with this program. If not, see <http://www.gnu.org/licenses/>.
17
18 SPDX-License-Identifier: AGPL3.0-or-later
19*/
20
21/**
22 * @author Martin Schanzenbach
23 *
24 * @file
25 * Plugin API for the idp database backend
26 *
27 * @defgroup reclaim-plugin IdP service plugin API
28 * Plugin API for the idp database backend
29 * @{
30 */
31#ifndef GNUNET_RECLAIM_PLUGIN_H
32#define GNUNET_RECLAIM_PLUGIN_H
33
34#include "gnunet_util_lib.h"
35#include "gnunet_reclaim_service.h"
36
37#ifdef __cplusplus
38extern "C"
39{
40#if 0 /* keep Emacsens' auto-indent happy */
41}
42#endif
43#endif
44
45
46/**
47 * Function called by for each matching ticket.
48 *
49 * @param cls closure
50 * @param ticket the ticket
51 */
52typedef void (*GNUNET_RECLAIM_TicketIterator) (void *cls,
53 const struct GNUNET_RECLAIM_Ticket *ticket,
54 const struct GNUNET_RECLAIM_ATTRIBUTE_ClaimList *attrs);
55
56
57/**
58 * @brief struct returned by the initialization function of the plugin
59 */
60struct GNUNET_RECLAIM_PluginFunctions
61{
62
63 /**
64 * Closure to pass to all plugin functions.
65 */
66 void *cls;
67
68 /**
69 * Store a ticket in the database.
70 *
71 * @param cls closure (internal context for the plugin)
72 * @param ticket the ticket to store
73 * @return #GNUNET_OK on success, else #GNUNET_SYSERR
74 */
75 int (*store_ticket) (void *cls,
76 const struct GNUNET_RECLAIM_Ticket *ticket,
77 const struct GNUNET_RECLAIM_ATTRIBUTE_ClaimList *attrs);
78
79 /**
80 * Delete a ticket from the database.
81 *
82 * @param cls closure (internal context for the plugin)
83 * @param ticket the ticket to store
84 * @return #GNUNET_OK on success, else #GNUNET_SYSERR
85 */
86 int (*delete_ticket) (void *cls,
87 const struct GNUNET_RECLAIM_Ticket *ticket);
88
89
90
91 /**
92 * Iterate over all tickets
93 *
94 * @param cls closure (internal context for the plugin)
95 * @param identity the identity
96 * @param audience GNUNET_YES if the identity is the audience of the ticket
97 * else it is considered the issuer
98 * @param iter function to call with the result
99 * @param iter_cls closure for @a iter
100 * @return #GNUNET_OK on success, #GNUNET_NO if there were no results, #GNUNET_SYSERR on error
101 */
102 int (*iterate_tickets) (void *cls,
103 const struct GNUNET_CRYPTO_EcdsaPublicKey *identity,
104 int audience,
105 uint64_t offset,
106 GNUNET_RECLAIM_TicketIterator iter, void *iter_cls);
107
108 int (*get_ticket_attributes) (void* cls,
109 const struct GNUNET_RECLAIM_Ticket *ticket,
110 GNUNET_RECLAIM_TicketIterator iter,
111 void *iter_cls);
112};
113
114#if 0 /* keep Emacsens' auto-indent happy */
115{
116#endif
117#ifdef __cplusplus
118}
119#endif
120
121#endif
122
123/** @} */ /* end of group */
diff --git a/src/include/gnunet_reclaim_service.h b/src/include/gnunet_reclaim_service.h
index d179485bb..fc3d0f920 100644
--- a/src/include/gnunet_reclaim_service.h
+++ b/src/include/gnunet_reclaim_service.h
@@ -151,6 +151,25 @@ GNUNET_RECLAIM_attribute_store (
151 151
152 152
153/** 153/**
154 * Delete an attribute. Tickets used to share this attribute are updated
155 * accordingly.
156 *
157 * @param h handle to the re:claimID service
158 * @param pkey Private key of the identity to add an attribute to
159 * @param attr The attribute
160 * @param cont Continuation to call when done
161 * @param cont_cls Closure for @a cont
162 * @return handle Used to to abort the request
163 */
164struct GNUNET_RECLAIM_Operation *
165GNUNET_RECLAIM_attribute_delete (
166 struct GNUNET_RECLAIM_Handle *h,
167 const struct GNUNET_CRYPTO_EcdsaPrivateKey *pkey,
168 const struct GNUNET_RECLAIM_ATTRIBUTE_Claim *attr,
169 GNUNET_RECLAIM_ContinuationWithStatus cont, void *cont_cls);
170
171
172/**
154 * List all attributes for a local identity. 173 * List all attributes for a local identity.
155 * This MUST lock the `struct GNUNET_RECLAIM_Handle` 174 * This MUST lock the `struct GNUNET_RECLAIM_Handle`
156 * for any other calls than #GNUNET_RECLAIM_get_attributes_next() and 175 * for any other calls than #GNUNET_RECLAIM_get_attributes_next() and