46 #ifndef SERVICES_MESH_H 47 #define SERVICES_MESH_H 68 #define MESH_MAX_ACTIVATION 3000 75 #define MESH_MAX_SUBSUB 1024 455 uint16_t qflags,
int prime,
int valrec);
500 uint16_t qflags,
int prime,
int valrec);
596 uint16_t flags,
int prime,
int valrec);
struct comm_reply query_reply
size_t mesh_get_mem(struct mesh_area *mesh)
void mesh_new_prefetch(struct mesh_area *mesh, struct query_info *qinfo, uint16_t qflags, time_t leeway)
void mesh_delete_all(struct mesh_area *mesh)
int mesh_state_add_cb(struct mesh_state *s, struct edns_data *edns, struct sldns_buffer *buf, mesh_cb_func_type cb, void *cb_arg, uint16_t qid, uint16_t qflags)
struct timeval replies_sum_wait
int mesh_state_is_unique(struct mesh_state *mstate)
struct local_rrset * local_alias
size_t num_detached_states
struct mesh_state * jostle_first
void mesh_report_reply(struct mesh_area *mesh, struct outbound_entry *e, struct comm_reply *reply, int what)
void mesh_run(struct mesh_area *mesh, struct mesh_state *mstate, enum module_ev ev, struct outbound_entry *e)
struct timehist * histogram
void mesh_delete(struct mesh_area *mesh)
int mesh_state_compare(const void *ap, const void *bp)
void mesh_query_done(struct mesh_state *mstate)
void mesh_state_delete(struct module_qstate *qstate)
int mesh_state_add_reply(struct mesh_state *s, struct edns_data *edns, struct comm_reply *rep, uint16_t qid, uint16_t qflags, const struct query_info *qinfo)
void mesh_stats(struct mesh_area *mesh, const char *str)
int mesh_detect_cycle(struct module_qstate *qstate, struct query_info *qinfo, uint16_t flags, int prime, int valrec)
int mesh_attach_sub(struct module_qstate *qstate, struct query_info *qinfo, uint16_t qflags, int prime, int valrec, struct module_qstate **newq)
void mesh_new_client(struct mesh_area *mesh, struct query_info *qinfo, struct respip_client_info *cinfo, uint16_t qflags, struct edns_data *edns, struct comm_reply *rep, uint16_t qid)
void mesh_detach_subs(struct module_qstate *qstate)
struct mesh_state * forever_last
int mesh_state_attachment(struct mesh_state *super, struct mesh_state *sub)
struct sldns_buffer * buf
struct sldns_buffer * qbuf_bak
int mesh_add_sub(struct module_qstate *qstate, struct query_info *qinfo, uint16_t qflags, int prime, int valrec, struct module_qstate **newq, struct mesh_state **sub)
struct mesh_state * mesh_state_create(struct module_env *env, struct query_info *qinfo, struct respip_client_info *cinfo, uint16_t qflags, int prime, int valrec)
size_t num_forever_states
void mesh_list_remove(struct mesh_state *m, struct mesh_state **fp, struct mesh_state **lp)
struct mesh_reply * reply_list
void mesh_walk_supers(struct mesh_area *mesh, struct mesh_state *mstate)
void mesh_list_insert(struct mesh_state *m, struct mesh_state **fp, struct mesh_state **lp)
void(* mesh_cb_func_type)(void *, int, struct sldns_buffer *, enum sec_status, char *)
int mesh_new_callback(struct mesh_area *mesh, struct query_info *qinfo, uint16_t qflags, struct edns_data *edns, struct sldns_buffer *buf, uint16_t qid, mesh_cb_func_type cb, void *cb_arg)
struct mesh_state * unique
int mesh_make_new_space(struct mesh_area *mesh, struct sldns_buffer *qbuf)
struct mesh_state * mesh_area_find(struct mesh_area *mesh, struct respip_client_info *cinfo, struct query_info *qinfo, uint16_t qflags, int prime, int valrec)
void mesh_stats_clear(struct mesh_area *mesh)
struct mesh_state * jostle_last
struct timeval jostle_max
struct timeval start_time
size_t max_forever_states
void mesh_state_make_unique(struct mesh_state *mstate)
struct mesh_state * forever_first
int mesh_state_ref_compare(const void *ap, const void *bp)
void mesh_state_cleanup(struct mesh_state *mstate)
enum mesh_state::mesh_list_select list_select
void mesh_log_list(struct mesh_area *mesh)
struct mesh_area * mesh_create(struct module_stack *stack, struct module_env *env)