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