GNUnet debian-0.24.3-28-g4f2a77692
 
Loading...
Searching...
No Matches
core.h
Go to the documentation of this file.
1/*
2 This file is part of GNUnet.
3 Copyright (C) 2009-2014 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
26#ifndef CORE_H
27#define CORE_H
28
29#include "gnunet_util_lib.h"
30#include "gnunet_time_lib.h"
31
35#define DEBUG_CORE GNUNET_EXTRA_LOGGING
36
43#define GNUNET_CORE_OPTION_NOTHING 0
44
48#define GNUNET_CORE_OPTION_SEND_STATUS_CHANGE 4
49
53#define GNUNET_CORE_OPTION_SEND_FULL_INBOUND 8
54
59#define GNUNET_CORE_OPTION_SEND_HDR_INBOUND 16
60
64#define GNUNET_CORE_OPTION_SEND_FULL_OUTBOUND 32
65
70#define GNUNET_CORE_OPTION_SEND_HDR_OUTBOUND 64
71
72
74
93
94
122
123
151
152
174
175
186{
192
197
198 /* Followed by payload (message or just header), variable size */
199};
200
201
244
245
276
277
306
307
334
335
337#endif
338/* end of core.h */
Functions related to time.
GNUNET_CORE_PeerClass
The peer class gives a hint about the capabilities of a peer.
#define GNUNET_NETWORK_STRUCT_BEGIN
Define as empty, GNUNET_PACKED should suffice, but this won't work on W32.
#define GNUNET_NETWORK_STRUCT_END
Define as empty, GNUNET_PACKED should suffice, but this won't work on W32;.
#define GNUNET_PACKED
gcc-ism to get packed structs.
Message sent by the service to clients to notify them about a peer connecting.
Definition core.h:129
struct GNUNET_PeerIdentity peer
Identity of the connecting peer.
Definition core.h:143
struct GNUNET_MessageHeader header
Header with type GNUNET_MESSAGE_TYPE_CORE_NOTIFY_CONNECT.
Definition core.h:133
uint32_t reserved
Always zero.
Definition core.h:138
enum GNUNET_CORE_PeerClass peer_class
Class of the connecting peer TODO is it correct to send an enum like this?
Definition core.h:149
Message sent by the service to clients to notify them about a peer disconnecting.
Definition core.h:158
uint32_t reserved
Always zero.
Definition core.h:167
struct GNUNET_PeerIdentity peer
Identity of the connecting peer.
Definition core.h:172
struct GNUNET_MessageHeader header
Header with type GNUNET_MESSAGE_TYPE_CORE_NOTIFY_DISCONNECT.
Definition core.h:162
Header for all communications.
The identity of the host (wraps the signing key of the peer).
Time for absolute time used by GNUnet, in microseconds and in network byte order.
Message transmitted core clients to gnunet-service-core to start the interaction.
Definition core.h:82
struct GNUNET_MessageHeader header
Header with type GNUNET_MESSAGE_TYPE_CORE_INIT.
Definition core.h:86
uint32_t options
Options, see GNUNET_CORE_OPTION_ values.
Definition core.h:91
Message transmitted by the gnunet-service-core process to its clients in response to an INIT message.
Definition core.h:100
struct GNUNET_MessageHeader header
Header with type GNUNET_MESSAGE_TYPE_CORE_INIT_REPLY.
Definition core.h:104
struct GNUNET_PeerIdentity my_identity
Public key of the local peer.
Definition core.h:114
uint32_t reserved
Always zero.
Definition core.h:109
Message sent by the service to monitor clients to notify them about a peer changing status.
Definition core.h:313
struct GNUNET_PeerIdentity peer
Identity of the peer.
Definition core.h:327
uint32_t state
New peer state, an enum GNUNET_CORE_KxState in NBO.
Definition core.h:322
struct GNUNET_MessageHeader header
Header with type GNUNET_MESSAGE_TYPE_CORE_MONITOR_NOTIFY.
Definition core.h:317
struct GNUNET_TIME_AbsoluteNBO timeout
How long will we stay in this state (if nothing else happens)?
Definition core.h:332
Message sent by the service to clients to notify them about messages being received or transmitted.
Definition core.h:186
struct GNUNET_MessageHeader header
Header with type GNUNET_MESSAGE_TYPE_CORE_NOTIFY_INBOUND or GNUNET_MESSAGE_TYPE_CORE_NOTIFY_OUTBOUND.
Definition core.h:191
struct GNUNET_PeerIdentity peer
Identity of the receiver or sender.
Definition core.h:196
Core notifying client that it is allowed to now transmit a message to the given target (response to G...
Definition core.h:252
uint16_t smr_id
smr_id from the request.
Definition core.h:269
struct GNUNET_MessageHeader header
Header with type GNUNET_MESSAGE_TYPE_CORE_SEND_READY.
Definition core.h:256
struct GNUNET_PeerIdentity peer
Identity of the intended target.
Definition core.h:274
uint16_t size
How many bytes are allowed for transmission? Guaranteed to be at least as big as the requested size,...
Definition core.h:264
Client notifying core about the maximum-priority message it has in the queue for a particular target.
Definition core.h:207
uint32_t priority
How important is this message?
Definition core.h:216
struct GNUNET_MessageHeader header
Header with type GNUNET_MESSAGE_TYPE_CORE_SEND_REQUEST.
Definition core.h:211
struct GNUNET_PeerIdentity peer
Identity of the intended target.
Definition core.h:227
uint16_t size
How large is the message?
Definition core.h:237
uint16_t smr_id
Counter for this peer to match SMRs to replies.
Definition core.h:242
uint32_t reserved
Always zero.
Definition core.h:232
struct GNUNET_TIME_AbsoluteNBO deadline
By what time would the sender really like to see this message transmitted?
Definition core.h:222
Client asking core to transmit a particular message to a particular target (response to GNUNET_MESSAG...
Definition core.h:283
struct GNUNET_MessageHeader header
Header with type GNUNET_MESSAGE_TYPE_CORE_SEND.
Definition core.h:287
struct GNUNET_TIME_AbsoluteNBO deadline
By what time would the sender really like to see this message transmitted?
Definition core.h:299
uint32_t priority
How important is this message? Contains a enum GNUNET_MQ_PriorityPreferences in NBO.
Definition core.h:293
struct GNUNET_PeerIdentity peer
Identity of the intended receiver.
Definition core.h:304