int pdt_print_tree(pdt_tree_t *pt) { static char code_buf[PDT_MAX_DEPTH+1]; int len; if(pt == NULL) { LOG(L_ERR, "pdt_remove_from_tree:ERROR: bad parameters\n"); return -1; } len = 0; return pdt_print_node(pt->head, code_buf, len); }
int pdt_print_tree(pdt_tree_t *pt) { int len; if(pt == NULL) { LM_DBG("tree is empty\n"); return 0; } LM_DBG("[%.*s]\n", pt->sdomain.len, pt->sdomain.s); len = 0; pdt_print_node(pt->head, pdt_code_buf, len); return pdt_print_tree(pt->next); }
int pdt_print_node(pdt_node_t *pn, char *code, int len) { int i; if(pn==NULL || code==NULL || len>=PDT_MAX_DEPTH) return 0; for(i=0; i<PDT_NODE_SIZE; i++) { code[len] = '0' + (char)i; if(pn[i].domain.s!=NULL) DBG("pdt_print_node: [%.*s] [%.*s]\n", len+1, code, pn[i].domain.len, pn[i].domain.s); pdt_print_node(pn[i].child, code, len+1); } return 0; }