*/
#define GNUNET_MULTICAST_VERSION 0x00000000
-/**
- * Maximum size of a multicast message fragment.
- */
-#define GNUNET_MULTICAST_FRAGMENT_MAX_SIZE 63 * 1024
-
/**
* Opaque handle for a multicast group member.
*/
*/
GNUNET_MULTICAST_MESSAGE_NOT_FRAGMENTED
= GNUNET_MULTICAST_MESSAGE_FIRST_FRAGMENT
- | GNUNET_MULTICAST_MESSAGE_LAST_FRAGMENT
+ | GNUNET_MULTICAST_MESSAGE_LAST_FRAGMENT,
+
+ /**
+ * Historic message, used only locally when replaying messages from local
+ * storage.
+ */
+ GNUNET_MULTICAST_MESSAGE_HISTORIC = 1 << 30
+
};
struct GNUNET_CRYPTO_EccSignaturePurpose purpose;
/**
- * Number of the message fragment, monotonically increasing.
+ * Number of the message fragment, monotonically increasing starting from 1.
*/
uint64_t fragment_id GNUNET_PACKED;
/**
* Flags for this message fragment.
+ *
+ * @see enum GNUNET_MULTICAST_MessageFlags
*/
uint32_t flags GNUNET_PACKED;
GNUNET_NETWORK_STRUCT_END
+/**
+ * Maximum size of a multicast message fragment.
+ */
+#define GNUNET_MULTICAST_FRAGMENT_MAX_SIZE 63 * 1024
+
+#define GNUNET_MULTICAST_FRAGMENT_MAX_PAYLOAD \
+ GNUNET_MULTICAST_FRAGMENT_MAX_SIZE \
+ - sizeof (struct GNUNET_MULTICAST_MessageHeader)
+
/**
* Handle that identifies a join request.