/**
* Possible message option for query key randomization.
*/
- GNUNET_DHT_RO_BART = 8
+ GNUNET_DHT_RO_BART = 8,
+
+ /**
+ * Flag given to monitors if this was the last hop for a GET/PUT.
+ */
+ GNUNET_DHT_RO_LAST_HOP = 16
};
* (size too big)
*/
struct GNUNET_DHT_PutHandle *
-GNUNET_DHT_put (struct GNUNET_DHT_Handle *handle,
+GNUNET_DHT_put (struct GNUNET_DHT_Handle *handle,
const struct GNUNET_HashCode *key,
uint32_t desired_replication_level,
enum GNUNET_DHT_RouteOption options,
* go out over the network (we can't stop that); However, if the PUT
* has not yet been sent to the service, cancelling the PUT will stop
* this from happening (but there is no way for the user of this API
- * to tell if that is the case). The only use for this API is to
+ * to tell if that is the case). The only use for this API is to
* prevent a later call to 'cont' from #GNUNET_DHT_put (i.e. because
* the system is shutting down).
*
typedef void (*GNUNET_DHT_GetIterator) (void *cls,
struct GNUNET_TIME_Absolute exp,
const struct GNUNET_HashCode *key,
- const struct GNUNET_PeerIdentity *get_path,
+ const struct GNUNET_PeerIdentity *get_path,
unsigned int get_path_length,
- const struct GNUNET_PeerIdentity *put_path,
+ const struct GNUNET_PeerIdentity *put_path,
unsigned int put_path_length,
enum GNUNET_BLOCK_Type type,
size_t size, const void *data);
*/
struct GNUNET_DHT_GetHandle *
GNUNET_DHT_get_start (struct GNUNET_DHT_Handle *handle,
- enum GNUNET_BLOCK_Type type,
+ enum GNUNET_BLOCK_Type type,
const struct GNUNET_HashCode *key,
uint32_t desired_replication_level,
- enum GNUNET_DHT_RouteOption options,
- const void *xquery, size_t xquery_size,
+ enum GNUNET_DHT_RouteOption options,
+ const void *xquery, size_t xquery_size,
GNUNET_DHT_GetIterator iter, void *iter_cls);
enum GNUNET_DHT_RouteOption options,
enum GNUNET_BLOCK_Type type,
uint32_t hop_count,
- uint32_t desired_replication_level,
+ uint32_t desired_replication_level,
unsigned int path_length,
const struct GNUNET_PeerIdentity *path,
const struct GNUNET_HashCode * key);
enum GNUNET_DHT_RouteOption options,
enum GNUNET_BLOCK_Type type,
uint32_t hop_count,
- uint32_t desired_replication_level,
+ uint32_t desired_replication_level,
unsigned int path_length,
const struct GNUNET_PeerIdentity *path,
struct GNUNET_TIME_Absolute exp,
GNUNET_DHT_monitor_stop (struct GNUNET_DHT_MonitorHandle *handle);
+#if ENABLE_MALICIOUS
+/**
+ * Turn the DHT service to act malicious depending on @a flag
+ *
+ * @param handle the DHT handle
+ * @param action 1 to make the service malicious; 0 to make it benign
+ FIXME: perhaps make this an enum of known malicious behaviors?
+ */
+void
+GNUNET_DHT_malicious (struct GNUNET_DHT_Handle *handle, unsigned int action);
+#endif
+
+
#if 0 /* keep Emacsens' auto-indent happy */
{
#endif