From: Bart Polot Date: Thu, 19 Apr 2012 18:57:41 +0000 (+0000) Subject: - New callbacks for DHT monitoring X-Git-Tag: initial-import-from-subversion-38251~13864 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=f4597fd17ae8d47e8b496d5992b81c15214fd3de;p=oweals%2Fgnunet.git - New callbacks for DHT monitoring --- diff --git a/src/dht/dht.h b/src/dht/dht.h index 9894be89c..936895b83 100644 --- a/src/dht/dht.h +++ b/src/dht/dht.h @@ -196,26 +196,83 @@ struct GNUNET_DHT_ClientPutMessage /** - * Message to monitor requests going through peer, clients <--> DHT service. + * Message to monitor put requests going through peer, DHT service --> clients. */ -struct GNUNET_DHT_MonitorMessage +struct GNUNET_DHT_MonitorPutMessage { /** - * Type: GNUNET_MESSAGE_TYPE_DHT_MONITOR_{GET, PUT, GET_RESP, PUT_RESP*} - * (*) not yet implemented, necessary for key randomization + * Type: GNUNET_MESSAGE_TYPE_DHT_MONITOR_PUT */ struct GNUNET_MessageHeader header; + /** + * Message options, actually an 'enum GNUNET_DHT_RouteOption' value. + */ + uint32_t options GNUNET_PACKED; + /** * The type of data in the request. */ uint32_t type GNUNET_PACKED; + /** + * Hop count so far. + */ + uint32_t hop_count GNUNET_PACKED; + + /** + * Replication level for this message + */ + uint32_t desired_replication_level GNUNET_PACKED; + + /** + * Number of peers recorded in the outgoing path from source to the + * storage location of this message. + */ + uint32_t put_path_length GNUNET_PACKED; + + /** + * How long should this data persist? + */ + struct GNUNET_TIME_AbsoluteNBO expiration_time; + + /** + * The key to store the value under. + */ + GNUNET_HashCode key; + + /* put path (if tracked) */ + + /* Payload */ + +}; + + +/** + * Message to monitor get requests going through peer, DHT service --> clients. + */ +struct GNUNET_DHT_MonitorGetMessage +{ + /** + * Type: GNUNET_MESSAGE_TYPE_DHT_MONITOR_PUT + */ + struct GNUNET_MessageHeader header; + /** * Message options, actually an 'enum GNUNET_DHT_RouteOption' value. */ uint32_t options GNUNET_PACKED; + /** + * The type of data in the request. + */ + uint32_t type GNUNET_PACKED; + + /** + * Hop count + */ + uint32_t hop_count GNUNET_PACKED; + /** * Replication level for this message */ @@ -223,28 +280,51 @@ struct GNUNET_DHT_MonitorMessage /** * Number of peers recorded in the outgoing path from source to the - * storgage location of this message. + * storage location of this message. */ - uint32_t put_path_length GNUNET_PACKED; + uint32_t get_path_length GNUNET_PACKED; /** - * The number of peer identities recorded from the storage location - * to this peer. + * The key to store the value under. */ - uint32_t get_path_length GNUNET_PACKED; + GNUNET_HashCode key; + /* get path (if tracked) */ + +}; + +/** + * Message to monitor get results going through peer, DHT service --> clients. + */ +struct GNUNET_DHT_MonitorGetResultMessage +{ /** - * Unique ID for GET / GET responses. + * Type: GNUNET_MESSAGE_TYPE_DHT_P2P_RESULT */ - uint64_t unique_id GNUNET_PACKED; + struct GNUNET_MessageHeader header; /** - * How long should this data persist? + * Content type. */ - struct GNUNET_TIME_AbsoluteNBO expiration; + uint32_t type GNUNET_PACKED; /** - * The key to store the value under. + * Length of the PUT path that follows (if tracked). + */ + uint32_t put_path_length GNUNET_PACKED; + + /** + * Length of the GET path that follows (if tracked). + */ + uint32_t get_path_length GNUNET_PACKED; + + /** + * When does the content expire? + */ + struct GNUNET_TIME_AbsoluteNBO expiration_time; + + /** + * The key of the corresponding GET request. */ GNUNET_HashCode key;