aboutsummaryrefslogtreecommitdiff
path: root/src/service/peerstore/peerstore.h
diff options
context:
space:
mode:
authorMartin Schanzenbach <schanzen@gnunet.org>2023-10-18 19:35:11 +0200
committerMartin Schanzenbach <schanzen@gnunet.org>2023-10-18 19:35:11 +0200
commitddfee3f564bff9c5d5719af3132d7869b8783ec4 (patch)
treee6fd7801fe6808797f3418bf081ab68d5a5ec27b /src/service/peerstore/peerstore.h
parent852718c2473e41bc01ada0d53ad93c7da78e6ec8 (diff)
downloadgnunet-ddfee3f564bff9c5d5719af3132d7869b8783ec4.tar.gz
gnunet-ddfee3f564bff9c5d5719af3132d7869b8783ec4.zip
BUILD: more more components into new structure; ftbfs fix
Diffstat (limited to 'src/service/peerstore/peerstore.h')
-rw-r--r--src/service/peerstore/peerstore.h108
1 files changed, 108 insertions, 0 deletions
diff --git a/src/service/peerstore/peerstore.h b/src/service/peerstore/peerstore.h
new file mode 100644
index 000000000..0dec03443
--- /dev/null
+++ b/src/service/peerstore/peerstore.h
@@ -0,0 +1,108 @@
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 * @file peerstore/peerstore.h
22 * @brief IPC messages
23 * @author Omar Tarabai
24 */
25
26#ifndef PEERSTORE_H_
27#define PEERSTORE_H_
28
29#include "gnunet_peerstore_service.h"
30
31
32GNUNET_NETWORK_STRUCT_BEGIN
33/**
34 * Message carrying a PEERSTORE record message
35 */
36struct StoreRecordMessage
37{
38 /**
39 * GNUnet message header
40 */
41 struct GNUNET_MessageHeader header;
42
43 /**
44 * #GNUNET_YES if peer id value set, #GNUNET_NO otherwise
45 */
46 uint16_t peer_set GNUNET_PACKED;
47
48 /**
49 * Size of the sub_system string
50 * Allocated at position 0 after this struct
51 */
52 uint16_t sub_system_size GNUNET_PACKED;
53
54 /**
55 * Peer Identity
56 */
57 struct GNUNET_PeerIdentity peer;
58
59 /**
60 * Expiry time of entry
61 */
62 struct GNUNET_TIME_AbsoluteNBO expiry;
63
64 /**
65 * Size of the key string
66 * Allocated at position 1 after this struct
67 */
68 uint16_t key_size GNUNET_PACKED;
69
70 /**
71 * Size of value blob
72 * Allocated at position 2 after this struct
73 */
74 uint16_t value_size GNUNET_PACKED;
75
76 /**
77 * Options, needed only in case of a
78 * store operation
79 */
80 uint32_t /* enum GNUNET_PEERSTORE_StoreOption */ options GNUNET_PACKED;
81
82 /* Followed by key and value */
83};
84
85
86/**
87 * Message carrying record key hash
88 */
89struct StoreKeyHashMessage
90{
91 /**
92 * GNUnet message header
93 */
94 struct GNUNET_MessageHeader header;
95
96 /**
97 * Always 0, for alignment.
98 */
99 uint32_t reserved GNUNET_PACKED;
100
101 /**
102 * Hash of a record key
103 */
104 struct GNUNET_HashCode keyhash;
105};
106
107GNUNET_NETWORK_STRUCT_END
108#endif