- set version to 0.5
- module work for module to module interconnections.
- config of modules.
+ - detect cycle takes flags.
31 July 2007: Wouter
- updated plan
qinf.qname_len = namelen;
qinf.qtype = t;
qinf.qclass = c;
- return (*qstate->env->detect_cycle)(qstate, &qinf);
+ return (*qstate->env->detect_cycle)(qstate, &qinf, BIT_RD, 0);
}
void
}
int
-mesh_detect_cycle(struct module_qstate* qstate, struct query_info* qinfo)
+mesh_detect_cycle(struct module_qstate* qstate, struct query_info* qinfo,
+ uint16_t flags, int prime)
{
struct mesh_area* mesh = qstate->env->mesh;
struct mesh_state* cyc_m = qstate->mesh_info;
- struct mesh_state* dep_m = mesh_area_find(mesh, qinfo, BIT_RD, 0);
+ struct mesh_state* dep_m = mesh_area_find(mesh, qinfo, flags, prime);
if(!dep_m)
return 0;
if(dep_m == cyc_m || find_in_subsub(dep_m, cyc_m))
* trees.
* @param qstate: given mesh querystate.
* @param qinfo: query info for dependency.
+ * @param flags: query flags of dependency.
+ * @param prime: if dependency is a priming query or not.
* @return true if the name,type,class exists and the given qstate mesh exists
* as a dependency of that name. Thus if qstate becomes dependent on
* name,type,class then a cycle is created.
*/
-int mesh_detect_cycle(struct module_qstate* qstate, struct query_info* qinfo);
+int mesh_detect_cycle(struct module_qstate* qstate, struct query_info* qinfo,
+ uint16_t flags, int prime);
#endif /* SERVICES_MESH_H */
* Detect if adding a dependency for qstate on name,type,class will
* create a dependency cycle.
* @param qstate: given mesh querystate.
- * @param qinfo: query info for dependency. Assumed RDflag and not
- * priming.
+ * @param qinfo: query info for dependency.
+ * @param flags: query flags of dependency, RD/CD flags.
+ * @param prime: if dependency is a priming query or not.
* @return true if the name,type,class exists and the given
* qstate mesh exists as a dependency of that name. Thus
* if qstate becomes dependent on name,type,class then a
* cycle is created.
*/
int (*detect_cycle)(struct module_qstate* qstate,
- struct query_info* qinfo);
+ struct query_info* qinfo, uint16_t flags, int prime);
/** region for temporary usage. May be cleared after operate() call. */
struct region* scratch;