Because we save the last array of nodes computed and sorted at each invocation of the querying steps (to avoid costly calls to the qrp_node_can_route() routine if possible), we store both the selected node ID (nodes can disappear between invocations but the ID is unique) and cache the result of qrp_node_can_route() calls into `can_route'.
Data Fields | |
| gnutella_node_t * | node |
| Selected node. | |
| guint32 | nid |
| Selected node ID. | |
| query_hashvec_t * | qhv |
| Query hash vector for the query. | |
| gint | can_route |
| -1 = unknown, otherwise TRUE / FALSE | |
| gint | queue_pending |
| -1 = unknown, otherwise cached queue size | |
|
|
-1 = unknown, otherwise TRUE / FALSE
|
|
|
Selected node ID.
|
|
|
Selected node.
|
|
|
Query hash vector for the query.
|
|
|
-1 = unknown, otherwise cached queue size
|
1.3.6