예제 #1
0
static void
destroy_flowinfo_in_port(struct flowinfo *self) {
  struct ptree_node *node;
  struct flowinfo *flowinfo;

  node = ptree_top(self->ptree);
  while (node != NULL) {
    flowinfo = node->info;
    flowinfo->destroy_func(flowinfo);
    node = ptree_next(node);
  }
  ptree_free(self->ptree);
  self->misc->destroy_func(self->misc);
  free(self);
}
예제 #2
0
static void
destroy_flowinfo_ipv4_dst(struct flowinfo *self) {
  struct ptree_node *node;
  struct flowinfo *flowinfo;

  node = ptree_top(self->ptree);
  while (node != NULL) {
    flowinfo = node->info;
    if (flowinfo != NULL) {
      flowinfo->destroy_func(flowinfo);
    }
    node = ptree_next(node);
  }
  ptree_free(self->ptree);
  free(self);
}
예제 #3
0
	int
debug_tree_print(struct ptree_node_head *pnh)
{
		register struct ptree_node *pn, *next;
		if ( !pnh || !pnh->pnh_treetop )
			    return (0);
		pn = pnh->pnh_top;
		printf("\n pnh[%p] phn_top[%p] offset[%d]\n",pnh,pn,pnh->pnh_offset);
		printf("----------------------------------------------------------\n");
		if(!pn)
			return (0);
		for (;;) {
			debug_node_print(pn, pnh->pnh_offset);
			next = ptree_next(pn);
			if( !next )
				break;
			pn = next;
		}
		/* NOTREACHED */
		printf("----------------------------------------------------------\n\n");
		return (0);
}