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 2, or (at your
+ by the Free Software Foundation; either version 3, or (at your
option) any later version.
GNUnet is distributed in the hope that it will be useful, but
#include "gnunet_common.h"
-#define DEBUG_DV_GOSSIP GNUNET_YES
-#define DEBUG_DV_GOSSIP_SEND GNUNET_NO
-#define DEBUG_DV_GOSSIP_RECEIPT GNUNET_NO
-#define DEBUG_DV_MESSAGES GNUNET_NO
-#define DEBUG_DV GNUNET_NO
-#define DEBUG_DV_PEER_NUMBERS GNUNET_NO
-#define DEBUG_MESSAGE_DROP GNUNET_YES
+#define DEBUG_DV_GOSSIP GNUNET_EXTRA_LOGGING
+#define DEBUG_DV_GOSSIP_SEND GNUNET_EXTRA_LOGGING
+#define DEBUG_DV_GOSSIP_RECEIPT GNUNET_EXTRA_LOGGING
+#define DEBUG_DV_MESSAGES GNUNET_EXTRA_LOGGING
+#define DEBUG_DV GNUNET_EXTRA_LOGGING
+#define DEBUG_DV_PEER_NUMBERS GNUNET_EXTRA_LOGGING
+#define DEBUG_MESSAGE_DROP GNUNET_EXTRA_LOGGING
typedef void (*GNUNET_DV_MessageReceivedHandler) (void *cls,
- struct GNUNET_PeerIdentity *sender,
- char *msg,
+ struct GNUNET_PeerIdentity *
+ sender, char *msg,
size_t msg_len,
uint32_t distance,
char *sender_address,
size_t sender_address_len);
+GNUNET_NETWORK_STRUCT_BEGIN
+
/**
* DV Message, contains a message that was received
* via DV for this peer! Internal.
struct GNUNET_PeerIdentity sender;
/**
- * The message that was sent
+ * The length of the message that was sent (appended to this end of struct)
*/
uint32_t msg_len;
*/
uint32_t distance;
- /**
- * Length of the sender address, appended to end of this message
- */
- uint32_t sender_address_len;
-
};
*/
struct GNUNET_PeerIdentity target;
- /**
- * The size of the msgbuf
- */
- uint32_t msgbuf_size;
-
/**
* Message priority
*/
{
struct GNUNET_MessageHeader header;
-#if TRACK_MESSAGES
/**
- * Unique ID for this message.
+ * Unique ID for this message. Will be zero unless
+ * message tracking is desired.
*/
uint32_t uid GNUNET_PACKED;
-#else
- /*
- * Alignment.
- */
- uint32_t reserved GNUNET_PACKED;
-#endif
/**
* Identity of peer that ultimately sent the message.
uint32_t peer_id GNUNET_PACKED;
} p2p_dv_MESSAGE_Disconnect;
-
+GNUNET_NETWORK_STRUCT_END
struct GNUNET_DV_Handle *
-GNUNET_DV_connect (struct GNUNET_SCHEDULER_Handle *sched,
- const struct GNUNET_CONFIGURATION_Handle *cfg,
- GNUNET_DV_MessageReceivedHandler receive_handler,
- void *receive_handler_cls);
+GNUNET_DV_connect (const struct GNUNET_CONFIGURATION_Handle *cfg,
+ GNUNET_DV_MessageReceivedHandler receive_handler,
+ void *receive_handler_cls);
+
+/**
+ * Disconnect from the DV service
+ *
+ * @param handle the current handle to the service to disconnect
+ */
+void
+GNUNET_DV_disconnect (struct GNUNET_DV_Handle *handle);
#endif