This file is part of GNUnet
Copyright (C) 2012 GNUnet e.V.
- GNUnet is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published
- by the Free Software Foundation; either version 3, or (at your
- option) any later version.
+ GNUnet 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 of the License,
+ or (at your option) any later version.
GNUnet 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
- General Public License for more details.
+ Affero General Public License for more details.
- You should have received a copy of the GNU General Public License
- along with GNUnet; see the file COPYING. If not, write to the
- Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
+ You should have received a copy of the GNU Affero General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+ SPDX-License-Identifier: AGPL3.0-or-later
+ */
/**
struct GNUNET_CONSENSUS_RoundContextMessage
{
/**
- * Type: GNUNET_MESSAGE_TYPE_CONSENSUS_P2P_ROUND_CONTEXT
+ * Type: #GNUNET_MESSAGE_TYPE_CONSENSUS_P2P_ROUND_CONTEXT
*/
struct GNUNET_MessageHeader header;
/**
* A value from 'enum PhaseKind'.
*/
- uint16_t kind;
+ uint16_t kind GNUNET_PACKED;
/**
* Number of the first peer
* in canonical order.
*/
- int16_t peer1;
+ int16_t peer1 GNUNET_PACKED;
/**
* Number of the second peer in canonical order.
*/
- int16_t peer2;
+ int16_t peer2 GNUNET_PACKED;
/**
* Repetition of the gradecast phase.
*/
- int16_t repetition;
+ int16_t repetition GNUNET_PACKED;
/**
* Leader in the gradecast phase.
*
* Can be different from both peer1 and peer2.
*/
- int16_t leader;
+ int16_t leader GNUNET_PACKED;
/**
* Non-zero if this set reconciliation
*
* Ignored for set operations that are not within gradecasts.
*/
- uint16_t is_contested;
+ uint16_t is_contested GNUNET_PACKED;
};
-enum {
+enum
+{
CONSENSUS_MARKER_CONTESTED = 1,
CONSENSUS_MARKER_SIZE = 2,
};
* Payload element_type, only valid
* if this is not a marker element.
*/
- uint16_t payload_type;
+ uint16_t payload_type GNUNET_PACKED;
/**
* Is this a marker element?
struct ConsensusSizeElement
{
- struct ConsensusElement ce GNUNET_PACKED;
+ struct ConsensusElement ce;
uint64_t size GNUNET_PACKED;
uint8_t sender_index;
};
+struct ConsensusStuffedElement
+{
+ struct ConsensusElement ce;
+ struct GNUNET_HashCode rand GNUNET_PACKED;
+};
+
GNUNET_NETWORK_STRUCT_END