We can't really add too many fields to the pmsg_t blocks we enqueue. However, what we do is we extend the pmsg_t to enrich them with a free routine, and we use that fact to be notified by the message queue when a message is freed. We can then probe into the flags to see whether it was sent.
But adding a free routine is about as much as we can do with a generic message system. To be able to keep track of more information about the queries we send, we associate each message with a structure containing meta-information about it.
Data Fields | |
guint32 | hits |
Amount of query hits held in message. | |
dquery_t * | dq |
The dynamic query that sent the query. | |
guint32 | qid |
Query ID of the dynamic query. | |
guint32 | node_id |
The ID of the node we sent it to. | |
guint16 | degree |
The advertised degree of the destination node. | |
guint8 | ttl |
The TTL used for that query. |
|
The advertised degree of the destination node.
|
|
The dynamic query that sent the query.
|
|
Amount of query hits held in message.
|
|
The ID of the node we sent it to.
|
|
Query ID of the dynamic query.
|
|
The TTL used for that query.
|